diff --git a/_config.yml b/_config.yml
index 933813b6..46f58364 100644
--- a/_config.yml
+++ b/_config.yml
@@ -7,6 +7,7 @@ searchIndexName: Crawler-DBR-Docs-New
searchNeedFilter: true
useVersionTree: true
+useJSVersionV3: true
introduction: /barcode-reader/docs/core/introduction/
comparison_tools: /barcode-reader/docs/core/introduction/comparison-tools/
@@ -21,16 +22,18 @@ scenario_settings: /barcode-reader/docs/core/parameters/scenario-settings/
license_activation: /barcode-reader/docs/core/license-activation/
release_notes: /barcode-reader/docs/core/release-notes/
+release_notes_v9: /barcode-reader/docs/v9/core/release-notes/
+release_notes_v10: /barcode-reader/docs/v10/core/release-notes/
performance: /barcode-reader/docs/core/performance/
faq: /barcode-reader/docs/core/faq/
faq_general: /barcode-reader/docs/core/faq/general/
structs: /barcode-reader/docs/server/programming/c-cplusplus/struct/
-c: /barcode-reader/docs/server/programming/c/
-c_api: /barcode-reader/docs/server/programming/c/api-reference/
-c_methods: /barcode-reader/docs/server/programming/c/api-reference/methods/
-c_release_notes: /barcode-reader/docs/server/programming/c/release-notes/
+c: /barcode-reader/docs/v9/server/programming/c/
+c_api: /barcode-reader/docs/v9/server/programming/c/api-reference/
+c_methods: /barcode-reader/docs/v9/server/programming/c/api-reference/methods/
+c_release_notes: /barcode-reader/docs/v9/server/programming/c/release-notes/
cpp: /barcode-reader/docs/server/programming/cplusplus/
cpp_api: /barcode-reader/docs/server/programming/cplusplus/api-reference/
diff --git a/_data/full_tree.yml b/_data/full_tree.yml
index bf6668d5..019f317d 100644
--- a/_data/full_tree.yml
+++ b/_data/full_tree.yml
@@ -1,27 +1,12 @@
tree_file_list:
- - introduction-comparison-tools.html
- sidelist-architecture.html
- - sidelist-development-v9.6.42.html
- sidelist-development.html
- sidelist-faq.html
- - sidelist-faq-v9.6.42.html
- sidelist-full-tree.html
- sidelist-introduction.html
- sidelist-license-activation.html
- - sidelist-license-activation-v9.6.42.html
- - sidelist-parameters/parameters-references-v9.6.42.html
- - sidelist-parameters/parameters-references.html
- - sidelist-parameters/parameters-template-structure.html
- - sidelist-parameter-reference.html
- - sidelist-parameter-reference-v10.0.0.html
- - sidelist-parameter-reference-v10.0.10.html
- - sidelist-parameter-reference-v10.0.20.html
- - sidelist-parameters-organization-v10.5.2100.html
- sidelist-parameters-organization.html
- sidelist-performance.html
- - sidelist-performance-v9.6.42.html
- sidelist-release-notes.html
- - sidelist-understanding-v9.6.42.html
- - sidelist-understanding-v10.5.2100.html
- sidelist-understanding.html
- sidelist-useful.html
diff --git a/_data/product_version.yml b/_data/product_version.yml
index fb204870..2e756bee 100644
--- a/_data/product_version.yml
+++ b/_data/product_version.yml
@@ -3,37 +3,4 @@ useGroupedVersion: true
version_info_list_algorithm:
- value: latest version
- value: 10.x
- child:
- - 10.5.2100
- - 10.2.0
- - 10.0.21
- - 10.0.20
- - 10.0.10
- - 10.0.0
- - value: 9.x
- child:
- - 9.6.42
- - 9.6.40
- - 9.6.33
- - 9.6.32
- - 9.6.31
- - 9.6.30
- - 9.6.20
- - 9.6.10
- - 9.6.0
- - 9.4.0
- - 9.2.0
- - 9.0.0
- - value: 8.x
- child:
- - 8.8.0
- - 8.6.0
- - 8.4.0
- - 8.2.0
- - 8.1.2
- - 8.1.0
- - 8.0.0
- - value: 7.x
- child:
- - 7.6.0
- - 7.5.0
+ - value: 9.x Or Older
diff --git a/_includes/introduction-comparison-tools.html b/_includes/introduction-comparison-tools.html
deleted file mode 100644
index ff14ab03..00000000
--- a/_includes/introduction-comparison-tools.html
+++ /dev/null
@@ -1,5 +0,0 @@
-
Comparison Tools
-
-
\ No newline at end of file
diff --git a/_includes/sidelist-development-v10.5.2100.html b/_includes/sidelist-development-v10.5.2100.html
deleted file mode 100644
index d8efee5c..00000000
--- a/_includes/sidelist-development-v10.5.2100.html
+++ /dev/null
@@ -1,23 +0,0 @@
-DEVELOPMENT
-
- Web (Client Side)
-
- Mobile
-
-
-
- Server / Desktop
-
-
\ No newline at end of file
diff --git a/_includes/sidelist-development-v9.6.42.html b/_includes/sidelist-development-v9.6.42.html
deleted file mode 100644
index 4b393f92..00000000
--- a/_includes/sidelist-development-v9.6.42.html
+++ /dev/null
@@ -1,24 +0,0 @@
-DEVELOPMENT
-
- Web (Client Side)
-
- Mobile
-
-
-
- Server / Desktop
-
-
\ No newline at end of file
diff --git a/_includes/sidelist-faq-v9.6.42.html b/_includes/sidelist-faq-v9.6.42.html
deleted file mode 100644
index 6da7d161..00000000
--- a/_includes/sidelist-faq-v9.6.42.html
+++ /dev/null
@@ -1,68 +0,0 @@
-
- FAQ
-
-
\ No newline at end of file
diff --git a/_includes/sidelist-license-activation-v9.6.42.html b/_includes/sidelist-license-activation-v9.6.42.html
deleted file mode 100644
index 6e4d94ac..00000000
--- a/_includes/sidelist-license-activation-v9.6.42.html
+++ /dev/null
@@ -1,8 +0,0 @@
-License
-
-
\ No newline at end of file
diff --git a/_includes/sidelist-parameter-reference-v10.0.0.html b/_includes/sidelist-parameter-reference-v10.0.0.html
deleted file mode 100644
index b8872f8a..00000000
--- a/_includes/sidelist-parameter-reference-v10.0.0.html
+++ /dev/null
@@ -1,170 +0,0 @@
-Capture Vision Template
-
-
-Target ROI Def
-
-
-Barcode Reader Task Setting
-
-
-Image Parameter
-
-
-Barcode Format Specification
-
-
-Image Source
-
-
-Global Parameter
-
-
-Shared Parameter
-
-
\ No newline at end of file
diff --git a/_includes/sidelist-parameter-reference-v10.0.10.html b/_includes/sidelist-parameter-reference-v10.0.10.html
deleted file mode 100644
index 0f87f857..00000000
--- a/_includes/sidelist-parameter-reference-v10.0.10.html
+++ /dev/null
@@ -1,175 +0,0 @@
-Capture Vision Template
-
-
- Target ROI Def
-
-
- Barcode Reader Task Setting
-
-
- Image Parameter
-
-
- Barcode Format Specification
-
-
- Image Source
-
-
- Global Parameter
-
-
-
\ No newline at end of file
diff --git a/_includes/sidelist-parameter-reference-v10.0.20.html b/_includes/sidelist-parameter-reference-v10.0.20.html
deleted file mode 100644
index 5d4d8508..00000000
--- a/_includes/sidelist-parameter-reference-v10.0.20.html
+++ /dev/null
@@ -1,176 +0,0 @@
-Capture Vision Template
-
-
-Target ROI Def
-
-
-Barcode Reader Task Setting
-
-
-Image Parameter
-
-
-Barcode Format Specification
-
-
-Image Source
-
-
-Global Parameter
-
-
diff --git a/_includes/sidelist-parameter-reference-v10.5.2100.html b/_includes/sidelist-parameter-reference-v10.5.2100.html
deleted file mode 100644
index 512b8d29..00000000
--- a/_includes/sidelist-parameter-reference-v10.5.2100.html
+++ /dev/null
@@ -1,182 +0,0 @@
-Capture Vision Template
-
-
-Target ROI Def
-
-
-Barcode Reader Task Setting
-
-
-Image Parameter
-
-
-Barcode Format Specification
-
-
-Image Source
-
-
-Output Task Settings
-
-
-Global Parameter
-
-
diff --git a/_includes/sidelist-parameter-reference.html b/_includes/sidelist-parameter-reference.html
deleted file mode 100644
index 1c8d8ff3..00000000
--- a/_includes/sidelist-parameter-reference.html
+++ /dev/null
@@ -1,247 +0,0 @@
-Capture Vision Template
-
-
-Target ROI Def
-
-
-Barcode Reader Task Setting
-
-
-
-Image Parameter
-
-
-Barcode Format Specification
-
-
-Image Source
-
-
-Output Task Settings
-
-
-Global Parameter
-
-
diff --git a/_includes/sidelist-parameters-organization-v10.5.2100.html b/_includes/sidelist-parameters-organization-v10.5.2100.html
deleted file mode 100644
index df4cdb81..00000000
--- a/_includes/sidelist-parameters-organization-v10.5.2100.html
+++ /dev/null
@@ -1,23 +0,0 @@
-Parameter
- Organization
-
-
\ No newline at end of file
diff --git a/_includes/sidelist-parameters/parameters-references-v9.6.42.html b/_includes/sidelist-parameters/parameters-references-v9.6.42.html
deleted file mode 100644
index b54ceb70..00000000
--- a/_includes/sidelist-parameters/parameters-references-v9.6.42.html
+++ /dev/null
@@ -1,65 +0,0 @@
-Parameter References
-
-
\ No newline at end of file
diff --git a/_includes/sidelist-parameters/parameters-references.html b/_includes/sidelist-parameters/parameters-references.html
deleted file mode 100644
index b54ceb70..00000000
--- a/_includes/sidelist-parameters/parameters-references.html
+++ /dev/null
@@ -1,65 +0,0 @@
-Parameter References
-
-
\ No newline at end of file
diff --git a/_includes/sidelist-parameters/parameters-template-structure.html b/_includes/sidelist-parameters/parameters-template-structure.html
deleted file mode 100644
index 25ba869f..00000000
--- a/_includes/sidelist-parameters/parameters-template-structure.html
+++ /dev/null
@@ -1,10 +0,0 @@
-Template Structure
-
-
\ No newline at end of file
diff --git a/_includes/sidelist-performance-v9.6.42.html b/_includes/sidelist-performance-v9.6.42.html
deleted file mode 100644
index e7eb487a..00000000
--- a/_includes/sidelist-performance-v9.6.42.html
+++ /dev/null
@@ -1,8 +0,0 @@
-Performance
-
- Speed
- Accuracy
- Read Rate
- {%- include liquid_searchVersionTreeFile.html ver=include.ver curPath=include.curPath targetRelativePath="introduction-comparison-tools.html" -%}
-
-
\ No newline at end of file
diff --git a/_includes/sidelist-release-notes.html b/_includes/sidelist-release-notes.html
index c898ab70..b2388f21 100644
--- a/_includes/sidelist-release-notes.html
+++ b/_includes/sidelist-release-notes.html
@@ -1,9 +1,9 @@
Release Notes
\ No newline at end of file
diff --git a/_includes/sidelist-understanding-v10.5.2100.html b/_includes/sidelist-understanding-v10.5.2100.html
deleted file mode 100644
index 9de8e318..00000000
--- a/_includes/sidelist-understanding-v10.5.2100.html
+++ /dev/null
@@ -1,10 +0,0 @@
-UNDERSTANDING DBR
-{%- include liquid_searchVersionTreeFile.html ver=include.ver curPath=include.curPath targetRelativePath="sidelist-architecture.html" -%}
-{%- include liquid_searchVersionTreeFile.html ver=include.ver curPath=include.curPath targetRelativePath="sidelist-performance.html" -%}
-{%- include liquid_searchVersionTreeFile.html ver=include.ver curPath=include.curPath targetRelativePath="sidelist-parameters-organization.html" -%}
-Parameter Reference
-
- {%- include liquid_searchVersionTreeFile.html ver=include.ver curPath=include.curPath
- targetRelativePath="sidelist-parameter-reference.html" -%}
-
-
diff --git a/_includes/sidelist-understanding-v9.6.42.html b/_includes/sidelist-understanding-v9.6.42.html
deleted file mode 100644
index efa8ee02..00000000
--- a/_includes/sidelist-understanding-v9.6.42.html
+++ /dev/null
@@ -1,5 +0,0 @@
-UNDERSTANDING DBR
-Architecture
-{%- include liquid_searchVersionTreeFile.html ver=include.ver curPath=include.curPath targetRelativePath="sidelist-performance.html" -%}
-{%- include liquid_searchVersionTreeFile.html ver=include.ver curPath=include.curPath targetRelativePath="sidelist-parameters/parameters-template-structure.html" -%}
-{%- include liquid_searchVersionTreeFile.html ver=include.ver curPath=include.curPath targetRelativePath="sidelist-parameters/parameters-references.html" -%}
\ No newline at end of file
diff --git a/_layouts/default-layout-OLD.html b/_layouts/default-layout-OLD.html
deleted file mode 100644
index dd42c01a..00000000
--- a/_layouts/default-layout-OLD.html
+++ /dev/null
@@ -1,126 +0,0 @@
-
-
-
-{%- include head.html -%}
-{%- assign noTitleIndex = "" -%}
-{%- if page.noTitleIndex or page.url contains 'release-notes' -%}
- {%- assign noTitleIndex = "noTitleIndex" -%}
-{%- endif -%}
-
- {% assign url = 'https://www.dynamsoft.com/shared/head/' %}
- {% remote_include {{ url }} %}
-
- {%- include dbrNav.html -%}
-
-
-
-
-
-
-
-
-
- {%- include livehelp.html -%}
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/_layouts/search-page-OLD.html b/_layouts/search-page-OLD.html
deleted file mode 100644
index a870be7e..00000000
--- a/_layouts/search-page-OLD.html
+++ /dev/null
@@ -1,186 +0,0 @@
-
-
-
-{%- include head.html -%}
-
-
-
- {% assign url = 'https://www.dynamsoft.com/shared/head/' %}
- {% remote_include {{ url }} %}
-
- {%- include dbrNav.html -%}
-
-
-
-
-
-
-
- {{ content }}
-
-
-
-
-
-
-
-
-
-
-
-
-
- {%- include livehelp.html -%}
-
-
-
\ No newline at end of file
diff --git a/assets/js/dbrCoreVersionSearch.json b/assets/js/dbrCoreVersionSearch.json
deleted file mode 100644
index 62534bc4..00000000
--- a/assets/js/dbrCoreVersionSearch.json
+++ /dev/null
@@ -1,252 +0,0 @@
-[
- {
- "version": "11.0.6100",
- "matchVersion": {
- "dcv": "3.0.6100"
- }
- },
- {
- "version": "11.0.6000",
- "matchVersion": {
- "dcv": "3.0.6000"
- }
- },
- {
- "version": "11.0.4000",
- "matchVersion": {
- "dcv": "3.0.4000"
- }
- },
- {
- "version": "11.0.3000",
- "matchVersion": {
- "dcv": "3.0.3000"
- }
- },
- {
- "version": "11.0.2000",
- "matchVersion": {
- "dcv": "3.0.2000"
- }
- },
- {
- "version": "11.0.1000",
- "matchVersion": {
- "dcv": "3.0.1000"
- }
- },
- {
- "version": "10.4.2000",
- "matchVersion": {
- "dcv": "2.4.2000"
- }
- },
- {
- "version": "10.2.1201",
- "matchVersion": {
- "dcv": "2.2.3201"
- }
- },
- {
- "version": "10.4.10",
- "matchList": {
- "dcvRepoCore": [
- {
- "path": "/parameters/reference/capture-vision-template",
- "version": "2.2.40"
- },{
- "path": "/parameters/reference/target-roi-def",
- "version": "2.2.40"
- },{
- "path": "/parameters/reference/barcode-reader-task-settings",
- "version": "10.4.10"
- },{
- "path": "/parameters/reference/image-parameter",
- "version": "2.2.40"
- },{
- "path": "/parameters/reference/barcode-format-specification",
- "version": "10.4.10"
- },{
- "path": "/parameters/reference/image-source-options",
- "version": "2.2.40"
- },{
- "path": "/parameters/reference/global-parameter",
- "version": "2.2.40"
- }
- ]
- }
- },
- {
- "version": "10.2.10",
- "matchList": {
- "dcvRepoCore": [
- {
- "path": "/parameters/reference/capture-vision-template",
- "version": "2.2.10"
- },{
- "path": "/parameters/reference/target-roi-def",
- "version": "2.2.10"
- },{
- "path": "/parameters/reference/barcode-reader-task-settings",
- "version": "10.2.10"
- },{
- "path": "/parameters/reference/image-parameter",
- "version": "2.2.10"
- },{
- "path": "/parameters/reference/barcode-format-specification",
- "version": "10.2.10"
- },{
- "path": "/parameters/reference/image-source-options",
- "version": "2.2.10"
- },{
- "path": "/parameters/reference/global-parameter",
- "version": "2.2.10"
- }
- ]
- }
- },
- {
- "version": "10.2.0",
- "matchList": {
- "dcvRepoCore": [
- {
- "path": "/parameters/reference/capture-vision-template",
- "version": "2.2.0"
- },{
- "path": "/parameters/reference/target-roi-def",
- "version": "2.2.0"
- },{
- "path": "/parameters/reference/barcode-reader-task-settings",
- "version": "10.2.0"
- },{
- "path": "/parameters/reference/image-parameter",
- "version": "2.2.0"
- },{
- "path": "/parameters/reference/barcode-format-specification",
- "version": "10.2.0"
- },{
- "path": "/parameters/reference/image-source-options",
- "version": "2.2.0"
- },{
- "path": "/parameters/reference/global-parameter",
- "version": "2.2.0"
- }
- ]
- }
- },
- {
- "version": "10.0.21",
- "matchList": {
- "dcvRepoCore": [
- {
- "path": "/parameters/reference/capture-vision-template",
- "version": "2.0.20"
- },{
- "path": "/parameters/reference/target-roi-def",
- "version": "2.0.20"
- },{
- "path": "/parameters/reference/barcode-reader-task-settings",
- "version": "10.0.20"
- },{
- "path": "/parameters/reference/image-parameter",
- "version": "2.0.20"
- },{
- "path": "/parameters/reference/barcode-format-specification",
- "version": "10.0.20"
- },{
- "path": "/parameters/reference/image-source-options",
- "version": "3.0.20"
- },{
- "path": "/parameters/reference/global-parameter",
- "version": "2.0.20"
- }
- ]
- }
- },
- {
- "version": "10.0.20",
- "matchList": {
- "dcvRepoCore": [
- {
- "path": "/parameters/reference/capture-vision-template",
- "version": "2.0.20"
- },{
- "path": "/parameters/reference/target-roi-def",
- "version": "2.0.20"
- },{
- "path": "/parameters/reference/barcode-reader-task-settings",
- "version": "10.0.20"
- },{
- "path": "/parameters/reference/image-parameter",
- "version": "2.0.20"
- },{
- "path": "/parameters/reference/barcode-format-specification",
- "version": "10.0.20"
- },{
- "path": "/parameters/reference/image-source-options",
- "version": "3.0.20"
- },{
- "path": "/parameters/reference/global-parameter",
- "version": "2.0.20"
- }
- ]
- }
- },
- {
- "version": "10.0.10",
- "matchList": {
- "dcvRepoCore": [
- {
- "path": "/parameters/reference/capture-vision-template",
- "version": "2.0.10"
- },{
- "path": "/parameters/reference/target-roi-def",
- "version": "2.0.10"
- },{
- "path": "/parameters/reference/barcode-reader-task-settings",
- "version": "10.0.10"
- },{
- "path": "/parameters/reference/image-parameter",
- "version": "2.0.10"
- },{
- "path": "/parameters/reference/barcode-format-specification",
- "version": "10.0.10"
- },{
- "path": "/parameters/reference/image-source-options",
- "version": "3.0.10"
- },{
- "path": "/parameters/reference/global-parameter",
- "version": "2.0.10"
- }
- ]
- }
- },{
- "version": "10.0.0",
- "matchList": {
- "dcvRepoCore": [
- {
- "path": "/parameters/reference/capture-vision-template",
- "version": "2.0.0"
- },{
- "path": "/parameters/reference/target-roi-def",
- "version": "2.0.0"
- },{
- "path": "/parameters/reference/barcode-reader-task-settings",
- "version": "10.0.0"
- },{
- "path": "/parameters/reference/image-parameter",
- "version": "2.0.0"
- },{
- "path": "/parameters/reference/barcode-format-specification",
- "version": "10.0.0"
- },{
- "path": "/parameters/reference/image-source-options",
- "version": "3.0.0"
- },{
- "path": "/parameters/reference/global-parameter",
- "version": "2.0.0"
- }
- ]
- }
- }
-]
\ No newline at end of file
diff --git a/faq/general/avoid-incorrect-results-v9.6.42.md b/faq/general/avoid-incorrect-results-v9.6.42.md
deleted file mode 100644
index 9c7a9776..00000000
--- a/faq/general/avoid-incorrect-results-v9.6.42.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-layout: default-layout
-title: Sometimes the barcode reader SDK returns incorrect results with four or less characters. How to avoid it?
-keywords: Dynamsoft Barcode Reader, FAQ, DBR Introduction, General, incorrect results
-description: Sometimes the barcode reader SDK returns incorrect results with four or less characters. How to avoid it?
-needAutoGenerateSidebar: false
----
-
-## Sometimes the Barcode Reader SDK returns incorrect results with four or less characters. How do you avoid that?
-
-[<< Back to FAQ index](index.md)
-
-One way to avoid this is to set the [minBarcodeTextLength](https://www.dynamsoft.com/barcode-reader/programming/c-cplusplus/struct/PublicRuntimeSettings.html?src=cpp&&ver=latest#minbarcodetextlength) 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.
diff --git a/faq/general/custom-settings-template-v9.6.42.md b/faq/general/custom-settings-template-v9.6.42.md
deleted file mode 100644
index 3e358576..00000000
--- a/faq/general/custom-settings-template-v9.6.42.md
+++ /dev/null
@@ -1,25 +0,0 @@
----
-layout: default-layout
-title: How to generate a custom settings template to use in your own application?
-keywords: Dynamsoft Barcode Reader, FAQ, DBR Introduction, General, runtime settings, template
-description: How to generate a custom settings template to use in your own application?
-needAutoGenerateSidebar: false
----
-
-## How to generate a custom settings template to use in your own application?
-
-One of the strengths of the Dynamsoft Barcode Reader is its wide range of cuztomizable options that can optimize the performance of the SDK. Whether you are looking to prioritize read rate or speed, these settings can be used in many ways to match the targeted use case.
-
-If you are looking to create your own custom template of settings to use with the `InitRuntimeSettingsWithFile` or `InitRuntimeSettingsWithString` methods, here are the steps:
-
-1. Visit the main [online demo](https://demo.dynamsoft.com/barcode-reader/).
-
-2. Once on that page, you will find the settings menu on the left-hand side. Please note that you can access the full settings by clicking on *Advanced Settings*
-
-3. Edit the settings that you want
-
-4. Once you're ready to get the template, scroll down to the bottom of the settings menu to find the full settings as a *Struct* or a *Template*. The struct is the more readable version of the template, but the actual JSON code will be under *Template*.
-
-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.
-
-And with that, you have your own template to use with the `InitRuntimeSettingsWithFile` method! If you would like to use the `InitRuntimeSettingsWithString` method instead, please make sure to properly stringify the JSON code from the template.
\ No newline at end of file
diff --git a/faq/general/custom-settings-template.md b/faq/general/custom-settings-template.md
index 849c37c5..70348c87 100644
--- a/faq/general/custom-settings-template.md
+++ b/faq/general/custom-settings-template.md
@@ -11,7 +11,7 @@ permalink: /faq/general/custom-settings-template.html
One of the strengths of the Dynamsoft Barcode Reader is its wide range of cuztomizable options that can optimize the performance of the SDK. Whether you are looking to prioritize read rate or speed, these settings can be used in many ways to match the targeted use case.
-If you are looking to create your own custom template of settings to use with the [InitSettingsFromFile][https://www.dynamsoft.com/capture-vision/docs/server/programming/cplusplus/api-reference/capture-vision-router/settings.html?product=dbr&repoType=server#initsettingsfromfile] methods, here are the steps:
+If you are looking to create your own custom template of settings to use with the [InitSettingsFromFile](https://www.dynamsoft.com/capture-vision/docs/server/programming/cplusplus/api-reference/capture-vision-router/settings.html?product=dbr&repoType=server#initsettingsfromfile) methods, here are the steps:
1. Visit the main [online demo](https://demo.dynamsoft.com/barcode-reader/).
@@ -23,5 +23,4 @@ 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.
-And with that, you have your own template to use with the `InitSettingsFromFile` method!
-
+And with that, you have your own template to use with the `InitSettingsFromFile` method!
\ No newline at end of file
diff --git a/faq/general/ensure-no-overuse-v9.6.42.md b/faq/general/ensure-no-overuse-v9.6.42.md
deleted file mode 100644
index 6b8a7abd..00000000
--- a/faq/general/ensure-no-overuse-v9.6.42.md
+++ /dev/null
@@ -1,16 +0,0 @@
----
-layout: default-layout
-title: How to ensure that a device does not overuse its allotted number of instances?
-keywords: Dynamsoft Barcode Reader, FAQ, Pricing/Licensing, General, ensure no overuse
-description: How to ensure that a device does not overuse its allotted number of instances?
-needAutoGenerateSidebar: false
----
-
-## How to ensure that a device does not overuse its allotted number of instances?
-
-[<< Back to FAQ index](index.md)
-
-Sometimes a device might run into an error that says that "Instance count is over limited". This occurs when a single device tries to create a new instance after one has already been created. By default, the max that a single device can have is one, so if you try to create more than that, the error is produced.
-
-- One way to avoid this error from occurring is to check the number of allowed instances (on the local machine rather than the total available on this license) using the [GetIdleInstancesCount](https://www.dynamsoft.com/barcode-reader/programming/dotnet/api-reference/BarcodeReader/license.html?ver=latest#getidleinstancescount) method. If the result of that method is over 0 then proceed with creating the DBR instance, and no if not.
-- If you would like for a single machine to be able to operate more than one instance, that can be defined using the [MaxConcurrentInstanceCount parameter](https://www.dynamsoft.com/barcode-reader/programming/dotnet/api-reference/class/DMDLSConnectionParameters.html?ver=latest#maxconcurrentinstancecount).
diff --git a/faq/general/error-license-buffer-v9.6.42.md b/faq/general/error-license-buffer-v9.6.42.md
deleted file mode 100644
index 56e026f3..00000000
--- a/faq/general/error-license-buffer-v9.6.42.md
+++ /dev/null
@@ -1,54 +0,0 @@
----
-layout: default-layout
-title: How to resolve error failed to read or write license buffer?
-keywords: Dynamsoft Barcode Reader, FAQ, offline, license type
-description: How to resolve error failed to read or write license buffer?
-needAutoGenerateSidebar: false
----
-
-## How to resolve error failed to read or write license buffer?
-
-[<< Back to FAQ index](index.md)
-
-When initializing the license for cloud-hosted services, it is common to come across the following error message:
-
-`Error Code - DM_LICENSE_BUFFER_FAILED. Value - 20002. Description - Failed to read or write license buffer.`
-
-This error occurs when Dynamsoft SDK attempts to write the license file to the local usr/home directory or Home directory, but is unable to do so due to lack of permission to read or write the license file in that directory.
-
-To resolve this issue, please set the license file cache path to a directory that your program has read and write permissions for.
-
-
-Code snippet in C:
-```C
-char errorBuf[512];
-DBR_SetLicenseCachePath("DIRECTORY-PATH-FOR-LICENSE-CACHE");
-DBR_InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-void* barcodeReader = DBR_GetInstance();
-```
-Code snippet in C++:
-```Cpp
-char errorBuf[512];
-dynamsoft::dbr::CBarcodeReader::SetLicenseCachePath("DIRECTORY-PATH-FOR-LICENSE-CACHE");
-dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-CBarcodeReader* reader = CBarcodeReader::GetInstance();
-```
-Code snippet in C#:
-```CSharp
-string errorMsg;
-BarcodeReader.SetLicenseCachePath("DIRECTORY-PATH-FOR-LICENSE-CACHE");
-BarcodeReader.InitLicense("YOUR-LICENSE-KEY", out errorMsg);
-BarcodeReader reader = BarcodeReader.GetInstance();
-```
-Code snippet in Java:
-```Java
-BarcodeReader.setLicenseCachePath("DIRECTORY-PATH-FOR-LICENSE-CACHE");
-BarcodeReader.initLicense("YOUR-LICENSE-KEY");
-BarcodeReader reader = BarcodeReader.getInstance();
-```
-Code snippet in Python:
-```Python
-BarcodeReader.set_license_cache_path("DIRECTORY-PATH-FOR-LICENSE-CACHE")
-BarcodeReader.init_license("YOUR-LICENSE-KEY")
-reader = BarcodeReader()
-```
diff --git a/faq/general/how-to-enable-dpm-v9.6.42.md b/faq/general/how-to-enable-dpm-v9.6.42.md
deleted file mode 100644
index 81b4cb6a..00000000
--- a/faq/general/how-to-enable-dpm-v9.6.42.md
+++ /dev/null
@@ -1,19 +0,0 @@
----
-layout: default-layout
-title: How to enable DPM?
-keywords: Dynamsoft Barcode Reader, FAQ, tech basic, enable DPM
-description: How to enable DPM?
-needAutoGenerateSidebar: false
----
-
-## How to enable DPM?
-
-[<< Back to FAQ index](index.md)
-
-To enable DPM, assign the `DPMCRM_GENERAL` enumeration to the `DPMCodeReadingModes` array of the furtherModes interface, as such:
-
-```javascript
-await settings = await scanner.getRuntimeSettings();
-settings.furtherModes.dpmCodeReadingModes[0] = Dynamsoft.DBR.EnumDPMCodeReadingMode.DPMCRM_GENERAL;
-await scanner.updateRuntimeSettings(settings);
-```
\ No newline at end of file
diff --git a/faq/general/non-english-characters-v9.6.42.md b/faq/general/non-english-characters-v9.6.42.md
deleted file mode 100644
index e31f3bd3..00000000
--- a/faq/general/non-english-characters-v9.6.42.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-layout: default-layout
-title: Why is the barcode image returning messy (non-english) characters on the online demo?
-keywords: Dynamsoft Barcode Reader, FAQ, DBR Introduction, messy characters, non-English characters
-description: Why is the barcode image returning messy (non-english) characters on the online demo?
-needAutoGenerateSidebar: false
----
-
-## Why is the barcode image returning messy (non-english) characters on the online demo?
-
-[<< Back to FAQ index](index.md)
-
-The barcode text of the result is of a non-Latin based language, as by default most webpages are able to display Latin-based languages.
-
-In order to display the barcode text, it is best to do it via the [`barcodeBytes`](https://www.dynamsoft.com/barcode-reader/programming/c-cplusplus/struct/TextResult.html?src=c&&ver=latest#barcodebytes) of the TextResult. Once the bytes are obtained, you can 'translate' them to a string based on the encoding identifier of the language that you are trying to display.
diff --git a/faq/general/scan-specific-page-v9.6.42.md b/faq/general/scan-specific-page-v9.6.42.md
deleted file mode 100644
index 59642715..00000000
--- a/faq/general/scan-specific-page-v9.6.42.md
+++ /dev/null
@@ -1,23 +0,0 @@
----
-layout: default-layout
-title: The pdf file has 10 pages but only the last page has a barcode. Is it possible to decode the last page only?
-keywords: Dynamsoft Barcode Reader, FAQ, DBR Introduction, scan specific page
-description: The pdf file has 10 pages but only the last page has a barcode. Is it possible to decode the last page only?
-needAutoGenerateSidebar: false
----
-
-## The PDF file has 10 pages but only the last page has a barcode. Is it possible to decode the last page only?
-
-[<< Back to FAQ index](index.md)
-
-This can indeed be done via the `Pages` parameter of the `ImageParameter` interface as explained [here](https://www.dynamsoft.com/barcode-reader/parameters/scenario-settings/multipage-imgs-and-pdf.html?ver=latest). This can ONLY be set via the JSON. Here is a JSON snippet for reading the last page of a 10 page document:
-
-```json
-{ "ImageParameter": {
- "Pages": "9"
- },
- "Version": "3.0"
-}
-```
-
-Once the JSON string is set, you can initialize the runtime settings to use it via the `InitRuntimeSettingsWithString` or `InitRuntimeSettingsWithFile` method. Please note that if you are modifying any other settings, you can include them in the JSON string/file as well, or you can access them individually after calling either of the aforementioned methods.
diff --git a/faq/general/unprintable-character-v9.6.42.md b/faq/general/unprintable-character-v9.6.42.md
deleted file mode 100644
index c4c739b9..00000000
--- a/faq/general/unprintable-character-v9.6.42.md
+++ /dev/null
@@ -1,481 +0,0 @@
----
-layout: default-layout
-title: How to ?
-keywords: Dynamsoft Barcode Reader, FAQ, tech basic, enable DPM
-description:
-needAutoGenerateSidebar: false
----
-
-# How to Handle Non-printable Characters Like "\u{1D}" or "{GS}" from the Barcode Text?
-
-This page helps to you modify the barcode results when non-printable characters exists in the barcode text you decoded.
-
-You always get 2 values that stands for the barcode decoding result from the `textResult` object:
-
-- `barcodeBytes`
-- `barcodeText`
-
-Since `barcodeText` is a string value that generated from the `barcodeBytes`, is might be decoded into different characters based on different character encoding formats. When there exists a non-printable ASCII value (0 ~ 31 or 127) in the `barcodeBytes` array, the value is decoded into a messy code. Currently, the library doesn't provide methods to remove the non-printable characters nor convert them into printable characters, you have to add your own code to recognize the non-printable characters and replace or remove them. The following code snippet is an example for how to create a method for processing the `barcodeBytes` into a string you want.
-
-**Code Snippet**
-
-
- >- JavaScript
- >- Android
- >- Objective-C
- >- Swift
- >- Python
- >- Java
- >- C#
- >- C++
- >
->
-```javascript
-const ProcessNonPrintingCharsMode = {
- PNPCM_KEEP: 0,
- PNPCM_REMOVE: 1,
- PNPCM_CONVERT: 2};
-class ProcessBarcodeBytesUtil {
- #__non_printing_ascii_chars_value_to_string_dict = new Map([
- [0, '{NUL}'],
- [1, '{SOH}'],
- [2, '{STX}'],
- [3, '{ETX}'],
- [4, '{EOT}'],
- [5, '{ENQ}'],
- [6, '{ACK}'],
- [7, '{BEL}'],
- [8, '{BS}'],
- [9, '{HT}'],
- [10, '{LF}'],
- [11, '{VT}'],
- [12, '{FF}'],
- [13, '{CR}'],
- [14, '{SO}'],
- [15, '{SI}'],
- [16, '{DLE}'],
- [17, '{DC1}'],
- [18, '{DC2}'],
- [19, '{DC3}'],
- [20, '{DC4}'],
- [21, '{NAK}'],
- [22, '{SYN}'],
- [23, '{ETB}'],
- [24, '{CAN}'],
- [25, '{EM}'],
- [26, '{SUB}'],
- [27, '{ESC}'],
- [28, '{FS}'],
- [29, '{GS}'],
- [30, '{RS}'],
- [31, '{US}'],
- [127, '{DEL}']
- ])
- process_barcode_bytes(bytes, mode, keepLineBreak = true) {
- // Process the non-printing chars of barcode bytes to obtain desired text.
- // Parameters
- // ----------
- // bytes : bytearray
- // The barcode content in a byte array.
- // mode : ProcessNonPrintingCharsMode
- // The mode indicates how to processing non-printing chars.
- // keepLineBreak : bool
- // The flag indicates whether to preserve the original line breaks in the resulting text. It is only valid when mode is PNPCM_REMOVE or PNPCM_CONVERT.
- // Returns
- // -------
- // result : str
- // Returns The text result after processing barcode bytes.
- let result = "";
- for (let _byte in bytes) {
- if (this.#__non_printing_ascii_chars_value_to_string_dict.has(_byte) || mode == ProcessNonPrintingCharsMode.PNPCM_KEEP || keepLineBreak && (_byte == 10 || _byte == 13)) {
- result += String.fromCharCode(_byte);
- } else if (mode == ProcessNonPrintingCharsMode.PNPCM_CONVERT) {
- result += this.#__non_printing_ascii_chars_value_to_string_dict.get(_byte);
- }
- }
- return result;
- }
-}
-let barcode_bytes = text_result.barcode_bytes;
-let util = new ProcessBarcodeBytesUtil();
-let origin_str = util.process_barcode_bytes(barcode_bytes, ProcessNonPrintingCharsMode.PNPCM_KEEP);
-console.log('original text:\n' + origin_str);
-let removed_str = util.process_barcode_bytes(barcode_bytes, ProcessNonPrintingCharsMode.PNPCM_REMOVE);
-console.log('2.text after removing non-printing chars except line break:\n' + removed_str);
-let removed_str2 = util.process_barcode_bytes(barcode_bytes, ProcessNonPrintingCharsMode.PNPCM_REMOVE, false);
-console.log('3.text after removing non-printing chars:\n' + removed_str2);
-let converted_str = util.process_barcode_bytes(barcode_bytes, ProcessNonPrintingCharsMode.PNPCM_CONVERT);
-console.log('4.text after converting non-printing chars except line break:\n' + converted_str);
-let converted_str2 = util.process_barcode_bytes(barcode_bytes, ProcessNonPrintingCharsMode.PNPCM_CONVERT, false);
-console.log('5.text after converting non-printing chars:\n' + converted_str2);
-```
->
-```java
-mReader.setTextResultListener(new TextResultListener() {
- // Obtain the recognized barcode results and display.
- @Override
- public void textResultCallback(int id, ImageData imageData, TextResult[] textResults) {
- process = new ProcessBarcodeResultUtil();
- if (textResults!=null && textResults.length!=0){
- for (int i=0; i< textResults.length; i++){
- String processedResult = process.processBarcodeByte(textResults[i].barcodeBytes,ProcessBarcodeResultUtil.ProcessNonPrintingCharsMode.PNPCM_REMOVE,true);
- Log.i("ProcessByte", "textResultCallback: processeResult = "+processedResult);
- textResults[i].barcodeText = processedResult;
- }
- }
- }
-}
-// Create a ProcessBarcodeResultUtil class
-public class ProcessBarcodeResultUtil {
- enum ProcessNonPrintingCharsMode{
- PNPCM_KEEP,
- PNPCM_REMOVE,
- PNPCM_CONVERT
- }
- final HashMap charValueToStringDict = new HashMap();
- ProcessBarcodeResultUtil(){
- final int[] NonPrintingAsciiCharsValue = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127};
- final String[] NonPrintingAsciiCharsString = {
- "{NUL}","{SOH}","{STX}","{ETX}","{EOT}","{ENQ}","{ACK}","{BEL}","{BS}","{HT}","{LF}","{VT}","{FF}","{CR}","{SO}","{SI}",
- "{DLE}","{DC1}","{DC2}","{DC3}","{DC4}","{NAK}","{SYN}","{ETB}","{CAN}","{EM}","{SUB}","{ESC}","{FS}","{GS}","{RS}","{US}","{DEL}"
- };
- for (int i = 0; i < 33; ++i){
- charValueToStringDict.put(NonPrintingAsciiCharsValue[i], NonPrintingAsciiCharsString[i]);
- }
- }
- public String processBarcodeByte(byte[] barcodeByte, ProcessNonPrintingCharsMode mode, boolean keepLineBreak){
- StringBuilder processedResult = new StringBuilder();
- for (int i=0; i
-```objc
-typedef NS_ENUM(NSInteger,EnumResultProcessMode)
-{
- RPM_KEEP = 0,
- RPM_CONVERT = 1,
- RPM_REMOVE = 2
-};
-...
-- (void)textResultCallback:(NSInteger)frameId imageData:(iImageData *)imageData results:(NSArray *)results{
- if (results) {
- for (NSInteger i = 0; i< [results count]; i++) {
- results[i].barcodeText = [self processResult:results[i].barcodeBytes mode:RPM_CONVERT isBreaklineKept:NO];
- msgText = [msgText stringByAppendingString:[NSString stringWithFormat:@"\nFormat: %@\nText: %@\n", results[i].barcodeFormatString, results[i].barcodeText]];
- }
- }
-}
-- (NSString *)processBarcodeBytes:(NSData *)byte
- mode:(EnumResultProcessMode)mode
- isBreaklineKept:(BOOL)isKept{
- NSArray* _nonPrintingAsciiCharsKey = @[@0,@1,@2,@3,@4,@5,@6,@7,@8,@9,@10,@11,@12,@13,@14,@15,@16,@17,@18,@19,@20,@21,@22,@23,@24,@25,@26,@27,@28,@29,@30,@31,@127];
- NSArray* _nonPrintingAsciiCharsString = @[@"{NUL}",@"{SOH}",@"{STX}",@"{ETX}",@"{EOT}",@"{ENQ}",@"{ACK}",@"{BEL}",@"{BS}",@"{HT}",@"{LF}",@"{VT}",@"{FF}",@"{CR}",@"{SO}",@"{SI}",@"{DLE}",@"{DC1}",@"{DC2}",@"{DC3}",@"{DC4}",@"{NAK}",@"{SYN}",@"{ETB}",@"{CAN}",@"{EM}",@"{SUB}",@"{ESC}",@"{FS}",@"{GS}",@"{RS}",@"{US}",@"{DEL}"];
- NSMapTable * _charValueToStringDict = [NSMapTable strongToStrongObjectsMapTable];
- for (int i=0; i<_nonPrintingAsciiCharsKey.count;i++){
- [_charValueToStringDict setObject:_nonPrintingAsciiCharsString[i] forKey:_nonPrintingAsciiCharsKey[i]];
- }
- const char* _Nonnull barcodeByteChar = byte.bytes;
- NSString *processedText = @"";
- for (int i=0;i31 && (int)barcodeByteChar[i]!=127 && (int)barcodeByteChar[i]!=0)){
- NSString *nextString = [NSString stringWithFormat:@"%c",barcodeByteChar[i]];
- processedText = [processedText stringByAppendingString:nextString];
- }
- else if (mode == RPM_CONVERT){
- NSNumber *keyValue = [[NSNumber alloc] initWithInt:(int)barcodeByteChar[i]];
- NSString *nextString = [_charValueToStringDict objectForKey:@2];
- processedText = [processedText stringByAppendingString:nextString];
- }
- }
- return processedText;
-}
-```
->
-```swift
-enum EnumResultProcessMode{
- case keep
- case convert
- case remove
-}
-func textResultCallback(_ frameId: Int, imageData: iImageData, results: [iTextResult]?) {
- if (results != nil){
- for item in results! {
- let processedBarcodeText = processBarcodeBytes(byte: item.barcodeBytes!, processMode: EnumResultProcessMode.convert, isKeep: true)
- item.barcodeText = processedBarcodeText
- }
- }
-}
-private func processBarcodeBytes(byte:Data, processMode:EnumResultProcessMode, isKeep:Bool) -> String{
- let charValueToStringDict:NSDictionary = [0:"{NUL}",1:"{SOH}",2:"{STX}",3:"{ETX}",4:"{EOT}",5:"{ENQ}",6:"{ACK}",7:"{BEL}",8:"{BS}",9:"{HT}",10:"{LF}",11:"{VT}",12:"{FF}",13:"{CR}",14:"{SO}",15:"{SI}",16:"{DLE}",17:"{DC1}",18:"{DC2}",19:"{DC3}",20:"{DC4}",21:"{NAK}",22:"{SYN}",23:"{ETB}",24:"{CAN}",25:"{EM}",26:"{SUB}",27:"{ESC}",28:"{FS}",29:"{GS}",30:"{RS}",31:"{US}",127:"{DEL}"]
- var processedString = ""
- for i in 0...byte.count-1{
- if ((isKeep && ((byte[i]==10) || (byte[i]==13))) || (processMode == EnumResultProcessMode.keep) || ((byte[i]>31) && (byte[i] != 127) && (byte[i] != 0))){
- let nextText:String = String(bytes: [byte[i]], encoding: String.Encoding.utf8)!
- processedString += nextText as String
- }
- else if (processMode == EnumResultProcessMode.convert){
- let nextText:NSString = charValueToStringDict.object(forKey: byte[i]) as! NSString
- processedString += nextText as String
- }
- }
- return processedString
-}
-```
->
-```python
-class ProcessNonPrintingCharsMode:
- PNPCM_KEEP = 0
- PNPCM_REMOVE = 1
- PNPCM_CONVERT = 2
-class ProcessBarcodeBytesUtil:
- def __init__(self):
- self.__non_printing_ascii_chars_value_to_string_dict:dict = dict({
- (0,'{NUL}'),(1,'{SOH}'),(2,'{STX}'),(3,'{ETX}'),(4,'{EOT}'),(5,'{ENQ}'),(6,'{ACK}'),(7,'{BEL}'),
- (8,'{BS}'),(9,'{HT}'),(10,'{LF}'),(11,'{VT}'),(12,'{FF}'),(13,'{CR}'),(14,'{SO}'),(15,'{SI}'),
- (16,'{DLE}'),(17,'{DC1}'),(18,'{DC2}'),(19,'{DC3}'),(20,'{DC4}'),(21,'{NAK}'),(22,'{SYN}'),(23,'{ETB}'),
- (24,'{CAN}'),(25,'{EM}'),(26,'{SUB}'),(27,'{ESC}'),(28,'{FS}'),(29,'{GS}'),(30,'{RS}'),(31,'{US}'),(127,'{DEL}')
- })
- def process_barcode_bytes(self, bytes:bytearray, mode:ProcessNonPrintingCharsMode, keepLineBreak:bool = True)->str:
- """
- Process the non-printing chars of barcode bytes to obtain desired text.
- Parameters
- ----------
- bytes : bytearray
- The barcode content in a byte array.
- mode : ProcessNonPrintingCharsMode
- The mode indicates how to processing non-printing chars.
- keepLineBreak : bool
- The flag indicates whether to preserve the original line breaks in the resulting text. It is only valid when mode is PNPCM_REMOVE or PNPCM_CONVERT.
- Returns
- -------
- result : str
- Returns The text result after processing barcode bytes.
- """
- result:str = ''
- for _byte in bytes:
- if not self.__non_printing_ascii_chars_value_to_string_dict.__contains__(_byte) \
- or mode == ProcessNonPrintingCharsMode.PNPCM_KEEP \
- or keepLineBreak and (_byte == 10 or _byte == 13):
- result += chr(_byte)
- elif mode == ProcessNonPrintingCharsMode.PNPCM_CONVERT:
- result += self.__non_printing_ascii_chars_value_to_string_dict.get(_byte)
- return result
-if __name__ == '__main__':
- barcode_bytes = text_result.barcode_bytes
- util = ProcessBarcodeBytesUtil()
- origin_str = util.process_barcode_bytes(barcode_bytes, ProcessNonPrintingCharsMode.PNPCM_KEEP)
- print('original text:\n' + origin_str)
- removed_str = util.process_barcode_bytes(barcode_bytes, ProcessNonPrintingCharsMode.PNPCM_REMOVE)
- print('\n2.text after removing non-printing chars except line break:\n' + removed_str)
- removed_str2 = util.process_barcode_bytes(barcode_bytes, ProcessNonPrintingCharsMode.PNPCM_REMOVE, False)
- print('\n3.text after removing non-printing chars:\n' + removed_str2)
- converted_str = util.process_barcode_bytes(barcode_bytes, ProcessNonPrintingCharsMode.PNPCM_CONVERT)
- print('\n4.text after converting non-printing chars except line break:\n' + converted_str)
- converted_str2 = util.process_barcode_bytes(barcode_bytes, ProcessNonPrintingCharsMode.PNPCM_CONVERT, False)
- print('\n5.text after converting non-printing chars:\n' + converted_str2)
-```
->
-```java
-public class ProcessBarcodeBytesUtil {
- enum ProcessNonPrintingCharsMode
- {
- PNPCM_KEEP,
- PNPCM_REMOVE,
- PNPCM_CONVERT
- }
- final HashMap charValueToStringDict = new HashMap();
- ProcessBarcodeBytesUtil() {
- final int[] NonPrintingAsciiCharsValue = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127};
- final String[] NonPrintingAsciiCharsString = {"{NUL}","{SOH}","{STX}","{ETX}","{EOT}","{ENQ}","{ACK}","{BEL}","{BS}","{HT}","{LF}","{VT}","{FF}","{CR}","{SO}","{SI}","{DLE}","{DC1}","{DC2}","{DC3}","{DC4}","{NAK}","{SYN}","{ETB}","{CAN}","{EM}","{SUB}","{ESC}","{FS}","{GS}","{RS}","{US}","{DEL}"
- };
- for (int i = 0; i < 33; ++i)
- charValueToStringDict.put(NonPrintingAsciiCharsValue[i], NonPrintingAsciiCharsString[i]);
- }
- /**
- * Process the non-printing chars of barcode bytes to obtain desired text.
- *
- * @param bytes The barcode content in a byte array.
- * @param mode The mode indicates how to processing non-printing chars.
- * @param keepLineBreak The flag indicates whether to preserve the original line breaks in the resulting text. It is only valid when mode is PNPCM_REMOVE or PNPCM_CONVERT.
- * @return Returns The text result after processing barcode bytes.
- *
- */
- public String processBarcodeBytes(byte[] bytes, ProcessNonPrintingCharsMode mode, boolean keepLineBreak) {
- StringBuilder result = new StringBuilder();
- for (int i = 0; i < bytes.length; ++i)
- {
- int byteValue = (int)bytes[i];
- if (!charValueToStringDict.containsKey(byteValue)
- || mode == ProcessNonPrintingCharsMode.PNPCM_KEEP
- || keepLineBreak && (byteValue == 10 || byteValue == 13)) {
- result.append((char)bytes[i]);
- }
- else if (mode == ProcessNonPrintingCharsMode.PNPCM_CONVERT) {
- result.append(charValueToStringDict.get(byteValue));
- }
- }
- return result.toString();
- }
- public static void main(String[] args) throws InterruptedException {
- byte[] barcodeBytes = textResult.barcodeBytes;
- ProcessBarcodeBytesUtil util = new ProcessBarcodeBytesUtil();
- String s0 = util.ProcessBarcodeBytes(barcodeBytes, ProcessNonPrintingCharsMode.PNPCM_KEEP, true);
- String s1 = util.ProcessBarcodeBytes(barcodeBytes, ProcessNonPrintingCharsMode.PNPCM_REMOVE, true);
- String s2 = util.ProcessBarcodeBytes(barcodeBytes, ProcessNonPrintingCharsMode.PNPCM_REMOVE, false);
- String s3 = util.ProcessBarcodeBytes(barcodeBytes, ProcessNonPrintingCharsMode.PNPCM_CONVERT, true);
- String s4 = util.ProcessBarcodeBytes(barcodeBytes, ProcessNonPrintingCharsMode.PNPCM_CONVERT, false);
- System.out.println("1.original text:\n" + s0);
- System.out.println("\n2.text after removing non-printing chars except line break:\n" + s1);
- System.out.println("\n3.text after removing non-printing chars:\n" + s2);
- System.out.println("\n4.text after converting non-printing chars except line break:\n" + s3);
- System.out.println("\n5.text after converting non-printing chars:\n" + s4);
- }
-}
-```
->
-```csharp
-class ProcessBarcodeBytesUtil
-{
- internal enum ProcessNonPrintingCharsMode
- {
- PNPCM_KEEP,
- PNPCM_REMOVE,
- PNPCM_CONVERT
- }
- Hashtable charValueToStringDict = new Hashtable();
- ProcessBarcodeBytesUtil()
- {
- int[] NonPrintingAsciiCharsValue = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 127 };
- string[] NonPrintingAsciiCharsString = {
- "{NUL}","{SOH}","{STX}","{ETX}","{EOT}","{ENQ}","{ACK}","{BEL}","{BS}","{HT}","{LF}","{VT}","{FF}","{CR}","{SO}","{SI}",
- "{DLE}","{DC1}","{DC2}","{DC3}","{DC4}","{NAK}","{SYN}","{ETB}","{CAN}","{EM}","{SUB}","{ESC}","{FS}","{GS}","{RS}","{US}","{DEL}"
- };
- for (int i = 0; i < 33; ++i)
- charValueToStringDict.Add(NonPrintingAsciiCharsValue[i], NonPrintingAsciiCharsString[i]);
- }
- ///
- /// Process the non-printing chars of barcode bytes to obtain desired text.
- ///
- /// The barcode content in a byte array.
- /// The mode indicates how to processing non-printing chars.
- /// The flag indicates whether to preserve the original line breaks in the resulting text. It is only valid when mode is PNPCM_REMOVE or PNPCM_CONVERT.
- /// Returns The text result after processing barcode bytes.
- public string ProcessBarcodeBytes(byte[] bytes, ProcessNonPrintingCharsMode mode, bool keepLineBreak = true)
- {
- StringBuilder result = new StringBuilder();
- for (int i = 0; i < bytes.Length; ++i)
- {
- int byteValue = (int)bytes[i];
- if (!charValueToStringDict.ContainsKey(byteValue)
- || mode == ProcessNonPrintingCharsMode.PNPCM_KEEP
- || keepLineBreak && (byteValue == 10 || byteValue == 13))
- {
- result.Append((char)bytes[i]);
- }
- else if (mode == ProcessNonPrintingCharsMode.PNPCM_CONVERT)
- {
- result.Append(charValueToStringDict[byteValue]);
- }
- }
- return result.ToString();
- }
- public static void Main(string[] args)
- {
- byte[] barcodeBytes = textResult.barcodeBytes;
- ProcessBarcodeBytesUtil util = new ProcessBarcodeBytesUtil();
- String s0 = util.ProcessBarcodeBytes(barcodeBytes, ProcessNonPrintingCharsMode.PNPCM_KEEP);
- String s1 = util.ProcessBarcodeBytes(barcodeBytes, ProcessNonPrintingCharsMode.PNPCM_REMOVE);
- String s2 = util.ProcessBarcodeBytes(barcodeBytes, ProcessNonPrintingCharsMode.PNPCM_REMOVE, false);
- String s3 = util.ProcessBarcodeBytes(barcodeBytes, ProcessNonPrintingCharsMode.PNPCM_CONVERT);
- String s4 = util.ProcessBarcodeBytes(barcodeBytes, ProcessNonPrintingCharsMode.PNPCM_CONVERT, false);
- Console.WriteLine("1.original text:\n" + s0);
- Console.WriteLine("\n2.text after removing non-printing chars except line break:\n" + s1);
- Console.WriteLine("\n3.text after removing non-printing chars:\n" + s2);
- Console.WriteLine("\n4.text after converting non-printing chars except line break:\n" + s3);
- Console.WriteLine("\n5.text after converting non-printing chars:\n" + s4);
- }
-}
-```
->
-```c++
-#include
-#include
-typedef enum ProcessNonPrintingCharsMode
-{
- PNPCM_KEEP,
- PNPCM_REMOVE,
- PNPCM_CONVERT
-}ProcessNonPrintingCharsMode;
-class ProcessBarcodeBytesUtil
-{
-private:
- std::map charValueToStringDict;
-public:
- ProcessBarcodeBytesUtil()
- {
- int NonPrintingAsciiCharsValue[33] = {
- 0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xa,0xb,0xc,0xd,0xe,0xf,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x7f
- };
- const char* NonPrintingAsciiCharsString[33] = {
- "{NUL}","{SOH}","{STX}","{ETX}","{EOT}","{ENQ}","{ACK}","{BEL}","{BS}","{HT}","{LF}","{VT}","{FF}","{CR}","{SO}","{SI}","{DLE}","{DC1}","{DC2}","{DC3}","{DC4}","{NAK}","{SYN}","{ETB}","{CAN}","{EM}","{SUB}","{ESC}","{FS}","{GS}","{RS}","{US}","{DEL}"
- };
- for (int i = 0; i < 33; ++i)
- charValueToStringDict.insert(std::make_pair(NonPrintingAsciiCharsValue[i], NonPrintingAsciiCharsString[i]));
- }
- /**
- * Process the non-printing chars of barcode bytes to obtain desired text.
- *
- * @param [in] bytes The barcode content in a byte array.
- * @param [in] bytesLength The length of the byte array.
- * @param [in] mode The mode indicates how to processing non-printing chars.
- * @param [in] keepLineBreak The flag indicates whether to preserve the original line breaks in the resulting text. It is only valid when mode is PNPCM_REMOVE or PNPCM_CONVERT.
- *
- * @return Returns The text result after processing barcode bytes.
- *
- */
- std::string processBarcodeBytes(unsigned char* bytes, int bytesLength, ProcessNonPrintingCharsMode mode, bool keepLineBreak = true) {
- std::string result;
- for (int i = 0; i < bytesLength; ++i)
- {
- int byteValue = (int)bytes[i];
- if (charValueToStringDict.find(byteValue) == charValueToStringDict.end()
- || mode == PNPCM_KEEP
- || keepLineBreak && (byteValue == 10 || byteValue == 13)) {
- result.append(1, bytes[i]);
- }
- else if (mode == PNPCM_CONVERT) {
- result.append(charValueToStringDict[byteValue]);
- }
- }
- return result;
- }
-};
-int main()
-{
- // obtain bytes from TextResult.
- unsigned char barcodeBytes = textResult->barcodeBytes;
- int bytesLength = textResult->bytesLength;
- ProcessBarcodeBytesUtil util;
- std::string originStr = util.processBarcodeBytes(barcodeBytes, bytesLength, PNPCM_KEEP);
- std::cout << "1.original text:" << std::endl << originStr << std::endl << std::endl;
- std::string strAfterRemoveExceptLineBreack = util.processBarcodeBytes(barcodeBytes, bytesLength, PNPCM_REMOVE);
- std::cout << "2.text after removing non-printing chars except line break:" << std::endl << strAfterRemoveExceptLineBreack << std::endl << std::endl;
- std::string strAfterRemove= util.processBarcodeBytes(barcodeBytes, bytesLength, PNPCM_REMOVE, false);
- std::cout << "3.text after removing non-printing chars:" << std::endl << strAfterRemove << std::endl << std::endl;
- std::string strAfterConvertExceptLineBreack = util.processBarcodeBytes(barcodeBytes, bytesLength, PNPCM_CONVERT);
- std::cout << "4.text after converting non-printing chars except line break:" << std::endl << strAfterConvertExceptLineBreack << std::endl << std::endl;
- std::string strAfterConvert = util.processBarcodeBytes(barcodeBytes, bytesLength, PNPCM_CONVERT, false);
- std::cout << "5.text after converting non-printing chars:" << std::endl << strAfterConvert << std::endl << std::endl;
- return 0;
-}
-```
diff --git a/introduction/architecture-v9.6.42.md b/introduction/architecture-v9.6.42.md
deleted file mode 100644
index 3a315a53..00000000
--- a/introduction/architecture-v9.6.42.md
+++ /dev/null
@@ -1,188 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Introduction - Architecture
-description: This is the architecture page of Dynamsoft Barcode Reader Introduction.
-keywords: architecture, principles
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
----
-
-# Principles of Dynamsoft Barcode Reader Algorithm
-
-Dynamsoft Barcode Reader (DBR) is a flexible and powerful SDK used to implement barcode reading functionality in cross-platform applications. Supported barcode formats include QR Code, Linear(1D), PDF417, DataMatrix, and [more]({{site.introduction}}index.html#barcode-formats).
-
-The SDK is built to suit most scenarios, which can vary in a number of ways, from the barcode features that need to be supported to accommodating different programming practices. The software architecture and design of DBR can accommodate a variety of application requirements. The barrier of entry to barcode reading using the SDK is low, allowing customers to start building their application effortlessly, all while providing various customization options and tools to handle more complicated scenarios.
-
-DBR powers your software development from the following aspects:
-
-- Providing fast and powerful performance when it comes to reading barcodes
-- Agility to deal with unpredictable situations or scenarios
-- Integration of multipurpose image processing
-- Extensibility of deployment
-
-In this article, we will present the architectures and their corresponding contributions to the above advantages.
-
-## Flexible Algorithm Flow & Versatile Parameters
-
-At the top level, the algorithm of DBR consistes of a 5-stage process, as illustrated in Figure 1. Localization, partition, and decoding are the three core stages. DBR is designed to deal with a variety of barcode scenarios and qualities and offers many customizable parameters to further improve its versatility. The architecture of the algorithm and its parameters solidifies the agility to meet any new requirements that might come up during development.
-
-
-
-
Figure 1 – Top Level Flow of DBR Algorithm
-
-
-### Stage 1 is to get regions of interest (ROI) image(s)
-
-This stage begins with how to get an image from a variety of sources, including files, videos, or buffers of other applications. Then there are some optional steps to convert the original image to a grayscale image. What these steps do depends on the relevant parameters' values. Table 1 lists these parameters and their respective design intents.
-
-Table 1 – Parameters of DBR Algorithm in the Stage 1
-
-| **Parameter Name** | **Functionality** | **Status** |
-| ------------------ | ---------------------------- | ---------- |
-| [`ScaleDownThreshold`]({{ site.parameters_reference }}scale-down-threshold.html) | To speed up the barcode recognition when the image size is large. | Available |
-| [`ColourClusteringModes`]({{ site.parameters_reference }}colour-clustering-modes.html#colourclusteringmodes) | To categorize colours into a few colours representing background or foreground. | Available, Extensible |
-| [`ColourConversionModes`]({{ site.parameters_reference }}colour-conversion-modes.html#colourconversionmodes) | To set the conversion from colour to grayscale, which keeps or enhances the features of the region of interest. | Available, Extensible |
-| [`GrayscaleTransformationModes`]({{ site.parameters_reference }}grayscale-transformation-modes.html#grayscaletransformationmodes) | To emphasize the features of regions of interest with processing of the grayscale image. | Available, Extensible |
-| [`RegionPredetectionModes`]({{ site.parameters_reference }}region-predetection-modes.html#regionpredetectionmodes) | To limit the subsequent stages in certain areas up by detecting the regions of interest automatically. Pre-detection is based on the colour/grayscale distribution of each area. | Available, Extensible |
-| [`RegionDefinitionNameArray`]({{ site.parameters_reference }}image-parameter/index.html#regiondefinitionnamearray) | To specify one or more regions of interest manually, speed up by excluding the other area. | Available |
-
-As mentioned above, the focus of this stage is to reduce the time cost by scaling down or finding out ROIs. It is not essential for most scenarios but would be helpful for some extreme cases.
-
-### Stage 2 is to localize barcode zones
-
-Various features of different barcode formats help detect barcode zones. Before detecting and localizing barcode zones, some optional steps can be taken to speed up, such as filter distraction, enhance/keep barcode zone features etc. These steps are related to the respective parameters listed in the Table 2.
-
-Table 2 – Parameters of DBR Algorithm in the Stage 2
-
-| **Parameter Name** | **Intent and Functionalities** | **Status** |
-|--------------------|--------------------------------|------------|
-| [`ImagePreprocessingModes`]({{ site.parameters_reference }}image-preprocessing-modes.html#imagepreprocessingmodes) | To enhance/keep features of barcode zones by processing colour or grayscale images. | Available, Extensible |
-| [`BinarizationModes`]({{ site.parameters_reference }}binarization-modes.html#binarizationmodes) | To enhance/keep features of barcode zones by applying different binarization methods and arguments. | Available, Extensible |
-| [`TextureDetectionModes`]({{ site.parameters_reference }}texture-detection-modes.html#texturedetectionmodes) | To reduce the time cost and error probability caused by textures that resemble 1D barcodes. | Available, Extensible |
-| [`TextFilterModes`]({{ site.parameters_reference }}text-filter-modes.html#textfiltermodes) | To exclude the text from barcodes and reduce time cost. | Available, Extensible |
-
-[`LocalizationModes`]({{ site.parameters_reference }}localization-modes.html#localizationmodes) is an important parameter that includes the modes in Table 3.
-
-Table 3 – Barcode Localization Modes of DBR
-
-| **Mode Name** | **Pros** | **Cons** |
-|---------------|----------|----------|
-| `LM_SCAN_DIRECTLY` | Fast | Easy to miss barcodes. Performance isn't consistent with different barcodes types. |
-| `LM_CONNECTED_BLOCKS` | Efficient for clear images. | Sensitive to damage of module connection. |
-| `LM_LINES` | Robust for broken barcodes. | More computation required to extract vectors of lines compared to `LM_CONNECTED_BLOCKS`. |
-| `LM_STATISTICS` | Robust for blurry images. | Hard to differentiate barcodes from other printing areas where there are similar black-white contrasts. |
-| `LM_STATISTICS_MARKS` | Suitable for barcodes with separate modules in unusual shapes. | May misinterpret concentrated areas of any shape patterns. Only useful for few 2D barcode formats. Lack of boundary indication. |
-| `LM_STATISTICS_POSTAL_CODE` | Optimized for postal codes. | Not applicable to other barcode formats. |
-| `LM_...` | Customizable, Addible | More time and cost. |
-
-1. `LM_SCAN_DIRECTLY` is recommended when the barcode is large relative to the image size. 1D, GS1 Databar, and GS1 Composite bar are better able to take advantage of `LM_SCAN_DIRECTLY`.
-
-2. `LM_CONNECTED_BLOCKS` offers the right balance between efficiency and accuracy for most scenarios. It can share intermediate data and contours with a few other localization modes: `LM_LINES`, `LM_STATISTICS_MARKS`, `LM_STATISTICS_POSTAL_CODE`. So, `LM_CONNECTED_BLOCKS` is usually set as the priority before these modes.
-
-3. `LM_LINES` is a good option to follow `LM_CONNECTED_BLOCKS` if you want to achieve higher accuracy with a low time cost.
-
-4. `LM_STATISTICS` will try to find out the areas where the distribution of grayscale values looks like a barcode zone. It's an auxiliary method when the above modes don't work.
-
-The above four modes can support most regular barcode formats. The barcodes of these formats can be localized in one pass of
-an image. Limit the barcode formats for localization using the parameter [`BarcodeFormatIds`]({{ site.parameters_reference }}barcode-format-ids.html) and [`BarcodeFormatIds_2`]({{ site.parameters_reference }}barcode-format-ids-2.html).
-
-1. `LM_STATISTICS_MARKS` is designed mainly to find out barcodes whose modules are separate, e.g., Direct Part Marking (DPM), and DotCode.
-
-2. `LM_STATISTICS_POSTAL_CODE` finds bars of postal codes in terms of bars' distribution. `LM_SCAN_DIRECTLY`, `LM_CONNECTED_BLOCKS`, and `LM_LINES` can also contribute to the location of postal codes.
-
-Localization modes could be added according to particular features of the barcodes to meet the requirements of more barcode formats in the future.
-
-### Stage 3 is to partition barcode zones precisely
-
-For localized barcode zones, further work is essential before DBR can take it as a barcode to the decoding stage. Barcode format and exact boundary are two key factors. Some rough barcode zones, which is the result of certain localization modes, have the barcode format information. However, it isn't always the case. The exact boundary of a barcode is more meaningful than the rough zone for the following decoding stage. Though some barcode formats are robust to the boundary roughness, an exact boundary can improve the accuracy of poor-quality barcodes.
-
-[`BarcodeColourModes`]({{ site.parameters_reference }}barcode-colour-modes.html#barcodecolourmodes) is a parameter to control how to seek the boundary. Before, during, or after seeking boundary, the format can be determined. With an exact boundary, DBR may scale up the barcode if the module size is too small. The parameter, [`ScaleUpModes`]({{ site.parameters_reference }}scale-up-modes.html#scaleupmodes), is used to assign one or more scale up methods. At last, the anti-perspective transformation will be applied if the boundary isn't relatively rectangular.
-
-### Stage 4 is to decode one-calibrated-barcoded images
-
-This is the most complicated stage that accommodates a few methods to deal with varying barcode qualities. Table 4 lists the parameters to customize the decoding procedure.
-
-Table 4 – Parameters to Deal with Varying Quality Situation
-
-| **Parameter Name** | **Intent and Functionalities** | **Status** |
-|--------------------|--------------------------------|------------|
-| [`BarcodeComplementModes`]({{ site.parameters_reference }}barcode-complement-modes.html#barcodecomplementmodes) | To detect and complete a barcode with missing border modules. | Available for QRCode and DataMatrix |
-| [`DeformationResistingModes`]({{ site.parameters_reference }}deformation-resisting-modes.html#deformationresistingmodes) | To detect and restore a two-dimensional barcode from deformation. | Available for QRCode and DataMatrix |
-| [`DPMCodeReadingModes`]({{ site.parameters_reference }}dpm-code-reading-modes.html#dpmcodereadingmodes) | To separate and identify modules of a DPM barcode. | Available for DataMatrix |
-| [`DeblurLevel`]({{ site.parameters_reference }}deblur-level.html)/[`DeblurModes`]({{ site.parameters_reference }}deblur-modes.html#deblurmodes) | To apply a variety of image processing methods to sample modules. The higher the level, the more attempts. | Available |
-| [`MirrorMode`]({{ site.parameters_reference }}mirror-mode.html) | To try to decode barcode with mirroring. | Available |
-
-### Stage 5 is to output results
-
-This stage organizes the barcode decoding results. DBR checks all results together and checks if there are results close to together, which can be merged. The original results are all hex bytes. Then the results are converted, filtered, and sorted according to the following parameters.
-
-Table 5 – Parameters to Organize the Results
-
-| **Parameter Name** | **Intent and Functionalities** | **Status** |
-|--------------------|--------------------------------|------------|
-| [`ResultCoordinateType`]({{ site.parameters_reference }}result-coordinate-type.html) | To specify the coordinates unit measurement (percentage, pixel) used to represent the positions. | Available |
-| [`BarcodeTextRegExPattern`]({{ site.parameters_reference }}barcode-text-regex-pattern.html) | To filter text results with a regular expression. | Available |
-| [`BarcodeTextLengthRangeArray`]({{ site.parameters_reference }}barcode-text-length-range-array.html) | To filter text results with length limitations. | Available |
-| [`BarcodeBytesRegExPattern`]({{ site.parameters_reference }}barcode-bytes-regex-pattern.html) | To filter bytes results with a regular expression. | Available |
-| [`BarcodeBytesLengthRangeArray`]({{ site.parameters_reference }}barcode-bytes-length-range-array.html) | To filter bytes result with length limitations. | Available |
-| [`TextResultOrderModes`]({{ site.parameters_reference }}text-result-order-modes.html#textresultordermodes) | To sort the results according to certain factors. | Available |
-
-## Customizable Balance of Speed and Accuracy
-
-DBR's versatility and flexibility allows it to be competitive in speed or accuracy. Both the programming and the architecture guarantee the speed. As an extreme example, the most efficient internal path of the algorithm flow can only include the following steps when reading barcodes from a binary buffer image:
-
-1. Scan rows with a specific row stride. This gets white/black sample data while localizing possible barcodes.
-
-2. Decoding the sample data if it is a 1D barcode.
-
-While taking advantage of the most straightforward cases to improve speed, DBR can comply with other scenarios automatically. There are four levels to consider when balancing speed and accuracy.
-
-1. Set parameters values manually to narrow the range of targets. For example, fewer formats, lower deblur levels, fewer localization modes, fewer damage concerns, less preprocessing modes, etc.
-
-2. Take advantage of data reusing or multi-targets in a single process automatically. `LM_LINES`, `LM_STATISTICAL_MARKS`, `LM_STATISTICS_POSTAL_CODE` can reuse the data generated by `LM_CONNECTED_BLOCKS`. All barcodes with varying formats can be found in one localization mode process.
-
-3. Determine the necessity of a time-consuming process with fast detection. For example, Region Detection, Texture Detection, Missing or Complement Detection, Deformation Detection, etc. There are more auto detections added, especially for the steps with fewer modes.
-
-4. Limit time cost explicitly. The following parameters play an important role in limiting time costs.
-
-Table 6 – Parameters to Organize the Results
-
-| **Parameter Name** | **Intent and Functionalities** | **Status** |
-|--------------------|--------------------------------|------------|
-| [`ExpectedBarcodesCount`]({{ site.parameters_reference }}expected-barcodes-count.html) | To quit the flow as soon as possible, given the count of decoded barcodes meets expectation. | Available |
-| [`Timeout`]({{ site.parameters_reference }}time-out.html) | To quit the flow as soon as possible, given the time cost exceeds the limitation. | Available |
-| [`MaxQueueLength`]({{ site.structs }}FrameDecodingParameters.html?src=cpp#maxqueuelength) | To quit the flow as soon as possible, given the frame count in the waiting list exceeds the limitation. | Available |
-| [`TerminatePhase`]({{ site.parameters_reference }}terminate-phase.html) | To quit the flow when DBR finishes a certain stage. | Available |
-
-[`ExpectedBarcodesCount`]({{ site.parameters_reference }}expected-barcodes-count.html) represents how many barcodes are expected to be read or decoded successfully. The default value, 0, means DBR will check whether there are any barcodes at the end of each localization mode. The default value fits both single barcode images and high-quality images, as DBR will try localization modes in turns to find at least one barcode and return all barcodes in the last tried localization mode. If [`ExpectedBarcodesCount`]({{ site.parameters_reference }}expected-barcodes-count.html) is assigned a value greater than 0, DBR will check whenever a barcode is decoded successfully. For example, value 1 means DBR will end the flow once it finds one barcode, which is more efficient than value 0. When its value is greater than the possible barcode count, DBR will apply all localization modes to find as many barcodes as possible.
-
-[`Timeout`]({{ site.parameters_reference }}time-out.html) is an upper limit of time cost. DBR checks at a few points whether the elapsed time for the current image is longer than its value. If so, DBR will end the flow. Timeout prevents one image from costing too much time.
-
-[`MaxQueueLength`]({{ site.structs }}FrameDecodingParameters.html?src=cpp#maxqueuelength) is another way to inform DBR whether the flow of current images should end. This parameter is designed to improve interactive friendliness lest one image blocks the video stream. It can be altered to control the max time cost of one image. If you set `MaxQueueLength` value to 1 and take the image buffer as a video frame, you may decode the image by calling [`AppendFrame`]({{ site.cpp_methods }}video.html#appendframe) and append the next image after some time later. The time interval of the two images is the max time cost for the former. There are higher frequent checkpoints of `MaxQueueLength` than [`Timeout`]({{ site.parameters_reference }}time-out.html).
-
-[`TerminatePhase`]({{ site.parameters_reference }}terminate-phase.html) is for users who only care about the intermediate results instead of the final barcode results. Please refer to the next section about the issues on how to exchange data with other applications.
-
-## Intermediate Result and third-party integration
-
-DBR outputs not only the barcodes and their locations but also lots of data created during the reading procedure, i.e., intermediate results. This data helps analyze the performance of the SDK and provides some debugging tools in development. Certain scenarios call for the use of this intermediate data, so it can be utilized by third-party applications where barcode reading isn't the only goal , i.e. OCR, to reduce the need for more external components as well as the work needed to implement this functionality. DBR also supports receiving such intermediate data from third-party applications to improve the performance.
-
-Table 7 – Intermediate Result Types
-
-| **Name** | **Notes** | **Stage** | **Status** |
-|----------|-----------|-----------|------------|
-| `IRT_ORIGINAL_IMAGE` | The buffer to read barcodes directly. | 1 | Available |
-| `IRT_COLOUR_CLUSTERED_IMAGE` | The buffer after colour clustered, if applicable. | 1 | Work in Progress |
-| `IRT_COLOUR_CONVERTED_GRAYSCALE_IMAGE` | The buffer after colour conversion, if applicable. | 1 | Available |
-| `IRT_TRANSFORMED_GRAYSCALE_IMAGE` | The buffer after further transformation of the above buffer, before region detection, if applicable. | 1 | Available |
-| `IRT_PREDETECTED_QUADRILATERAL` | The quadrilateral returned by some modes of region detection, which is an accurate reference to barcode locations. | 1 | Available |
-| `IRT_PREDETECTED_REGION` | The rectangle returned by some modes of region detection, which is a rough area that may have barcodes. | 1 | Available |
-| `IRT_PREPROCESSED_IMAGE` | The image buffer of a region after a mode of preprocessing, based on the grayscale image in stage 1 and region detection results. | 2 | Available |
-| `IRT_BINARIZED_IMAGE` | The buffer after binarization of the above preprocessed image. | 2 | Available |
-| `IRT_CONTOUR` | Contours produced by some modes of localization. | 2 | Available |
-| `IRT_LINE_SEGMENT` | Line segments produced by `LM_LINES`. | 2 | Available |
-| `IRT_TEXT_ZONE` | Text zones detected by an optional step corresponding to the parameter [`TextFilterModes`]({{ site.parameters_reference }}text-filter-modes.html#textfiltermodes). | 2 | Available |
-| `IRT_FORM` | Forms detected based on contours, line segments, and color contrast. | 2 | Work in Progress |
-| `IRT_SEGMENTATION_BLOCK` | Segmented areas based on contours, line segments, and color contrast. | 2 | Work in Progress |
-| `IRT_TYPED_BARCODE_ZONE` | Areas identified as barcode zones, regardless of successful decoding. | 3 | Available |
-
-All results output with coordinates to show where it is produced in the algorithm flow. The coordinates consist of the modes (specific values) of a series of parameters.
diff --git a/introduction/architecture.md b/introduction/architecture.md
deleted file mode 100644
index d402f194..00000000
--- a/introduction/architecture.md
+++ /dev/null
@@ -1,24 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Introduction - Architecture
-description: This is the architecture page of Dynamsoft Barcode Reader Introduction.
-keywords: architecture, principles
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /introduction/architecture.html
----
-
-# Dynamsoft Barcode Reader Architecture
-
-Starting in version 10.0, Dynamsoft Barcode Reader is restructured under Dynamsoft Capture Vision Framework.
-
-Read [Dynamsoft Capture Vision Architecture]({{ site.dcvb_architecture }}index.html) to learn the overall architecture of the framework.
-
-The following articles describe the processes involved when using Dynamsoft Barcode Reader
-
-- [Input]({{ site.dcvb_architecture }}input.html)
-- [Region Pre-detection]({{ site.dcvb_architecture }}image-processing/region-predetection.html)
-- [Shared Detection]({{ site.dcvb_architecture }}image-processing/shared-detection.html)
-- [Barcode Localization]({{ site.dcvb_architecture }}image-processing/barcode-localization.html)
-- [Barcode Decoding]({{ site.dcvb_architecture }}image-processing/barcode-decoding.html)
-- [Output]({{ site.dcvb_architecture }}output.html)
\ No newline at end of file
diff --git a/introduction/how-to-guide/index-v7.6.0.md b/introduction/how-to-guide/index-v7.6.0.md
deleted file mode 100644
index 3e9c3cce..00000000
--- a/introduction/how-to-guide/index-v7.6.0.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader How-to Guides - Main Page
-description: This is the main page of Dynamsoft Barcode Reader How-to Guides.
-keywords: how-to guides
-needAutoGenerateSidebar: false
-breadcrumbText: How-to Guide
-permalink: /introduction/how-to-guide/index-v7.6.0.html
----
-
-
-# How-to Guide
-
-This section covers the following topics:
-
-- [Check if the barcode image is clear enough for recognition](check-if-the-barcode-image-is-clear-enough-for-recognition.md)
-- [Decode DPM data matrix](decode-dpm-data-matrix.md)
-- [Enable scale up for barcode recognition](enable-scale-up-for-barcode-recognition.md)
-- [Filter out unwanted barcode results](filter-out-unwanted-barcode-results.md)
-- [Generate a custom barcode reading template](generate-a-custom-barcode-reading-template.md)
-- [Get additional barcode information](get-additional-barcode-information.md)
-- [Get detailed barcode information](get-detailed-barcode-information.md)
-- [Get intermediate results](get-intermediate-results.md)
-- [Read barcodes from camera stream](read-barcode-from-camera-stream.md)
-- [Read barcodes with different colors](read-barcodes-with-different-colors.md)
-- [Scan in multiple threads](scan-in-multiple-threads.md)
-- [Set custom area for accompanying texts](set-custom-area-for-accompanying-texts.md)
-- [Set custom area for HSV pre-detection](set-custom-area-for-hsv-pre-detection.md)
-- [Test batch scan performance](test-batch-scan-performance.md)
-- [Turn on or off text filter](turn-on-or-off-text-filter.md)
-
diff --git a/introduction/index-v10.5.2100.md b/introduction/index-v10.5.2100.md
deleted file mode 100644
index 4d73ceb7..00000000
--- a/introduction/index-v10.5.2100.md
+++ /dev/null
@@ -1,72 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Introduction - Overview
-description: This is the overview page of Dynamsoft Barcode Reader Introduction.
-keywords: overview
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /introduction/index.html
----
-
-# Introduction to Dynamsoft Barcode Reader
-
-Dynamsoft Barcode Reader (DBR) enables you to embed barcode reading capabilities with enterprise-class performance in your web, mobile, desktop or server applications using just a few lines of code.
-
-## Supported Barcode Formats
-
-Dynamsoft Barcode Reader supports the following barcode formats:
-
-| 1D/Linear Barcodes | 2D Barcodes | GS1 DataBar | Postal Codes | Other Types |
-|--------------------------|---------------------|-------------------------| --------------------- | ------------------ |
-| Code 39/Code 39 Extended | QR Code | Omnidirectional | USPS Intelligent Mail | GS1 Composite Code |
-| Code 93 | Micro QR Code | Truncated | Postnet | Patch Code |
-| Code 128 | Data Matrix | Stacked | Planet | Pharmacode |
-| Codabar | PDF417 | Stacked Omnidirectional | Australian Post | |
-| Interleaved 2 of 5 | Micro PDF417 | Limited | UK Royal Mail | |
-| EAN-8 | Aztec Code | Expanded | | |
-| EAN-13 | MaxiCode (mode 2-5) | Expanded Stacked | | |
-| UPC-A | DotCode | | | |
-| UPC-E | | | | |
-| Industrial 2 of 5 | | | | |
-| MSI (Modified Plessey) | | | | |
-| Code 11 | | | | |
-
-[Learn more about these barcode formats](https://www.dynamsoft.com/barcode-reader/barcode-types/).
-
-## Supported Platforms
-
-| Platforms | Languages |
-|-----------|---------------------------|
-| Web | JavaScript |
-| iOS | Swift, Objective-C, React Native, Flutter, Xamarin.Forms, Cordova |
-| Android | Java, Kotlin, React Native, Flutter, Xamarin.Forms, Cordova |
-| Windows | C, C++, C\#, Python, Java |
-| Linux | C, C++, Python, Java |
-| macOS | C, C++, Python, Java |
-
-## User Guides
-
-Choose the programming language you use to build your application and learn how to use Dynamsoft Barcode Reader to add barcode reading capabilities:
-
-### Web
-
-* [JavaScript]({{site.js}}user-guide/){:target="_blank"}
-
-### Mobile
-
-* [Java (Android)]({{site.android}}user-guide.html){:target="_blank"}
-* [Objective-C or Swift (iOS)]({{site.oc}}user-guide.html){:target="_blank"}
-* [MAUI]({{site.maui}}user-guide.html){:target="_blank"}
-* React Native
-* Flutter
-* Xamarin.Forms
-* Cordova
-
-
-### Server / Desktop
-
-* [Python]({{site.python}}user-guide.html){:target="_blank"}
-* [Java]({{site.java}}user-guide.html){:target="_blank"}
-* [.NET]({{site.dotnet}}user-guide.html){:target="_blank"}
-* [C++]({{site.cpp}}user-guide.html){:target="_blank"}
-* [C]({{site.c}}user-guide.html){:target="_blank"}
diff --git a/license-activation/index-v9.6.42.md b/license-activation/index-v9.6.42.md
deleted file mode 100644
index 061fed2f..00000000
--- a/license-activation/index-v9.6.42.md
+++ /dev/null
@@ -1,17 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Licensing - Main Page
-description: This is the main page of Dynamsoft Barcode Reader Licensing.
-keywords: license initialization, licensing
-needAutoGenerateSidebar: false
----
-
-# License Initialization
-
-This section covers the following topics:
-
-* [Set a trial key](set-trial-license.md)
-* Set a full license
- * [For DBR version 9.x](set-full-license.md)
- * [For DBR version 8.x](set-full-license-8.md)
- * [For DBR version 7.x](set-full-license-7.md)
\ No newline at end of file
diff --git a/license-activation/set-full-license-v9.6.42.md b/license-activation/set-full-license-v9.6.42.md
deleted file mode 100644
index f69e0546..00000000
--- a/license-activation/set-full-license-v9.6.42.md
+++ /dev/null
@@ -1,292 +0,0 @@
----
-layout: default-layout
-title: How to set full license - Dynamsoft Barcode Reader Licensing
-description: This page shows how to set full license of Dynamsoft Barcode Reader.
-keywords: full license, licensing
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: false
-permalink: /license-activation/set-full-license-v9.6.20.html
----
-
-# How to set full license in version 9.x
-
-You can set the license by following the steps below:
-
-- [How to set full license in version 9.x](#how-to-set-full-license-in-version-9x)
- - [Activate the license](#activate-the-license)
- - [Configure the license by projects (optional)](#configure-the-license-by-projects-optional)
- - [Set the license in the code](#set-the-license-in-the-code)
-
-## Activate the license
-
-Once you purchase a full license from Dynamsoft, you can find your license information in the Customer Portal (License | Full License) .
-
-To activate the license, click "Activate".
-
- ![Activate][1]
-
-On the next page, set an Alias for your license or leave the default Alias, choose where you want the license to be hosted ("Dynamsoft's License Server"
-or "My Self-Hosted License Server") and click the "Activate" button.
-
-![Activate2][2]
-
-> 1. **Alias** is a way to identify the license. You can set a meaningful Alias to a license so that you can easily identify the purpose of the license.
->
-> 2. In most cases, you should choose "Dynamsoft's License Server", choose "My Self-Hosted License Server" only when you have [consulted us](https://www.dynamsoft.com/contact/).
->
-> 3. You might be prompted to add the new license to an existing project or create a new project for this license.
-
-On the following popup window, click the "OK" button.
-
-![Activate3][3]
-
-You will find that the **License Key** is listed on the license details page now.
-
-![Activate5][5]
-
-You can copy the **License Key** and use it in your application.
-
-If you have other new licenses, you can follow the same steps to activate them.
-
-> A license usually expires one year after it is activated. Do not activate the license until you actually need to use it.
-
-## Configure the license by projects (optional)
-
-If you have multiple projects which you want to manage the license usage separately, you can click the project name (found after "Linked Project Name") on the license details page to get to the configuration page. Read how to manage the project for more information.
-
-## Set the license in the code
-
-Replace the trial license with the purchased license key:
-
-
- >- JavaScript
- >- C
- >- C++
- >- C#
- >- Java
- >- Android
- >- Objective-C
- >- Swift
- >- Python
- >
->
-```javascript
-Dynamsoft.DBR.BarcodeScanner.license = "YOUR-LICENSE-KEY";
-let scanner = await Dynamsoft.DBR.BarcodeScanner.createInstance();
-```
->
-```c
-int errorCode = 0;
-char errorBuf[512];
-errorCode = DBR_InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (errorCode != DBR_OK)
-{
- // Add your code for license error processing;
-}
-// ...
-void* dbr = DBR_CreateInstance();
-if(dbr != NULL)
-{
- // Add your code here to call decoding method, process barcode results and so on
- // ...
- // Release the allocated resources for the instance
- DBR_DestroyInstance(dbr);
-}
-```
->
-```cpp
-int errorCode = 0;
-char errorBuf[512];
-errorCode = CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (errorCode != DBR_OK)
-{
- // Add your code for license error processing;
-}
-// ...
-CBarcodeReader* dbr = new CBarcodeReader();
-if(dbr != NULL)
-{
- // Add your code here to call decoding method, process barcode results and so on
- // ...
- // Release the allocated resources for the instance
- delete dbr;
-}
-```
->
-```csharp
-string errorMsg;
-EnumErrorCode errorCode = BarcodeReader.InitLicense("YOUR-LICENSE-KEY", out errorMsg);
-if (errorCode != EnumErrorCode.DBR_SUCCESS)
-{
- // Add your code for license error processing;
-}
-// ...
-BarcodeReader reader = new BarcodeReader();
-if (reader != null)
-{
- // Add your code here to call decoding method, process barcode results and so on
- // ...
- // Release the allocated resources for the instance
- reader.Dispose();
-}
-```
->
-```java
-try {
- BarcodeReader.initLicense("YOUR-LICENSE-KEY");
- // ...
- BarcodeReader reader = new BarcodeReader();
- if(reader != null)
- {
- // Add your code here to call decoding method, process barcode results and so on
- // ...
- // Release the allocated resources for the instance
- reader.destroy();
- }
-} catch (BarcodeReaderException ex) {
- // ...
-}
-```
->
-```java
-BarcodeReader.initLicense("YOUR-LICENSE-KEY", new DBRLicenseVerificationListener() {
- @Override
- public void DBRLicenseVerificationCallback(boolean isSuccessful, Exception e) {
- // Add your code for license verification.
- }
-});
-```
->
-```objc
-[DynamsoftBarcodeReader initLicense:@"YOUR-LICENSE-KEY" verificationDelegate:self];
-- (void)DBRLicenseVerificationCallback:(bool)isSuccess error:(NSError *)error
-{
- // Add your code for license verification.
-}
-```
->
-```swift
-DynamsoftBarcodeReader.initLicense("YOUR-LICENSE-KEY", verificationDelegate: self)
-func dbrLicenseVerificationCallback(_ isSuccess: Bool, error: Error?)
-{
- // Add your code for license verification.
-}
-```
->
-```python
-error = BarcodeReader.init_license("YOUR-LICENSE-KEY")
-if error[0] != EnumErrorCode.DBR_OK:
- # Add your code for license error processing
-# ...
-reader = BarcodeReader()
-if reader != None:
- # Add your code here to call decoding method, process barcode results and so on
- # ...
- # Release the allocated resources for the instance
- del reader
-```
-
-If you are using a **concurrent instance license**:
-
-
- >- C
- >- C++
- >- C#
- >- Java
- >- Python
- >
->
-```c
-int errorCode = 0;
-char errorBuf[512];
-errorCode = DBR_InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (errorCode != DBR_OK)
-{
- // Add your code for license error processing;
-}
-// ...
-void* dbr = DBR_GetInstance();
-if(dbr != NULL)
-{
- // Add your code here to call decoding method, process barcode results and so on
- // ...
- // Release the allocated resources for the instance
- DBR_RecycleInstance(dbr);
-}
-```
->
-```cpp
-int errorCode = 0;
-char errorBuf[512];
-errorCode = CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (errorCode != DBR_OK)
-{
- // Add your code for license error processing;
-}
-// ...
-CBarcodeReader* dbr = CBarcodeReader::GetInstance();
-if(dbr != NULL)
-{
- // Add your code here to call decoding method, process barcode results and so on
- // ...
- // Release the allocated resources for the instance
- dbr->Recycle();
-}
-```
->
-```csharp
-string errorMsg;
-EnumErrorCode errorCode = BarcodeReader.InitLicense("YOUR-LICENSE-KEY", out errorMsg);
-if (errorCode != EnumErrorCode.DBR_SUCCESS)
-{
- // Add your code for license error processing;
-}
-// ...
-BarcodeReader reader = BarcodeReader.GetInstance();
-if (reader != null)
-{
- // Add your code here to call decoding method, process barcode results and so on
- // ...
- // Release the allocated resources for the instance
- reader.Recycle();
-}
-```
->
-```java
-try {
- BarcodeReader.initLicense("YOUR-LICENSE-KEY");
- // ...
- BarcodeReader reader = BarcodeReader.getInstance();
- if(reader != null)
- {
- // Add your code here to call decoding method, process barcode results and so on
- // ...
- // Release the allocated resources for the instance
- reader.recycle();
- }
-} catch (BarcodeReaderException ex) {
- // ...
-}
-```
->
-```python
-error = BarcodeReader.init_license("YOUR-LICENSE-KEY")
-if error[0] != EnumErrorCode.DBR_OK:
- # Add your code for license error processing
-# ...
-reader = BarcodeReader.get_instance()
-if reader != None:
- # Add your code here to call decoding method, process barcode results and so on
- # ...
- # Release the allocated resources for the instance
- reader.recycle()
-```
-
-If you run into any issues, please [contact Dynamsoft Support](https://www.dynamsoft.com/company/customer-service/#contact).
-
-[1]:assets\set-full-license-3\Activate.png
-[2]:assets\set-full-license-3\Activate2.png
-[3]:assets\set-full-license-3\Activate3.png
-[4]:assets\set-full-license-3\Activate4.png
-[5]:assets\set-full-license-3\Activate5.png
diff --git a/license-activation/set-trial-license-v9.6.42.md b/license-activation/set-trial-license-v9.6.42.md
deleted file mode 100644
index 87d5c32f..00000000
--- a/license-activation/set-trial-license-v9.6.42.md
+++ /dev/null
@@ -1,99 +0,0 @@
----
-layout: default-layout
-title: How to set trial license - Dynamsoft Barcode Reader Licensing
-description: This page shows how to set trial license of Dynamsoft Barcode Reader.
-keywords: trial license, licensing
-needAutoGenerateSidebar: false
-needGenerateH3Content: false
----
-
-# How to set trial license
-
-You can request a 30-day trial license via the [Request a Trial License](https://www.dynamsoft.com/customer/license/trialLicense?utm_source=docs&product=dbr){:target="_blank"} link.
-
-> NOTE
->
-> In case the trial license fails to be generated, Dynamsoft Support team will get in touch with you. Or you can [contact us](https://www.dynamsoft.com/contact/).
-
-The following shows how to set the license in the code
-
-
->- JavaScript
->- C
->- C++
->- C#
->- Java
->- Android
->- Objective-C
->- Swift
->- Python
->
->1.
-```javascript
-Dynamsoft.DBR.BarcodeScanner.license = "YOUR-LICENSE-KEY";
-let scanner = await Dynamsoft.DBR.BarcodeScanner.createInstance();
-```
-2.
-```c
- char errorBuf[512];
- DBR_InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
- void* barcodeReader = DBR_CreateInstance();
- // add further process
-```
-3.
-```cpp
- char errorBuf[512];
- dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
- CBarcodeReader* reader = new CBarcodeReader();
- // add further process
-```
-4.
-```csharp
- string errorMsg;
- BarcodeReader.InitLicense("YOUR-LICENSE-KEY", out errorMsg);
- BarcodeReader reader = new BarcodeReader();
- // add further process
-```
-5.
-```java
- BarcodeReader.initLicense("YOUR-LICENSE-KEY");
- BarcodeReader reader = new BarcodeReader();
- // add further process
-```
-6.
-```java
-BarcodeReader.initLicense("YOUR-LICENSE-KEY", new DBRLicenseVerificationListener() {
- @Override
- public void DBRLicenseVerificationCallback(boolean isSuccessful, Exception e) {
- // Add your code for license verification.
- }
-});
-```
-7.
-```objc
-[DynamsoftBarcodeReader initLicense:@"YOUR-LICENSE-KEY" verificationDelegate:self];
-- (void)DBRLicenseVerificationCallback:(bool)isSuccess error:(NSError *)error
-{
- // Add your code for license verification.
-}
-```
-8.
-```swift
-DynamsoftBarcodeReader.initLicense("YOUR-LICENSE-KEY", verificationDelegate: self)
-func dbrLicenseVerificationCallback(_ isSuccess: Bool, error: Error?)
-{
- // Add your code for license verification.
-}
-```
-9.
-```python
-error = BarcodeReader.init_license("YOUR-LICENSE-KEY")
-dbr = BarcodeReader()
-```
-
-If you run into any issues, please [contact Dynamsoft Support](https://www.dynamsoft.com/company/customer-service/#contact).
-
-
-
-
-
\ No newline at end of file
diff --git a/parameters/enum/error-code-v7.6.0.md b/parameters/enum/error-code-v7.6.0.md
deleted file mode 100644
index e8db26ff..00000000
--- a/parameters/enum/error-code-v7.6.0.md
+++ /dev/null
@@ -1,89 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Error Code
-description: This article shows Error Code of Dynamsoft Barcode Reader.
-keywords: error code, enumeration, -10000, -10001, -10002, -10003, -10004, -10005, -10006, -10007, -10008, -10009, -10010, -10011, -10012, -10013, -10014, -10015, -10016, -10017, -10018, -10019, -10020, -10021, -10022, -10023, -10024, -10025, -10026, -10027, -10028, -10029, -10030, -10031, -10032, -10033, -10034, -10035, -10036, -10037, -10038, -10039, -10040, -10041, -10042, -10043, -10044, -10045, -10046, -10047, -10048, -10049, -10050, -10051, -10052, -10053, -10054, -10055, -10056, -10057, -10058, -10059, -10060, -10061, 10000, 10001, 10002, 10003, 10004, 10005, 10006, 10007, 10008, 10009, 10010, 10011, 10012, 10013, 10014, 10015, 10016, 10017, 10018, 10019, 10020, 10021, 10022, 10023, 10024, 10025, 10026, 10027, 10028, 10029, 10030, 10031, 10032, 10033, 10034, 10035, 10036, 10037, 10038, 10039, 10040, 10041, 10042, 10043, 10044, 10045, 10046, 10047, 10048, 10049, 10050, 10051, 10052, 10053, 10054, 10055, 10056, 10057, 10058, 10059, 10060, 10061
-needAutoGenerateSidebar: false
-permalink: /parameters/enum/error-code-v7.6.0.html
----
-
-# Error Code
-
-## Error code common to all programming languages
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBR_OK` | `EnumErrorCode_OK` | 0 | Successful. |
- | `DBRERR_UNKNOWN` | `EnumErrorCode_Unknown ` | -10000 | Unknown error. |
- | `DBRERR_NO_MEMORY` | `EnumErrorCode_No_Memory`| -10001 | Not enough memory to perform the operation. |
- | `DBRERR_NULL_POINTER` | `EnumErrorCode_Null_Pointer` | -10002 | Null pointer. |
- | `DBRERR_LICENSE_INVALID` | `EnumErrorCode_License_Invalid` | -10003 | The license is invalid. |
- | `DBRERR_LICENSE_EXPIRED` | `EnumErrorCode_License_Expired` | -10004 | The license has expired. |
- | `DBRERR_FILE_NOT_FOUND` | `EnumErrorCode_File_Not_Found` | -10005 | The file is not found. |
- | `DBRERR_FILETYPE_NOT_SUPPORTED` | `EnumErrorCode_Filetype_Not_Supported` | -10006 | The file type is not supported. |
- | `DBRERR_BPP_NOT_SUPPORTED` | `EnumErrorCode_BPP_Not_Supported` | -10007 | The BPP (Bits Per Pixel) is not supported. |
- | `DBRERR_INDEX_INVALID` | `EnumErrorCode_Index_Invalid` | -10008 | The index is invalid. |
- | `DBRERR_BARCODE_FORMAT_INVALID` | `EnumErrorCode_Barcode_Format_Invalid` | -10009 | The barcode format is invalid. |
- | `DBRERR_CUSTOM_REGION_INVALID` | `EnumErrorCode_Custom_Region_Invalid` | -10010 | The input region value parameter is invalid. |
- | `DBRERR_MAX_BARCODE_NUMBER_INVALID` | `EnumErrorCode_Max_Barcode_Number_Invalid` | -10011 | The maximum barcode number is invalid. |
- | `DBRERR_IMAGE_READ_FAILED` | `EnumErrorCode_Image_Read_Failed` | -10012 | Failed to read the image. |
- | `DBRERR_TIFF_READ_FAILED` | `EnumErrorCode_TIFF_Read_Failed` | -10013 | Failed to read the TIFF image. |
- | `DBRERR_QR_LICENSE_INVALID` | `EnumErrorCode_QR_License_Invalid` | -10016 | The QR Code license is invalid. |
- | `DBRERR_1D_LICENSE_INVALID` | `EnumErrorCode_1D_License_Invalid` | -10017 | The 1D Barcode license is invalid. |
- | `DBRERR_DIB_BUFFER_INVALID` | `EnumErrorCode_DIB_Buffer_Invalid` | -10018 | The DIB (Device-Independent Bitmaps) buffer is invalid. |
- | `DBRERR_PDF417_LICENSE_INVALID` | `EnumErrorCode_PDF417_License_Invalid` | -10019 | The PDF417 license is invalid. |
- | `DBRERR_DATAMATRIX_LICENSE_INVALID` | `EnumErrorCode_Datamatrix_License_Invalid` | -10020 | The DATAMATRIX license is invalid. |
- | `DBRERR_PDF_READ_FAILED` | `EnumErrorCode_PDF_Read_Failed` | -10021 | Failed to read the PDF file. |
- | `DBRERR_PDF_DLL_MISSING` | `EnumErrorCode_PDF_DLL_Missing` | -10022 | The PDF DLL is missing. |
- | `DBRERR_PAGE_NUMBER_INVALID` | `EnumErrorCode_Page_Number_Invalid` | -10023 | The page number is invalid. |
- | `DBRERR_CUSTOM_SIZE_INVALID` | `EnumErrorCode_Custom_Size_Invalid` | -10024 | The custom size is invalid. |
- | `DBRERR_CUSTOM_MODULESIZE_INVALID` | `EnumErrorCode_Custom_Modulesize_Invalid` | -10025 | The custom module size is invalid. |
- | `DBRERR_RECOGNITION_TIMEOUT` | `EnumErrorCode_Recognition_Timeout` | -10026 | Recognition timeout. |
- | `DBRERR_JSON_PARSE_FAILED` | `EnumErrorCode_Json_Parse_Failed` | -10030 | Failed to parse JSON string. |
- | `DBRERR_JSON_TYPE_INVALID` | `EnumErrorCode_Json_Type_Invalid` | -10031 | The value type is invalid. |
- | `DBRERR_JSON_KEY_INVALID` | `EnumErrorCode_Json_Key_Invalid` | -10032 | The key is invalid. |
- | `DBRERR_JSON_VALUE_INVALID` | `EnumErrorCode_Json_Value_Invalid` | -10033 | The value is invalid or out of range. |
- | `DBRERR_JSON_NAME_KEY_MISSING` | `EnumErrorCode_Json_Name_Key_Missing` | -10034 | The mandatory key "Name" is missing. |
- | `DBRERR_JSON_NAME_VALUE_DUPLICATED` | `EnumErrorCode_Json_Name_Value_Duplicated` | -10035 | The value of the key "Name" is duplicated. |
- | `DBRERR_TEMPLATE_NAME_INVALID` | `EnumErrorCode_Template_Name_Invalid` | -10036 | The template name is invalid. |
- | `DBRERR_JSON_NAME_REFERENCE_INVALID` | `EnumErrorCode_Json_Name_Reference_Invalid` | -10037 | The name reference is invalid. |
- | `DBRERR_PARAMETER_VALUE_INVALID` | `EnumErrorCode_Parameter_Value_Invalid` | -10038 | The parameter value is invalid or out of range. |
- | `DBRERR_DOMAIN_NOT_MATCHED` | `EnumErrorCode_Domain_Not_Matched` | -10039 | The domain of your current site does not match the domain bound in the current product key. |
- | `DBRERR_RESERVEDINFO_NOT_MATCHED` | `EnumErrorCode_ReservedInfo_Not_Matched` | -10040 | The reserved info does not match the reserved info bound in the current product key. |
- | `DBRERR_AZTEC_LICENSE_INVALID` | `EnumErrorCode_AZTEC_License_Invalid` | -10041 | The AZTEC license is invalid. |
- | `DBRERR_LICENSE_DLL_MISSING` | `EnumErrorCode_License_Dll_Missing` | -10042 | The License DLL is missing. |
- | `DBRERR_LICENSEKEY_NOT_MATCHED` | `EnumErrorCode_Licensekey_Not_Matched` | -10043 | The license key does not match the license content. |
- | `DBRERR_REQUESTED_FAILED` | `EnumErrorCode_Requested_Failed` | -10044 | Failed to request the license content. |
- | `DBRERR_LICENSE_INIT_FAILED` | `EnumErrorCode_License_Init_Failed` | -10045 | Failed to init the license. |
- | `DBRERR_PATCHCODE_LICENSE_INVALID` | `EnumErrorCode_Patchcode_License_Invalid` | -10046 | The Patchcode license is invalid. |
- | `DBRERR_POSTALCODE_LICENSE_INVALID` | `EnumErrorCode_Postalcode_License_Invalid` | -10047 | The Postal code license is invalid. |
- | `DBRERR_DPM_LICENSE_INVALID` | `EnumErrorCode_DPM_License_Invalid` | -10048 | The DPM license is invalid. |
- | `DBRERR_FRAME_DECODING_THREAD_EXISTS` | `EnumErrorCode_Frame_Decoding_Thread_Exists` | -10049 | The frame decoding thread already exists. |
- | `DBRERR_STOP_DECODING_THREAD_FAILED` | `EnumErrorCode_Stop_Decoding_Thread_Failed` | -10050 | Failed to stop the frame decoding thread. |
- | `DBRERR_SET_MODE_ARGUMENT_ERROR` | `EnumErrorCode_Set_Mode_Argument_Error` | -10051 | Failed to set mode's argument. |
- | `DBRERR_LICENSE_CONTENT_INVALID` | `EnumErrorCode_License_Content_Invalid` | -10052 | The license content is invalid. |
- | `DBRERR_LICENSE_KEY_INVALID` | `EnumErrorCode_License_Key_Invalid` | -10053 | The license key is invalid. |
- | `DBRERR_LICENSE_DEVICE_RUNS_OUT` | `EnumErrorCode_License_Device_Runs_Out` | -10054 | The device number in the license key runs out. |
- | `DBRERR_GET_MODE_ARGUMENT_ERROR` | `EnumErrorCode_GET_MODE_ARGUMENT_ERROR` | -10055 | Failed to get mode's argument. |
- | `DBRERR_IRT_LICENSE_INVALID` | `EnumErrorCode_IRT_LICENSE_INVALID` | -10056 | The Intermediate Result Types license is invalid. |
- | `DBRERR_MAXICODE_LICENSE_INVALID` | `EnumErrorCode_MAXICODE_LICENSE_INVALID` | -10057 | The Maxicode license is invalid. |
- | `DBRERR_GS1_DATABAR_LICENSE_INVALID` | `EnumErrorCode_GS1_DATABAR_LICENSE_INVALID` | -10058 | The GS1 Databar license is invalid. |
- | `DBRERR_GS1_COMPOSITE_LICENSE_INVALID` | `EnumErrorCode_GS1_COMPOSITE_LICENSE_INVALID` | -10059 | The GS1 Composite code license is invalid. |
- | `DBRERR_PANORAMA_LICENSE_INVALID` | `EnumErrorCode_PANORAMA_LICENSE_INVALID` | -10060 | The panorama license is invalid. |
- | `DBRERR_DOTCODE_LICENSE_INVALID` | `EnumErrorCode_DOTCODE_LICENSE_INVALID` | -10061 | The DotCode license is invalid. |
-
-
-## Error code for specific programming languages
-
-### Java/Android/JavaScript
-
- | Error Code | Value | Description |
- |------------|-------|-------------|
- | `DBR_SYSTEM_EXCEPTION` | 1 | System exception. |
-
-### .Net
-
- | Error Code | Value | Description |
- |------------|-------|-------------|
- | `DBR_SYSTEM_EXCEPTION` | 1 | System exception. |
- | `DBRERR_LOAD_MODULE_DLL_FAILED` | 2 | Failed to load module dll. |
diff --git a/parameters/enum/error-code-v8.0.0.md b/parameters/enum/error-code-v8.0.0.md
deleted file mode 100644
index 78db70ec..00000000
--- a/parameters/enum/error-code-v8.0.0.md
+++ /dev/null
@@ -1,412 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Error Code
-description: This article enumerates the error codes of Dynamsoft Barcode Reader
-keywords: error code, enumeration
-needAutoGenerateSidebar: true
-noTitleIndex: true
-permalink: /parameters/enum/error-code-v8.0.0.html
----
-
-# Dynamsoft Barcode Reader - Error Code
-
-## Error code common to all programming languages
-
-### Error code 0
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBR_OK` | `EnumErrorCode_OK` | 0 | Successful. |
-
-### Error code -10000
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_UNKNOWN` | `EnumErrorCode_Unknown` | -10000 | Unknown error. |
-
-### Error code -10001
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_NO_MEMORY` | `EnumErrorCode_No_Memory`| -10001 | Not enough memory to perform the operation. |
-
-### Error code -10002
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_NULL_POINTER` | `EnumErrorCode_Null_Pointer` | -10002 | Null pointer. |
-
-### Error code -10003
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSE_INVALID` | `EnumErrorCode_License_Invalid` | -10003 | The license is invalid. |
-
-### Error code -10004
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSE_EXPIRED` | `EnumErrorCode_License_Expired` | -10004 | The license has expired. |
-
-### Error code -10005
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_FILE_NOT_FOUND` | `EnumErrorCode_File_Not_Found` | -10005 | The file is not found. |
-
-### Error code -10006
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_FILETYPE_NOT_SUPPORTED` | `EnumErrorCode_Filetype_Not_Supported` | -10006 | The file type is not supported. |
-
-### Error code -10007
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_BPP_NOT_SUPPORTED` | `EnumErrorCode_BPP_Not_Supported` | -10007 | The BPP (Bits Per Pixel) is not supported. |
-
-### Error code -10008
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_INDEX_INVALID` | `EnumErrorCode_Index_Invalid` | -10008 | The index is invalid. |
-
-### Error code -10009
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_BARCODE_FORMAT_INVALID` | `EnumErrorCode_Barcode_Format_Invalid` | -10009 | The barcode format is invalid. |
-
-### Error code -10010
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_CUSTOM_REGION_INVALID` | `EnumErrorCode_Custom_Region_Invalid` | -10010 | The input region value parameter is invalid. |
-
-### Error code -10011
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_MAX_BARCODE_NUMBER_INVALID` | `EnumErrorCode_Max_Barcode_Number_Invalid` | -10011 | The maximum barcode number is invalid. |
-
-### Error code -10012
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_IMAGE_READ_FAILED` | `EnumErrorCode_Image_Read_Failed` | -10012 | Failed to read the image. |
-
-### Error code -10013
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_TIFF_READ_FAILED` | `EnumErrorCode_TIFF_Read_Failed` | -10013 | Failed to read the TIFF image. |
-
-### Error code -10016
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_QR_LICENSE_INVALID` | `EnumErrorCode_QR_License_Invalid` | -10016 | The QR Code license is invalid. |
-
-### Error code -10017
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_1D_LICENSE_INVALID` | `EnumErrorCode_1D_License_Invalid` | -10017 | The 1D Barcode license is invalid. |
-
-### Error code -10018
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_DIB_BUFFER_INVALID` | `EnumErrorCode_DIB_Buffer_Invalid` | -10018 | The DIB (Device-Independent Bitmaps) buffer is invalid. |
-
-### Error code -10019
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PDF417_LICENSE_INVALID` | `EnumErrorCode_PDF417_License_Invalid` | -10019 | The PDF417 license is invalid. |
-
-### Error code -10020
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_DATAMATRIX_LICENSE_INVALID` | `EnumErrorCode_Datamatrix_License_Invalid` | -10020 | The DATAMATRIX license is invalid. |
-
-### Error code -10021
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PDF_READ_FAILED` | `EnumErrorCode_PDF_Read_Failed` | -10021 | Failed to read the PDF file. |
-
-### Error code -10022
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PDF_DLL_MISSING` | `EnumErrorCode_PDF_DLL_Missing` | -10022 | The PDF DLL is missing. |
-
-### Error code -10023
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PAGE_NUMBER_INVALID` | `EnumErrorCode_Page_Number_Invalid` | -10023 | The page number is invalid. |
-
-### Error code -10024
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_CUSTOM_SIZE_INVALID` | `EnumErrorCode_Custom_Size_Invalid` | -10024 | The custom size is invalid. |
-
-### Error code -10025
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_CUSTOM_MODULESIZE_INVALID` | `EnumErrorCode_Custom_Modulesize_Invalid` | -10025 | The custom module size is invalid. |
-
-### Error code -10026
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_RECOGNITION_TIMEOUT` | `EnumErrorCode_Recognition_Timeout` | -10026 | Recognition timeout. |
-
-### Error code -10030
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_JSON_PARSE_FAILED` | `EnumErrorCode_Json_Parse_Failed` | -10030 | Failed to parse JSON string. |
-
-### Error code -10031
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_JSON_TYPE_INVALID` | `EnumErrorCode_Json_Type_Invalid` | -10031 | The value type is invalid. |
-
-### Error code -10032
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_JSON_KEY_INVALID` | `EnumErrorCode_Json_Key_Invalid` | -10032 | The key is invalid. |
-
-### Error code -10033
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_JSON_VALUE_INVALID` | `EnumErrorCode_Json_Value_Invalid` | -10033 | The value is invalid or out of range. |
-
-### Error code -10034
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_JSON_NAME_KEY_MISSING` | `EnumErrorCode_Json_Name_Key_Missing` | -10034 | The mandatory key "Name" is missing. |
-
-### Error code -10035
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_JSON_NAME_VALUE_DUPLICATED` | `EnumErrorCode_Json_Name_Value_Duplicated` | -10035 | The value of the key "Name" is duplicated. |
-
-### Error code -10036
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_TEMPLATE_NAME_INVALID` | `EnumErrorCode_Template_Name_Invalid` | -10036 | The template name is invalid. |
-
-### Error code -10037
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_JSON_NAME_REFERENCE_INVALID` | `EnumErrorCode_Json_Name_Reference_Invalid` | -10037 | The name reference is invalid. |
-
-### Error code -10038
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PARAMETER_VALUE_INVALID` | `EnumErrorCode_Parameter_Value_Invalid` | -10038 | The parameter value is invalid or out of range. |
-
-### Error code -10039
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_DOMAIN_NOT_MATCHED` | `EnumErrorCode_Domain_Not_Matched` | -10039 | The domain of your current site does not match the domain bound in the current product key. |
-
-### Error code -10040
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_RESERVEDINFO_NOT_MATCHED` | `EnumErrorCode_ReservedInfo_Not_Matched` | -10040 | The reserved info does not match the reserved info bound in the current product key. |
-
-### Error code -10041
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_AZTEC_LICENSE_INVALID` | `EnumErrorCode_AZTEC_License_Invalid` | -10041 | The AZTEC license is invalid. |
-
-### Error code -10042
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSE_DLL_MISSING` | `EnumErrorCode_License_Dll_Missing` | -10042 | The License DLL is missing. |
-
-### Error code -10043
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSEKEY_NOT_MATCHED` | `EnumErrorCode_Licensekey_Not_Matched` | -10043 | The license key does not match the license content. |
-
-### Error code -10044
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_REQUESTED_FAILED` | `EnumErrorCode_Requested_Failed` | -10044 | Failed to request the license content. |
-
-### Error code -10045
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSE_INIT_FAILED` | `EnumErrorCode_License_Init_Failed` | -10045 | Failed to init the license. |
-
-### Error code -10046
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PATCHCODE_LICENSE_INVALID` | `EnumErrorCode_Patchcode_License_Invalid` | -10046 | The Patchcode license is invalid. |
-
-### Error code -10047
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_POSTALCODE_LICENSE_INVALID` | `EnumErrorCode_Postalcode_License_Invalid` | -10047 | The Postal code license is invalid. |
-
-### Error code -10048
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_DPM_LICENSE_INVALID` | `EnumErrorCode_DPM_License_Invalid` | -10048 | The DPM license is invalid. |
-
-### Error code -10049
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_FRAME_DECODING_THREAD_EXISTS` | `EnumErrorCode_Frame_Decoding_Thread_Exists` | -10049 | The frame decoding thread already exists. |
-
-### Error code -10050
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_STOP_DECODING_THREAD_FAILED` | `EnumErrorCode_Stop_Decoding_Thread_Failed` | -10050 | Failed to stop the frame decoding thread. |
-
-### Error code -10051
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_SET_MODE_ARGUMENT_ERROR` | `EnumErrorCode_Set_Mode_Argument_Error` | -10051 | Failed to set mode's argument. |
-
-### Error code -10052
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSE_CONTENT_INVALID` | `EnumErrorCode_License_Content_Invalid` | -10052 | The license content is invalid. |
-
-### Error code -10053
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSE_KEY_INVALID` | `EnumErrorCode_License_Key_Invalid` | -10053 | The license key is invalid. |
-
-### Error code -10054
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSE_DEVICE_RUNS_OUT` | `EnumErrorCode_License_Device_Runs_Out` | -10054 | The license key has no remaining quota. |
-
-### Error code -10055
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_GET_MODE_ARGUMENT_ERROR` | `EnumErrorCode_GET_MODE_ARGUMENT_ERROR` | -10055 | Failed to get mode's argument. |
-
-### Error code -10056
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_IRT_LICENSE_INVALID` | `EnumErrorCode_IRT_LICENSE_INVALID` | -10056 | The Intermediate Result Types license is invalid. |
-
-### Error code -10057
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_MAXICODE_LICENSE_INVALID` | `EnumErrorCode_MAXICODE_LICENSE_INVALID` | -10057 | The Maxicode license is invalid. |
-
-### Error code -10058
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_GS1_DATABAR_LICENSE_INVALID` | `EnumErrorCode_GS1_DATABAR_LICENSE_INVALID` | -10058 | The GS1 Databar license is invalid. |
-
-### Error code -10059
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_GS1_COMPOSITE_LICENSE_INVALID` | `EnumErrorCode_GS1_COMPOSITE_LICENSE_INVALID` | -10059 | The GS1 Composite code license is invalid. |
-
-### Error code -10060
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PANORAMA_LICENSE_INVALID` | `EnumErrorCode_PANORAMA_LICENSE_INVALID` | -10060 | The panorama license is invalid. |
-
-### Error code -10061
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_DOTCODE_LICENSE_INVALID` | `EnumErrorCode_DOTCODE_LICENSE_INVALID` | -10061 | The DotCode license is invalid. |
-
-### Error code -20001
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_HANDSHAKE_CODE_INVALID` | `EnumErrorCode_HANDSHAKE_CODE_INVALID` | -20001 | The handshake code is invalid. |
-
-### Error code -20002
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_LICENSE_BUFFER_FAILED` | `EnumErrorCode_LICENSE_BUFFER_FAILED` | -20002 | Failed to read or write license buffer. |
-
-### Error code -20003
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_LICENSE_SYNC_FAILED` | `EnumErrorCode_LICENSE_SYNC_FAILED` | -20003 | Failed to synchronize license info with license tracking server. |
-
-### Error code -20004
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_DEVICE_NOT_MATCH` | `EnumErrorCode_DEVICE_NOT_MATCH` | -20004 | Device does not match with license buffer. |
-
-### Error code -20005
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_BIND_DEVICE_FAILED` | `EnumErrorCode_BIND_DEVICE_FAILED` | -20005 | Failed to bind device. |
-
-### Error code -20006
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_LICENSE_INTERFACE_CONFLICT` | `EnumErrorCode_LICENSE_INTERFACE_CONFLICT` | -20006 | Interface InitLicenseFromLTS can not be used together with other license initiation interfaces. |
-
-## Error code for specific programming languages
-
-### Java/Android/JavaScript
-
- | Error Code | Value | Description |
- |------------|-------|-------------|
- | `DBR_SYSTEM_EXCEPTION` | 1 | System exception. |
-
-### .Net
-
- | Error Code | Value | Description |
- |------------|-------|-------------|
- | `DBR_SYSTEM_EXCEPTION` | 1 | System exception. |
- | `DBRERR_LOAD_MODULE_DLL_FAILED` | 2 | Failed to load module dll. |
diff --git a/parameters/enum/error-code-v8.4.0.md b/parameters/enum/error-code-v8.4.0.md
deleted file mode 100644
index 24ee5136..00000000
--- a/parameters/enum/error-code-v8.4.0.md
+++ /dev/null
@@ -1,448 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Error Code
-description: This article enumerates the error codes of Dynamsoft Barcode Reader
-keywords: error code, enumeration
-needAutoGenerateSidebar: true
-noTitleIndex: true
-permalink: /parameters/enum/error-code-v8.4.0.html
----
-
-# Error Code
-
-## Error code common to all programming languages
-
-### Error code 0
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBR_OK` | `EnumErrorCode_OK` | 0 | Successful. |
-
-### Error code -10000
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_UNKNOWN` | `EnumErrorCode_Unknown` | -10000 | Unknown error. |
-
-### Error code -10001
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_NO_MEMORY` | `EnumErrorCode_No_Memory`| -10001 | Not enough memory to perform the operation. |
-
-### Error code -10002
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_NULL_POINTER` | `EnumErrorCode_Null_Pointer` | -10002 | Null pointer. |
-
-### Error code -10003
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSE_INVALID` | `EnumErrorCode_License_Invalid` | -10003 | The license is invalid. |
-
-### Error code -10004
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSE_EXPIRED` | `EnumErrorCode_License_Expired` | -10004 | The license has expired. |
-
-### Error code -10005
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_FILE_NOT_FOUND` | `EnumErrorCode_File_Not_Found` | -10005 | The file is not found. |
-
-### Error code -10006
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_FILETYPE_NOT_SUPPORTED` | `EnumErrorCode_Filetype_Not_Supported` | -10006 | The file type is not supported. |
-
-### Error code -10007
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_BPP_NOT_SUPPORTED` | `EnumErrorCode_BPP_Not_Supported` | -10007 | The BPP (Bits Per Pixel) is not supported. |
-
-### Error code -10008
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_INDEX_INVALID` | `EnumErrorCode_Index_Invalid` | -10008 | The index is invalid. |
-
-### Error code -10009
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_BARCODE_FORMAT_INVALID` | `EnumErrorCode_Barcode_Format_Invalid` | -10009 | The barcode format is invalid. |
-
-### Error code -10010
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_CUSTOM_REGION_INVALID` | `EnumErrorCode_Custom_Region_Invalid` | -10010 | The input region value parameter is invalid. |
-
-### Error code -10011
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_MAX_BARCODE_NUMBER_INVALID` | `EnumErrorCode_Max_Barcode_Number_Invalid` | -10011 | The maximum barcode number is invalid. |
-
-### Error code -10012
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_IMAGE_READ_FAILED` | `EnumErrorCode_Image_Read_Failed` | -10012 | Failed to read the image. |
-
-### Error code -10013
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_TIFF_READ_FAILED` | `EnumErrorCode_TIFF_Read_Failed` | -10013 | Failed to read the TIFF image. |
-
-### Error code -10016
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_QR_LICENSE_INVALID` | `EnumErrorCode_QR_License_Invalid` | -10016 | The QR Code license is invalid. |
-
-### Error code -10017
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_1D_LICENSE_INVALID` | `EnumErrorCode_1D_License_Invalid` | -10017 | The 1D Barcode license is invalid. |
-
-### Error code -10018
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_DIB_BUFFER_INVALID` | `EnumErrorCode_DIB_Buffer_Invalid` | -10018 | The DIB (Device-Independent Bitmaps) buffer is invalid. |
-
-### Error code -10019
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PDF417_LICENSE_INVALID` | `EnumErrorCode_PDF417_License_Invalid` | -10019 | The PDF417 license is invalid. |
-
-### Error code -10020
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_DATAMATRIX_LICENSE_INVALID` | `EnumErrorCode_Datamatrix_License_Invalid` | -10020 | The DATAMATRIX license is invalid. |
-
-### Error code -10021
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PDF_READ_FAILED` | `EnumErrorCode_PDF_Read_Failed` | -10021 | Failed to read the PDF file. |
-
-### Error code -10022
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PDF_DLL_MISSING` | `EnumErrorCode_PDF_DLL_Missing` | -10022 | The PDF DLL is missing. |
-
-### Error code -10023
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PAGE_NUMBER_INVALID` | `EnumErrorCode_Page_Number_Invalid` | -10023 | The page number is invalid. |
-
-### Error code -10024
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_CUSTOM_SIZE_INVALID` | `EnumErrorCode_Custom_Size_Invalid` | -10024 | The custom size is invalid. |
-
-### Error code -10025
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_CUSTOM_MODULESIZE_INVALID` | `EnumErrorCode_Custom_Modulesize_Invalid` | -10025 | The custom module size is invalid. |
-
-### Error code -10026
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_RECOGNITION_TIMEOUT` | `EnumErrorCode_Recognition_Timeout` | -10026 | Recognition timeout. |
-
-### Error code -10030
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_JSON_PARSE_FAILED` | `EnumErrorCode_Json_Parse_Failed` | -10030 | Failed to parse JSON string. |
-
-### Error code -10031
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_JSON_TYPE_INVALID` | `EnumErrorCode_Json_Type_Invalid` | -10031 | The value type is invalid. |
-
-### Error code -10032
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_JSON_KEY_INVALID` | `EnumErrorCode_Json_Key_Invalid` | -10032 | The key is invalid. |
-
-### Error code -10033
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_JSON_VALUE_INVALID` | `EnumErrorCode_Json_Value_Invalid` | -10033 | The value is invalid or out of range. |
-
-### Error code -10034
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_JSON_NAME_KEY_MISSING` | `EnumErrorCode_Json_Name_Key_Missing` | -10034 | The mandatory key "Name" is missing. |
-
-### Error code -10035
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_JSON_NAME_VALUE_DUPLICATED` | `EnumErrorCode_Json_Name_Value_Duplicated` | -10035 | The value of the key "Name" is duplicated. |
-
-### Error code -10036
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_TEMPLATE_NAME_INVALID` | `EnumErrorCode_Template_Name_Invalid` | -10036 | The template name is invalid. |
-
-### Error code -10037
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_JSON_NAME_REFERENCE_INVALID` | `EnumErrorCode_Json_Name_Reference_Invalid` | -10037 | The name reference is invalid. |
-
-### Error code -10038
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PARAMETER_VALUE_INVALID` | `EnumErrorCode_Parameter_Value_Invalid` | -10038 | The parameter value is invalid or out of range. |
-
-### Error code -10039
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_DOMAIN_NOT_MATCHED` | `EnumErrorCode_Domain_Not_Matched` | -10039 | The domain of your current site does not match the domain bound in the current product key. |
-
-### Error code -10040
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_RESERVEDINFO_NOT_MATCHED` | `EnumErrorCode_ReservedInfo_Not_Matched` | -10040 | The reserved info does not match the reserved info bound in the current product key. |
-
-### Error code -10041
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_AZTEC_LICENSE_INVALID` | `EnumErrorCode_AZTEC_License_Invalid` | -10041 | The AZTEC license is invalid. |
-
-### Error code -10042
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSE_DLL_MISSING` | `EnumErrorCode_License_Dll_Missing` | -10042 | The License DLL is missing. |
-
-### Error code -10043
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSEKEY_NOT_MATCHED` | `EnumErrorCode_Licensekey_Not_Matched` | -10043 | The license key does not match the license content. |
-
-### Error code -10044
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_REQUESTED_FAILED` | `EnumErrorCode_Requested_Failed` | -10044 | Failed to request the license content. |
-
-### Error code -10045
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSE_INIT_FAILED` | `EnumErrorCode_License_Init_Failed` | -10045 | Failed to init the license. |
-
-### Error code -10046
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PATCHCODE_LICENSE_INVALID` | `EnumErrorCode_Patchcode_License_Invalid` | -10046 | The Patchcode license is invalid. |
-
-### Error code -10047
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_POSTALCODE_LICENSE_INVALID` | `EnumErrorCode_Postalcode_License_Invalid` | -10047 | The Postal code license is invalid. |
-
-### Error code -10048
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_DPM_LICENSE_INVALID` | `EnumErrorCode_DPM_License_Invalid` | -10048 | The DPM license is invalid. |
-
-### Error code -10049
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_FRAME_DECODING_THREAD_EXISTS` | `EnumErrorCode_Frame_Decoding_Thread_Exists` | -10049 | The frame decoding thread already exists. |
-
-### Error code -10050
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_STOP_DECODING_THREAD_FAILED` | `EnumErrorCode_Stop_Decoding_Thread_Failed` | -10050 | Failed to stop the frame decoding thread. |
-
-### Error code -10051
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_SET_MODE_ARGUMENT_ERROR` | `EnumErrorCode_Set_Mode_Argument_Error` | -10051 | Failed to set mode's argument. |
-
-### Error code -10052
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSE_CONTENT_INVALID` | `EnumErrorCode_License_Content_Invalid` | -10052 | The license content is invalid. |
-
-### Error code -10053
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSE_KEY_INVALID` | `EnumErrorCode_License_Key_Invalid` | -10053 | The license key is invalid. |
-
-### Error code -10054
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSE_DEVICE_RUNS_OUT` | `EnumErrorCode_License_Device_Runs_Out` | -10054 | The license key has no remaining quota. |
-
-### Error code -10055
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_GET_MODE_ARGUMENT_ERROR` | `EnumErrorCode_GET_MODE_ARGUMENT_ERROR` | -10055 | Failed to get mode's argument. |
-
-### Error code -10056
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_IRT_LICENSE_INVALID` | `EnumErrorCode_IRT_LICENSE_INVALID` | -10056 | The Intermediate Result Types license is invalid. |
-
-### Error code -10057
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_MAXICODE_LICENSE_INVALID` | `EnumErrorCode_MAXICODE_LICENSE_INVALID` | -10057 | The Maxicode license is invalid. |
-
-### Error code -10058
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_GS1_DATABAR_LICENSE_INVALID` | `EnumErrorCode_GS1_DATABAR_LICENSE_INVALID` | -10058 | The GS1 Databar license is invalid. |
-
-### Error code -10059
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_GS1_COMPOSITE_LICENSE_INVALID` | `EnumErrorCode_GS1_COMPOSITE_LICENSE_INVALID` | -10059 | The GS1 Composite code license is invalid. |
-
-### Error code -10060
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PANORAMA_LICENSE_INVALID` | `EnumErrorCode_PANORAMA_LICENSE_INVALID` | -10060 | The panorama license is invalid. |
-
-### Error code -10061
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_DOTCODE_LICENSE_INVALID` | `EnumErrorCode_DOTCODE_LICENSE_INVALID` | -10061 | The DotCode license is invalid. |
-
-### Error code -20000
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_NO_LICENSE` | `EnumErrorCode_DMERR_NO_LICENSE` | -20000 | No license specified. |
-
-### Error code -20001
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_HANDSHAKE_CODE_INVALID` | `EnumErrorCode_HANDSHAKE_CODE_INVALID` | -20001 | The handshake code is invalid. |
-
-### Error code -20002
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_LICENSE_BUFFER_FAILED` | `EnumErrorCode_LICENSE_BUFFER_FAILED` | -20002 | Failed to read or write license buffer. |
-
-### Error code -20003
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_LICENSE_SYNC_FAILED` | `EnumErrorCode_LICENSE_SYNC_FAILED` | -20003 | Failed to synchronize license info with license tracking server. |
-
-### Error code -20004
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_DEVICE_NOT_MATCH` | `EnumErrorCode_DEVICE_NOT_MATCH` | -20004 | Device does not match with license buffer. |
-
-### Error code -20005
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_BIND_DEVICE_FAILED` | `EnumErrorCode_BIND_DEVICE_FAILED` | -20005 | Failed to bind device. |
-
-### Error code -20006
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_LICENSE_INTERFACE_CONFLICT` | `EnumErrorCode_LICENSE_INTERFACE_CONFLICT` | -20006 | Interface InitLicenseFromLTS can not be used together with other license initiation interfaces. |
-
-### Error code -20007
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_LICENSE_CLIENT_DLL_MISSING` | `EnumErrorCode_LICENSE_CLIENT_DLL_MISSING` | -20007 | The license client dll is missing. |
-
-### Error code -20008
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_INSTANCE_COUNT_OVER_LIMIT` | `EnumErrorCode_INSTANCE_COUNT_OVER_LIMIT` | -20008 | The number of instances used has exceeded the limit. |
-
-### Error code -20009
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_LICENSE_INIT_SEQUENCE_FAILED` | `EnumErrorCode_LICENSE_INIT_SEQUENCE_FAILED` | -20009 | Interface InitLicenseFromLTS has to be called before creating any SDK objects. |
-
-### Error code -20010
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_TRIAL_LICENSE` | `EnumErrorCode_DMERR_TRIAL_LICENSE` | -20010 | Using a trial license. |
-
-### More error codes
-
-Error codes between -20199 and -20100 are thrown by the License Tracking Server (LTS). See LTS Error List for details.
-
-
-
-## Error code for specific programming languages
-
-### Java/Android/JavaScript
-
- | Error Code | Value | Description |
- |------------|-------|-------------|
- | `DBR_SYSTEM_EXCEPTION` | 1 | System exception. |
-
-### .Net
-
- | Error Code | Value | Description |
- |------------|-------|-------------|
- | `DBR_SYSTEM_EXCEPTION` | 1 | System exception. |
- | `DBRERR_LOAD_MODULE_DLL_FAILED` | 2 | Failed to load module dll. |
diff --git a/parameters/enum/error-code-v8.9.3.md b/parameters/enum/error-code-v8.9.3.md
deleted file mode 100644
index 9a88a22b..00000000
--- a/parameters/enum/error-code-v8.9.3.md
+++ /dev/null
@@ -1,454 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Error Code
-description: This article enumerates the error codes of Dynamsoft Barcode Reader
-keywords: error code, enumeration
-needAutoGenerateSidebar: true
-noTitleIndex: true
-permalink: /parameters/enum/error-code-v8.9.3.html
----
-
-# Error Code
-
-## Error code common to all programming languages
-
-### Error code 0
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBR_OK` | `EnumErrorCode_OK` | 0 | Successful. |
-
-### Error code -10000
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_UNKNOWN` | `EnumErrorCode_Unknown` | -10000 | Unknown error. |
-
-### Error code -10001
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_NO_MEMORY` | `EnumErrorCode_No_Memory`| -10001 | Not enough memory to perform the operation. |
-
-### Error code -10002
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_NULL_POINTER` | `EnumErrorCode_Null_Pointer` | -10002 | Null pointer. |
-
-### Error code -10003
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSE_INVALID` | `EnumErrorCode_License_Invalid` | -10003 | The license is invalid. |
-
-### Error code -10004
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSE_EXPIRED` | `EnumErrorCode_License_Expired` | -10004 | The license has expired. |
-
-### Error code -10005
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_FILE_NOT_FOUND` | `EnumErrorCode_File_Not_Found` | -10005 | The file is not found. |
-
-### Error code -10006
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_FILETYPE_NOT_SUPPORTED` | `EnumErrorCode_Filetype_Not_Supported` | -10006 | The file type is not supported. |
-
-### Error code -10007
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_BPP_NOT_SUPPORTED` | `EnumErrorCode_BPP_Not_Supported` | -10007 | The BPP (Bits Per Pixel) is not supported. |
-
-### Error code -10008
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_INDEX_INVALID` | `EnumErrorCode_Index_Invalid` | -10008 | The index is invalid. |
-
-### Error code -10009
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_BARCODE_FORMAT_INVALID` | `EnumErrorCode_Barcode_Format_Invalid` | -10009 | The barcode format is invalid. |
-
-### Error code -10010
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_CUSTOM_REGION_INVALID` | `EnumErrorCode_Custom_Region_Invalid` | -10010 | The input region value parameter is invalid. |
-
-### Error code -10011
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_MAX_BARCODE_NUMBER_INVALID` | `EnumErrorCode_Max_Barcode_Number_Invalid` | -10011 | The maximum barcode number is invalid. |
-
-### Error code -10012
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_IMAGE_READ_FAILED` | `EnumErrorCode_Image_Read_Failed` | -10012 | Failed to read the image. |
-
-### Error code -10013
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_TIFF_READ_FAILED` | `EnumErrorCode_TIFF_Read_Failed` | -10013 | Failed to read the TIFF image. |
-
-### Error code -10016
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_QR_LICENSE_INVALID` | `EnumErrorCode_QR_License_Invalid` | -10016 | The QR Code license is invalid. |
-
-### Error code -10017
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_1D_LICENSE_INVALID` | `EnumErrorCode_1D_License_Invalid` | -10017 | The 1D Barcode license is invalid. |
-
-### Error code -10018
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_DIB_BUFFER_INVALID` | `EnumErrorCode_DIB_Buffer_Invalid` | -10018 | The DIB (Device-Independent Bitmaps) buffer is invalid. |
-
-### Error code -10019
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PDF417_LICENSE_INVALID` | `EnumErrorCode_PDF417_License_Invalid` | -10019 | The PDF417 license is invalid. |
-
-### Error code -10020
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_DATAMATRIX_LICENSE_INVALID` | `EnumErrorCode_Datamatrix_License_Invalid` | -10020 | The DATAMATRIX license is invalid. |
-
-### Error code -10021
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PDF_READ_FAILED` | `EnumErrorCode_PDF_Read_Failed` | -10021 | Failed to read the PDF file. |
-
-### Error code -10022
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PDF_DLL_MISSING` | `EnumErrorCode_PDF_DLL_Missing` | -10022 | The PDF DLL is missing. |
-
-### Error code -10023
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PAGE_NUMBER_INVALID` | `EnumErrorCode_Page_Number_Invalid` | -10023 | The page number is invalid. |
-
-### Error code -10024
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_CUSTOM_SIZE_INVALID` | `EnumErrorCode_Custom_Size_Invalid` | -10024 | The custom size is invalid. |
-
-### Error code -10025
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_CUSTOM_MODULESIZE_INVALID` | `EnumErrorCode_Custom_Modulesize_Invalid` | -10025 | The custom module size is invalid. |
-
-### Error code -10026
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_RECOGNITION_TIMEOUT` | `EnumErrorCode_Recognition_Timeout` | -10026 | Recognition timeout. |
-
-### Error code -10030
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_JSON_PARSE_FAILED` | `EnumErrorCode_Json_Parse_Failed` | -10030 | Failed to parse JSON string. |
-
-### Error code -10031
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_JSON_TYPE_INVALID` | `EnumErrorCode_Json_Type_Invalid` | -10031 | The value type is invalid. |
-
-### Error code -10032
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_JSON_KEY_INVALID` | `EnumErrorCode_Json_Key_Invalid` | -10032 | The key is invalid. |
-
-### Error code -10033
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_JSON_VALUE_INVALID` | `EnumErrorCode_Json_Value_Invalid` | -10033 | The value is invalid or out of range. |
-
-### Error code -10034
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_JSON_NAME_KEY_MISSING` | `EnumErrorCode_Json_Name_Key_Missing` | -10034 | The mandatory key "Name" is missing. |
-
-### Error code -10035
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_JSON_NAME_VALUE_DUPLICATED` | `EnumErrorCode_Json_Name_Value_Duplicated` | -10035 | The value of the key "Name" is duplicated. |
-
-### Error code -10036
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_TEMPLATE_NAME_INVALID` | `EnumErrorCode_Template_Name_Invalid` | -10036 | The template name is invalid. |
-
-### Error code -10037
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_JSON_NAME_REFERENCE_INVALID` | `EnumErrorCode_Json_Name_Reference_Invalid` | -10037 | The name reference is invalid. |
-
-### Error code -10038
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PARAMETER_VALUE_INVALID` | `EnumErrorCode_Parameter_Value_Invalid` | -10038 | The parameter value is invalid or out of range. |
-
-### Error code -10039
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_DOMAIN_NOT_MATCHED` | `EnumErrorCode_Domain_Not_Matched` | -10039 | The domain of your current site does not match the domain bound in the current product key. |
-
-### Error code -10040
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_RESERVEDINFO_NOT_MATCHED` | `EnumErrorCode_ReservedInfo_Not_Matched` | -10040 | The reserved info does not match the reserved info bound in the current product key. |
-
-### Error code -10041
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_AZTEC_LICENSE_INVALID` | `EnumErrorCode_AZTEC_License_Invalid` | -10041 | The AZTEC license is invalid. |
-
-### Error code -10042
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSE_DLL_MISSING` | `EnumErrorCode_License_Dll_Missing` | -10042 | The License DLL is missing. |
-
-### Error code -10043
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSEKEY_NOT_MATCHED` | `EnumErrorCode_Licensekey_Not_Matched` | -10043 | The license key does not match the license content. |
-
-### Error code -10044
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_REQUESTED_FAILED` | `EnumErrorCode_Requested_Failed` | -10044 | Failed to request the license content. |
-
-### Error code -10045
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSE_INIT_FAILED` | `EnumErrorCode_License_Init_Failed` | -10045 | Failed to init the license. |
-
-### Error code -10046
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PATCHCODE_LICENSE_INVALID` | `EnumErrorCode_Patchcode_License_Invalid` | -10046 | The Patchcode license is invalid. |
-
-### Error code -10047
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_POSTALCODE_LICENSE_INVALID` | `EnumErrorCode_Postalcode_License_Invalid` | -10047 | The Postal code license is invalid. |
-
-### Error code -10048
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_DPM_LICENSE_INVALID` | `EnumErrorCode_DPM_License_Invalid` | -10048 | The DPM license is invalid. |
-
-### Error code -10049
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_FRAME_DECODING_THREAD_EXISTS` | `EnumErrorCode_Frame_Decoding_Thread_Exists` | -10049 | The frame decoding thread already exists. |
-
-### Error code -10050
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_STOP_DECODING_THREAD_FAILED` | `EnumErrorCode_Stop_Decoding_Thread_Failed` | -10050 | Failed to stop the frame decoding thread. |
-
-### Error code -10051
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_SET_MODE_ARGUMENT_ERROR` | `EnumErrorCode_Set_Mode_Argument_Error` | -10051 | Failed to set mode's argument. |
-
-### Error code -10052
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSE_CONTENT_INVALID` | `EnumErrorCode_License_Content_Invalid` | -10052 | The license content is invalid. |
-
-### Error code -10053
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSE_KEY_INVALID` | `EnumErrorCode_License_Key_Invalid` | -10053 | The license key is invalid. |
-
-### Error code -10054
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSE_DEVICE_RUNS_OUT` | `EnumErrorCode_License_Device_Runs_Out` | -10054 | The license key has no remaining quota. |
-
-### Error code -10055
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_GET_MODE_ARGUMENT_ERROR` | `EnumErrorCode_GET_MODE_ARGUMENT_ERROR` | -10055 | Failed to get mode's argument. |
-
-### Error code -10056
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_IRT_LICENSE_INVALID` | `EnumErrorCode_IRT_LICENSE_INVALID` | -10056 | The Intermediate Result Types license is invalid. |
-
-### Error code -10057
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_MAXICODE_LICENSE_INVALID` | `EnumErrorCode_MAXICODE_LICENSE_INVALID` | -10057 | The Maxicode license is invalid. |
-
-### Error code -10058
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_GS1_DATABAR_LICENSE_INVALID` | `EnumErrorCode_GS1_DATABAR_LICENSE_INVALID` | -10058 | The GS1 Databar license is invalid. |
-
-### Error code -10059
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_GS1_COMPOSITE_LICENSE_INVALID` | `EnumErrorCode_GS1_COMPOSITE_LICENSE_INVALID` | -10059 | The GS1 Composite code license is invalid. |
-
-### Error code -10060
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PANORAMA_LICENSE_INVALID` | `EnumErrorCode_PANORAMA_LICENSE_INVALID` | -10060 | The panorama license is invalid. |
-
-### Error code -10061
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_DOTCODE_LICENSE_INVALID` | `EnumErrorCode_DOTCODE_LICENSE_INVALID` | -10061 | The DotCode license is invalid. |
-
-### Error code -20000
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_NO_LICENSE` | `EnumErrorCode_DMERR_NO_LICENSE` | -20000 | No license specified. |
-
-### Error code -20001
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_HANDSHAKE_CODE_INVALID` | `EnumErrorCode_HANDSHAKE_CODE_INVALID` | -20001 | The handshake code is invalid. |
-
-### Error code -20002
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_LICENSE_BUFFER_FAILED` | `EnumErrorCode_LICENSE_BUFFER_FAILED` | -20002 | Failed to read or write license buffer. |
-
-### Error code -20003
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_LICENSE_SYNC_FAILED` | `EnumErrorCode_LICENSE_SYNC_FAILED` | -20003 | Failed to synchronize license info with License Server. |
-
-### Error code -20004
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_DEVICE_NOT_MATCH` | `EnumErrorCode_DEVICE_NOT_MATCH` | -20004 | Device does not match with license buffer. |
-
-### Error code -20005
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_BIND_DEVICE_FAILED` | `EnumErrorCode_BIND_DEVICE_FAILED` | -20005 | Failed to bind device. |
-
-### Error code -20006
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_LICENSE_INTERFACE_CONFLICT` | `EnumErrorCode_LICENSE_INTERFACE_CONFLICT` | -20006 | Interface InitLicenseFromDLS can not be used together with other license initiation interfaces. |
-
-### Error code -20007
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_LICENSE_CLIENT_DLL_MISSING` | `EnumErrorCode_LICENSE_CLIENT_DLL_MISSING` | -20007 | The license client dll is missing. |
-
-### Error code -20008
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_INSTANCE_COUNT_OVER_LIMIT` | `EnumErrorCode_INSTANCE_COUNT_OVER_LIMIT` | -20008 | The number of instances used has exceeded the limit. |
-
-### Error code -20009
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_LICENSE_INIT_SEQUENCE_FAILED` | `EnumErrorCode_LICENSE_INIT_SEQUENCE_FAILED` | -20009 | Interface InitLicenseFromDLS has to be called before creating any SDK objects. |
-
-### Error code -20010
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_TRIAL_LICENSE` | `EnumErrorCode_DMERR_TRIAL_LICENSE` | -20010 | Using a trial license. |
-
-### Error code -20200
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_FAILED_TO_REACH_DLS` | `EnumErrorCode_FAILED_TO_REACH_DLS` | -20200 | Failed to reach License Server. |
-
-### More error codes
-
-Error codes between -20199 and -20100 are thrown by the License Server. See DLS Error List for details.
-
-
-
-## Error code for specific programming languages
-
-### Java/Android/JavaScript
-
- | Error Code | Value | Description |
- |------------|-------|-------------|
- | `DBR_SYSTEM_EXCEPTION` | 1 | System exception. |
-
-### .Net
-
- | Error Code | Value | Description |
- |------------|-------|-------------|
- | `DBR_SYSTEM_EXCEPTION` | 1 | System exception. |
- | `DBRERR_LOAD_MODULE_DLL_FAILED` | 2 | Failed to load module dll. |
diff --git a/parameters/enum/error-code.md b/parameters/enum/error-code.md
deleted file mode 100644
index aba94eaa..00000000
--- a/parameters/enum/error-code.md
+++ /dev/null
@@ -1,461 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Error Code
-description: This article enumerates the error codes of Dynamsoft Barcode Reader common to all programming laguages.
-keywords: error code, enumeration
-needAutoGenerateSidebar: true
-noTitleIndex: true
-permalink: /parameters/enum/error-code.html
----
-
-# Error Code
-
-## Error code common to all programming languages
-
-### Error code 0
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBR_OK` | `EnumErrorCode_OK` | 0 | Successful. |
-
-### Error code -10000
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_UNKNOWN` | `EnumErrorCode_Unknown` | -10000 | Unknown error. |
-
-### Error code -10001
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_NO_MEMORY` | `EnumErrorCode_No_Memory`| -10001 | Not enough memory to perform the operation. |
-
-### Error code -10002
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_NULL_POINTER` | `EnumErrorCode_Null_Pointer` | -10002 | Null pointer. |
-
-### Error code -10003
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSE_INVALID` | `EnumErrorCode_License_Invalid` | -10003 | The license is invalid. |
-
-### Error code -10004
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSE_EXPIRED` | `EnumErrorCode_License_Expired` | -10004 | The license has expired. |
-
-### Error code -10005
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_FILE_NOT_FOUND` | `EnumErrorCode_File_Not_Found` | -10005 | The file is not found. |
-
-### Error code -10006
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_FILETYPE_NOT_SUPPORTED` | `EnumErrorCode_Filetype_Not_Supported` | -10006 | The file type is not supported. |
-
-### Error code -10007
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_BPP_NOT_SUPPORTED` | `EnumErrorCode_BPP_Not_Supported` | -10007 | The BPP (Bits Per Pixel) is not supported. |
-
-### Error code -10008
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_INDEX_INVALID` | `EnumErrorCode_Index_Invalid` | -10008 | The index is invalid. |
-
-### Error code -10009
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_BARCODE_FORMAT_INVALID` | `EnumErrorCode_Barcode_Format_Invalid` | -10009 | The barcode format is invalid. |
-
-### Error code -10010
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_CUSTOM_REGION_INVALID` | `EnumErrorCode_Custom_Region_Invalid` | -10010 | The input region value parameter is invalid. |
-
-### Error code -10011
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_MAX_BARCODE_NUMBER_INVALID` | `EnumErrorCode_Max_Barcode_Number_Invalid` | -10011 | The maximum barcode number is invalid. |
-
-### Error code -10012
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_IMAGE_READ_FAILED` | `EnumErrorCode_Image_Read_Failed` | -10012 | Failed to read the image. |
-
-### Error code -10013
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_TIFF_READ_FAILED` | `EnumErrorCode_TIFF_Read_Failed` | -10013 | Failed to read the TIFF image. |
-
-### Error code -10016
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_QR_LICENSE_INVALID` | `EnumErrorCode_QR_License_Invalid` | -10016 | The QR Code license is invalid. |
-
-### Error code -10017
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_1D_LICENSE_INVALID` | `EnumErrorCode_1D_License_Invalid` | -10017 | The 1D Barcode license is invalid. |
-
-### Error code -10018
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_DIB_BUFFER_INVALID` | `EnumErrorCode_DIB_Buffer_Invalid` | -10018 | The DIB (Device-Independent Bitmaps) buffer is invalid. |
-
-### Error code -10019
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PDF417_LICENSE_INVALID` | `EnumErrorCode_PDF417_License_Invalid` | -10019 | The PDF417 license is invalid. |
-
-### Error code -10020
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_DATAMATRIX_LICENSE_INVALID` | `EnumErrorCode_Datamatrix_License_Invalid` | -10020 | The DATAMATRIX license is invalid. |
-
-### Error code -10021
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PDF_READ_FAILED` | `EnumErrorCode_PDF_Read_Failed` | -10021 | Failed to read the PDF file. |
-
-### Error code -10022
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PDF_DLL_MISSING` | `EnumErrorCode_PDF_DLL_Missing` | -10022 | The PDF DLL is missing. |
-
-### Error code -10023
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PAGE_NUMBER_INVALID` | `EnumErrorCode_Page_Number_Invalid` | -10023 | The page number is invalid. |
-
-### Error code -10024
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_CUSTOM_SIZE_INVALID` | `EnumErrorCode_Custom_Size_Invalid` | -10024 | The custom size is invalid. |
-
-### Error code -10025
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_CUSTOM_MODULESIZE_INVALID` | `EnumErrorCode_Custom_Modulesize_Invalid` | -10025 | The custom module size is invalid. |
-
-### Error code -10026
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_RECOGNITION_TIMEOUT` | `EnumErrorCode_Recognition_Timeout` | -10026 | Recognition timeout. |
-
-### Error code -10030
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_JSON_PARSE_FAILED` | `EnumErrorCode_Json_Parse_Failed` | -10030 | Failed to parse JSON string. |
-
-### Error code -10031
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_JSON_TYPE_INVALID` | `EnumErrorCode_Json_Type_Invalid` | -10031 | The value type is invalid. |
-
-### Error code -10032
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_JSON_KEY_INVALID` | `EnumErrorCode_Json_Key_Invalid` | -10032 | The key is invalid. |
-
-### Error code -10033
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_JSON_VALUE_INVALID` | `EnumErrorCode_Json_Value_Invalid` | -10033 | The value is invalid or out of range. |
-
-### Error code -10034
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_JSON_NAME_KEY_MISSING` | `EnumErrorCode_Json_Name_Key_Missing` | -10034 | The mandatory key "Name" is missing. |
-
-### Error code -10035
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_JSON_NAME_VALUE_DUPLICATED` | `EnumErrorCode_Json_Name_Value_Duplicated` | -10035 | The value of the key "Name" is duplicated. |
-
-### Error code -10036
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_TEMPLATE_NAME_INVALID` | `EnumErrorCode_Template_Name_Invalid` | -10036 | The template name is invalid. |
-
-### Error code -10037
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_JSON_NAME_REFERENCE_INVALID` | `EnumErrorCode_Json_Name_Reference_Invalid` | -10037 | The name reference is invalid. |
-
-### Error code -10038
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PARAMETER_VALUE_INVALID` | `EnumErrorCode_Parameter_Value_Invalid` | -10038 | The parameter value is invalid or out of range. |
-
-### Error code -10039
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_DOMAIN_NOT_MATCHED` | `EnumErrorCode_Domain_Not_Matched` | -10039 | The domain of your current site does not match the domain bound in the current product key. |
-
-### Error code -10040
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_RESERVEDINFO_NOT_MATCHED` | `EnumErrorCode_ReservedInfo_Not_Matched` | -10040 | The reserved info does not match the reserved info bound in the current product key. |
-
-### Error code -10041
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_AZTEC_LICENSE_INVALID` | `EnumErrorCode_AZTEC_License_Invalid` | -10041 | The AZTEC license is invalid. |
-
-### Error code -10042
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSE_DLL_MISSING` | `EnumErrorCode_License_Dll_Missing` | -10042 | The License DLL is missing. |
-
-### Error code -10043
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSEKEY_NOT_MATCHED` | `EnumErrorCode_Licensekey_Not_Matched` | -10043 | The license key does not match the license content. |
-
-### Error code -10044
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_REQUESTED_FAILED` | `EnumErrorCode_Requested_Failed` | -10044 | Failed to request the license content. |
-
-### Error code -10045
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSE_INIT_FAILED` | `EnumErrorCode_License_Init_Failed` | -10045 | Failed to init the license. |
-
-### Error code -10046
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PATCHCODE_LICENSE_INVALID` | `EnumErrorCode_Patchcode_License_Invalid` | -10046 | The Patchcode license is invalid. |
-
-### Error code -10047
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_POSTALCODE_LICENSE_INVALID` | `EnumErrorCode_Postalcode_License_Invalid` | -10047 | The Postal code license is invalid. |
-
-### Error code -10048
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_DPM_LICENSE_INVALID` | `EnumErrorCode_DPM_License_Invalid` | -10048 | The DPM license is invalid. |
-
-### Error code -10049
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_FRAME_DECODING_THREAD_EXISTS` | `EnumErrorCode_Frame_Decoding_Thread_Exists` | -10049 | The frame decoding thread already exists. |
-
-### Error code -10050
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_STOP_DECODING_THREAD_FAILED` | `EnumErrorCode_Stop_Decoding_Thread_Failed` | -10050 | Failed to stop the frame decoding thread. |
-
-### Error code -10051
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_SET_MODE_ARGUMENT_ERROR` | `EnumErrorCode_Set_Mode_Argument_Error` | -10051 | Failed to set mode's argument. |
-
-### Error code -10052
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSE_CONTENT_INVALID` | `EnumErrorCode_License_Content_Invalid` | -10052 | The license content is invalid. |
-
-### Error code -10053
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSE_KEY_INVALID` | `EnumErrorCode_License_Key_Invalid` | -10053 | The license key is invalid. |
-
-### Error code -10054
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_LICENSE_DEVICE_RUNS_OUT` | `EnumErrorCode_License_Device_Runs_Out` | -10054 | The license key has no remaining quota. |
-
-### Error code -10055
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_GET_MODE_ARGUMENT_ERROR` | `EnumErrorCode_GET_MODE_ARGUMENT_ERROR` | -10055 | Failed to get mode's argument. |
-
-### Error code -10056
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_IRT_LICENSE_INVALID` | `EnumErrorCode_IRT_LICENSE_INVALID` | -10056 | The Intermediate Result Types license is invalid. |
-
-### Error code -10057
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_MAXICODE_LICENSE_INVALID` | `EnumErrorCode_MAXICODE_LICENSE_INVALID` | -10057 | The Maxicode license is invalid. |
-
-### Error code -10058
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_GS1_DATABAR_LICENSE_INVALID` | `EnumErrorCode_GS1_DATABAR_LICENSE_INVALID` | -10058 | The GS1 Databar license is invalid. |
-
-### Error code -10059
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_GS1_COMPOSITE_LICENSE_INVALID` | `EnumErrorCode_GS1_COMPOSITE_LICENSE_INVALID` | -10059 | The GS1 Composite code license is invalid. |
-
-### Error code -10060
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PANORAMA_LICENSE_INVALID` | `EnumErrorCode_PANORAMA_LICENSE_INVALID` | -10060 | The panorama license is invalid. |
-
-### Error code -10061
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_DOTCODE_LICENSE_INVALID` | `EnumErrorCode_DOTCODE_LICENSE_INVALID` | -10061 | The DotCode license is invalid. |
-
-### Error code -10062
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DBRERR_PHARMACODE_LICENSE_INVALID` | `EnumErrorCode_PHARMACODE_LICENSE_INVALID` | -10062 | The Pharmacode license is invalid. |
-
-
-### Error code -20000
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_NO_LICENSE` | `EnumErrorCode_DMERR_NO_LICENSE` | -20000 | No license specified. |
-
-### Error code -20001
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_HANDSHAKE_CODE_INVALID` | `EnumErrorCode_HANDSHAKE_CODE_INVALID` | -20001 | The handshake code is invalid. |
-
-### Error code -20002
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_LICENSE_BUFFER_FAILED` | `EnumErrorCode_LICENSE_BUFFER_FAILED` | -20002 | Failed to read or write license buffer. |
-
-### Error code -20003
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_LICENSE_SYNC_FAILED` | `EnumErrorCode_LICENSE_SYNC_FAILED` | -20003 | Failed to synchronize license info with License Server. |
-
-### Error code -20004
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_DEVICE_NOT_MATCH` | `EnumErrorCode_DEVICE_NOT_MATCH` | -20004 | Device does not match with license buffer. |
-
-### Error code -20005
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_BIND_DEVICE_FAILED` | `EnumErrorCode_BIND_DEVICE_FAILED` | -20005 | Failed to bind device. |
-
-### Error code -20006
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_LICENSE_INTERFACE_CONFLICT` | `EnumErrorCode_LICENSE_INTERFACE_CONFLICT` | -20006 | Interface InitLicenseFromDLS can not be used together with other license initiation interfaces. |
-
-### Error code -20007
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_LICENSE_CLIENT_DLL_MISSING` | `EnumErrorCode_LICENSE_CLIENT_DLL_MISSING` | -20007 | The license client dll is missing. |
-
-### Error code -20008
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_INSTANCE_COUNT_OVER_LIMIT` | `EnumErrorCode_INSTANCE_COUNT_OVER_LIMIT` | -20008 | The number of instances used has exceeded the limit. |
-
-### Error code -20009
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_LICENSE_INIT_SEQUENCE_FAILED` | `EnumErrorCode_LICENSE_INIT_SEQUENCE_FAILED` | -20009 | Interface InitLicenseFromDLS has to be called before creating any SDK objects. |
-
-### Error code -20010
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_TRIAL_LICENSE` | `EnumErrorCode_DMERR_TRIAL_LICENSE` | -20010 | Using a trial license. |
-
-### Error code -20200
-
- | Error Code (except ObjC/Swift) | Error Code (ObjC/Swift) | Value | Description |
- |--------------------------------|-------------------------|-------|-------------|
- | `DMERR_FAILED_TO_REACH_DLS` | `EnumErrorCode_FAILED_TO_REACH_DLS` | -20200 | Failed to reach License Server. |
-
-### More error codes
-
-Error codes between -20199 and -20100 are thrown by the License Server. See DLS Error List for details.
-
-
-
-## Error code for specific programming languages
-
-### Java/Android/JavaScript
-
- | Error Code | Value | Description |
- |------------|-------|-------------|
- | `DBR_SYSTEM_EXCEPTION` | 1 | System exception. |
-
-### .Net
-
- | Error Code | Value | Description |
- |------------|-------|-------------|
- | `DBR_SYSTEM_EXCEPTION` | 1 | System exception. |
- | `DBRERR_LOAD_MODULE_DLL_FAILED` | 2 | Failed to load module dll. |
diff --git a/parameters/enum/format-enums-v7.6.0.md b/parameters/enum/format-enums-v7.6.0.md
deleted file mode 100644
index 46f8c509..00000000
--- a/parameters/enum/format-enums-v7.6.0.md
+++ /dev/null
@@ -1,107 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Format Enumerations
-description: This article shows Format Enumerations of Dynamsoft Barcode Reader.
-keywords: BarcodeFormat, BarcodeFormat_2, format enumeration, enumeration
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-permalink: /parameters/enum/format-enums-v7.6.0.html
----
-
-
-# Format Enumeration
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`BarcodeFormat`](#barcodeformat) | Describes the barcode types in BarcodeFormat group 1. |
- | [`BarcodeFormat_2`](#barcodeformat_2) | Describes the barcode types in BarcodeFormat group 2. |
-
-
-
-
-## BarcodeFormat
-Describes the barcode types in BarcodeFormat group 1. All the formats can be combined, such as BF_CODE_39 | BF_CODE_128. Note: The barcode format our library will search for is composed of [BarcodeFormat group 1](#barcodeformat) and [BarcodeFormat group 2](#barcodeformat_2), so you need to specify the barcode format in group 1 and group 2 individually.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum BarcodeFormat` |
-| .Net | `enum Dynamsoft.Barcode.EnumBarcodeFormat ` |
-| JavaScript | `Dynamsoft.EnumBarcodeFormat` |
-| Python | `class EnumBarcodeFormat(IntEnum)` |
-| Java / Android | `class EnumBarcodeFormat` |
-| ObjC / Swift | `enum EnumBarcodeFormat` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| BF_ALL | EnumBarcodeFormatALL | -32505857 | All supported formats in [BarcodeFormat group 1](#barcodeformat). |
-| BF_ONED | EnumBarcodeFormatONED | 0x000007FF | Combined value of BF_CODABAR, BF_CODE_128, BF_CODE_39, BF_CODE_39_Extended, BF_CODE_93, BF_EAN_13, BF_EAN_8, INDUSTRIAL_25, BF_ITF, BF_UPC_A, BF_UPC_E. |
-| BF_GS1_DATABAR | EnumBarcodeFormatGS1DATABAR | 0x0003F800 | Combined value of BF_GS1_DATABAR_OMNIDIRECTIONAL, BF_GS1_DATABAR_TRUNCATED, BF_GS1_DATABAR_STACKED, BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL, BF_GS1_DATABAR_EXPANDED, BF_GS1_DATABAR_EXPANDED_STACKED, BF_GS1_DATABAR_LIMITED. |
-| BF_NULL | EnumBarcodeFormatNULL | 0x00 | No barcode format in [BarcodeFormat group 1](#barcodeformat). |
-| BF_CODE_39 | EnumBarcodeFormatCODE39 | 0x01 | Code 39 |
-| BF_CODE_128 | EnumBarcodeFormatCODE128 | 0x02 | Code 128 |
-| BF_CODE_93 | EnumBarcodeFormatCODE93 | 0x04 | Code 93 |
-| BF_CODABAR | EnumBarcodeFormatCODABAR | 0x08 | Codabar |
-| BF_ITF | EnumBarcodeFormatITF | 0x10 | ITF |
-| BF_EAN_13 | EnumBarcodeFormatEAN13 | 0x20 | EAN-13 |
-| BF_EAN_8 | EnumBarcodeFormatEAN8 | 0x40 | EAN-8 |
-| BF_UPC_A | EnumBarcodeFormatUPCA | 0x80 | UPC-A |
-| BF_UPC_E | EnumBarcodeFormatUPCE | 0x100 | UPC-E |
-| BF_INDUSTRIAL_25 | EnumBarcodeFormatINDUSTRIAL | 0x200 | Industrial 2 of 5 |
-| BF_CODE_39_EXTENDED | EnumBarcodeFormatCODE39EXTENDED | 0x400 | Code 39 Extended |
-| BF_GS1_DATABAR_OMNIDIRECTIONAL | EnumBarcodeFormatGS1DATABAROMNIDIRECTIONAL | 0x800 | GS1 Databar Omnidirectional |
-| BF_GS1_DATABAR_TRUNCATED | EnumBarcodeFormatGS1DATABARTRUNCATED | 0x1000 | GS1 Databar Truncated |
-| BF_GS1_DATABAR_STACKED | EnumBarcodeFormatGS1DATABARSTACKED | 0x2000 | GS1 Databar Stacked |
-| BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL | EnumBarcodeFormatGS1DATABARSTACKEDOMNIDIRECTIONAL | 0x4000 | GS1 Databar Stacked Omnidirectional |
-| BF_GS1_DATABAR_EXPANDED | EnumBarcodeFormatGS1DATABAREXPANDED | 0x8000 | GS1 Databar Expanded |
-| BF_GS1_DATABAR_EXPANDED_STACKED | EnumBarcodeFormatGS1DATABAREXPANDEDSTACKED | 0x10000 | GS1 Databar Expanded Stacked |
-| BF_GS1_DATABAR_LIMITED | EnumBarcodeFormatGS1DATABARLIMITED | 0x20000 | GS1 Databar Limited |
-| BF_PATCHCODE | EnumBarcodeFormatPATCHCODE | 0x00040000 | Patch code |
-| BF_MICRO_PDF417 | EnumBarcodeFormatMICROPDF417 | 0x00080000 | Micro PDF417 |
-| BF_PDF417 | EnumBarcodeFormatPDF417 | 0x02000000 | PDF417 |
-| BF_QR_CODE | EnumBarcodeFormatQRCODE | 0x04000000 | QRCode |
-| BF_DATAMATRIX | EnumBarcodeFormatDATAMATRIX | 0x08000000 | DataMatrix |
-| BF_AZTEC | EnumBarcodeFormatAZTEC | 0x10000000 | AZTEC |
-| BF_MAXICODE | EnumBarcodeFormatMAXICODE | 0x20000000 | MAXICODE |
-| BF_MICRO_QR | EnumBarcodeFormatMICROQR | 0x40000000 | Micro QR Code |
-| BF_GS1_COMPOSITE | EnumBarcodeFormatGS1COMPOSITE | -2147483648 | GS1 Composite Code |
-
-
-
-
-
-
-## BarcodeFormat_2
-Describes the barcode types in BarcodeFormat group 2. Note: The barcode format our library will search for is composed of [BarcodeFormat group 1](#barcodeformat) and [BarcodeFormat group 2](#barcodeformat_2), so you need to specify the barcode format in group 1 and group 2 individually.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum BarcodeFormat_2` |
-| .Net | `enum Dynamsoft.Barcode.EnumBarcodeFormat_2` |
-| JavaScript | `Dynamsoft.EnumBarcodeFormat_2` |
-| Python | `class EnumBarcodeFormat_2(IntEnum)` |
-| Java / Android | `class EnumBarcodeFormat_2` |
-| ObjC / Swift | `enum EnumBarcodeFormat_2` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| BF2_POSTALCODE | EnumBarcodeFormat2POSTALCODE | 0x01F00000 | Combined value of BF2_USPSINTELLIGENTMAIL, BF2_POSTNET, BF2_PLANET, BF2_AUSTRALIANPOST, BF2_RM4SCC. |
-| BF2_NULL | EnumBarcodeFormat2NULL | 0x00 | No barcode format in [BarcodeFormat group 2](#barcodeformat_2). |
-| BF2_NONSTANDARD_BARCODE | EnumBarcodeFormat2NONSTANDARDBARCODE | 0x01 | Nonstandard barcode |
-| BF2_USPSINTELLIGENTMAIL | EnumBarcodeFormat2USPSINTELLIGENTMAIL | 0x00100000 | USPS Intelligent Mail |
-| BF2_POSTNET | EnumBarcodeFormat2POSTNET | 0x00200000 | Postnet |
-| BF2_PLANET | EnumBarcodeFormat2PLANET | 0x00400000 | Planet |
-| BF2_AUSTRALIANPOST | EnumBarcodeFormat2AUSTRALIANPOST | 0x00800000 | Australian Post |
-| BF2_RM4SCC | EnumBarcodeFormat2RM4SCC | 0x01000000 | Royal Mail 4-State Customer Barcode |
-| BF2_DOTCODE | EnumBarcodeFormat2DOTCODE | 0x02 | DotCode |
-
diff --git a/parameters/enum/format-enums-v8.0.0.md b/parameters/enum/format-enums-v8.0.0.md
deleted file mode 100644
index 76ca19d1..00000000
--- a/parameters/enum/format-enums-v8.0.0.md
+++ /dev/null
@@ -1,109 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Format Enumerations
-description: This article shows Format Enumerations of Dynamsoft Barcode Reader.
-keywords: BarcodeFormat, BarcodeFormat_2, format enumeration, enumeration
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-permalink: /parameters/enum/format-enums-v8.0.0.html
----
-
-
-# Dynamsoft Barcode Reader Enumeration - Format Enumeration
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`BarcodeFormat`](#barcodeformat) | Describes the barcode types in BarcodeFormat group 1. |
- | [`BarcodeFormat_2`](#barcodeformat_2) | Describes the barcode types in BarcodeFormat group 2. |
-
----
-
-
-
-## BarcodeFormat
-Describes the barcode types in BarcodeFormat group 1. All the formats can be combined, such as BF_CODE_39 | BF_CODE_128. Note: The barcode format our library will search for is composed of [BarcodeFormat group 1](#barcodeformat) and [BarcodeFormat group 2](#barcodeformat_2), so you need to specify the barcode format in group 1 and group 2 individually.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum BarcodeFormat` |
-| .Net | `enum Dynamsoft.DBR.EnumBarcodeFormat ` |
-| JavaScript | `Dynamsoft.EnumBarcodeFormat` |
-| Python | `class EnumBarcodeFormat(IntEnum)` |
-| Java / Android | `class EnumBarcodeFormat` |
-| ObjC / Swift | `enum EnumBarcodeFormat` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| BF_ALL | EnumBarcodeFormatALL | -32505857 | All supported formats in [BarcodeFormat group 1](#barcodeformat). |
-| BF_ONED | EnumBarcodeFormatONED | 0x000007FF | Combined value of BF_CODABAR, BF_CODE_128, BF_CODE_39, BF_CODE_39_Extended, BF_CODE_93, BF_EAN_13, BF_EAN_8, INDUSTRIAL_25, BF_ITF, BF_UPC_A, BF_UPC_E. |
-| BF_GS1_DATABAR | EnumBarcodeFormatGS1DATABAR | 0x0003F800 | Combined value of BF_GS1_DATABAR_OMNIDIRECTIONAL, BF_GS1_DATABAR_TRUNCATED, BF_GS1_DATABAR_STACKED, BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL, BF_GS1_DATABAR_EXPANDED, BF_GS1_DATABAR_EXPANDED_STACKED, BF_GS1_DATABAR_LIMITED. |
-| BF_NULL | EnumBarcodeFormatNULL | 0x00 | No barcode format in [BarcodeFormat group 1](#barcodeformat). |
-| BF_CODE_39 | EnumBarcodeFormatCODE39 | 0x01 | Code 39 |
-| BF_CODE_128 | EnumBarcodeFormatCODE128 | 0x02 | Code 128 |
-| BF_CODE_93 | EnumBarcodeFormatCODE93 | 0x04 | Code 93 |
-| BF_CODABAR | EnumBarcodeFormatCODABAR | 0x08 | Codabar |
-| BF_ITF | EnumBarcodeFormatITF | 0x10 | ITF |
-| BF_EAN_13 | EnumBarcodeFormatEAN13 | 0x20 | EAN-13 |
-| BF_EAN_8 | EnumBarcodeFormatEAN8 | 0x40 | EAN-8 |
-| BF_UPC_A | EnumBarcodeFormatUPCA | 0x80 | UPC-A |
-| BF_UPC_E | EnumBarcodeFormatUPCE | 0x100 | UPC-E |
-| BF_INDUSTRIAL_25 | EnumBarcodeFormatINDUSTRIAL | 0x200 | Industrial 2 of 5 |
-| BF_CODE_39_EXTENDED | EnumBarcodeFormatCODE39EXTENDED | 0x400 | Code 39 Extended |
-| BF_GS1_DATABAR_OMNIDIRECTIONAL | EnumBarcodeFormatGS1DATABAROMNIDIRECTIONAL | 0x800 | GS1 Databar Omnidirectional |
-| BF_GS1_DATABAR_TRUNCATED | EnumBarcodeFormatGS1DATABARTRUNCATED | 0x1000 | GS1 Databar Truncated |
-| BF_GS1_DATABAR_STACKED | EnumBarcodeFormatGS1DATABARSTACKED | 0x2000 | GS1 Databar Stacked |
-| BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL | EnumBarcodeFormatGS1DATABARSTACKEDOMNIDIRECTIONAL | 0x4000 | GS1 Databar Stacked Omnidirectional |
-| BF_GS1_DATABAR_EXPANDED | EnumBarcodeFormatGS1DATABAREXPANDED | 0x8000 | GS1 Databar Expanded |
-| BF_GS1_DATABAR_EXPANDED_STACKED | EnumBarcodeFormatGS1DATABAREXPANDEDSTACKED | 0x10000 | GS1 Databar Expanded Stacked |
-| BF_GS1_DATABAR_LIMITED | EnumBarcodeFormatGS1DATABARLIMITED | 0x20000 | GS1 Databar Limited |
-| BF_PATCHCODE | EnumBarcodeFormatPATCHCODE | 0x00040000 | Patch code |
-| BF_MICRO_PDF417 | EnumBarcodeFormatMICROPDF417 | 0x00080000 | Micro PDF417 |
-| BF_PDF417 | EnumBarcodeFormatPDF417 | 0x02000000 | PDF417 |
-| BF_QR_CODE | EnumBarcodeFormatQRCODE | 0x04000000 | QRCode |
-| BF_DATAMATRIX | EnumBarcodeFormatDATAMATRIX | 0x08000000 | DataMatrix |
-| BF_AZTEC | EnumBarcodeFormatAZTEC | 0x10000000 | AZTEC |
-| BF_MAXICODE | EnumBarcodeFormatMAXICODE | 0x20000000 | MAXICODE |
-| BF_MICRO_QR | EnumBarcodeFormatMICROQR | 0x40000000 | Micro QR Code |
-| BF_GS1_COMPOSITE | EnumBarcodeFormatGS1COMPOSITE | -2147483648 | GS1 Composite Code |
-
-
-
-
-
-
-
-## BarcodeFormat_2
-Describes the barcode types in BarcodeFormat group 2. Note: The barcode format our library will search for is composed of [BarcodeFormat group 1](#barcodeformat) and [BarcodeFormat group 2](#barcodeformat_2), so you need to specify the barcode format in group 1 and group 2 individually.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum BarcodeFormat_2` |
-| .Net | `enum Dynamsoft.DBR.EnumBarcodeFormat_2` |
-| JavaScript | `Dynamsoft.EnumBarcodeFormat_2` |
-| Python | `class EnumBarcodeFormat_2(IntEnum)` |
-| Java / Android | `class EnumBarcodeFormat_2` |
-| ObjC / Swift | `enum EnumBarcodeFormat_2` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| BF2_POSTALCODE | EnumBarcodeFormat2POSTALCODE | 0x01F00000 | Combined value of BF2_USPSINTELLIGENTMAIL, BF2_POSTNET, BF2_PLANET, BF2_AUSTRALIANPOST, BF2_RM4SCC. |
-| BF2_NULL | EnumBarcodeFormat2NULL | 0x00 | No barcode format in [BarcodeFormat group 2](#barcodeformat_2). |
-| BF2_NONSTANDARD_BARCODE | EnumBarcodeFormat2NONSTANDARDBARCODE | 0x01 | Nonstandard barcode |
-| BF2_USPSINTELLIGENTMAIL | EnumBarcodeFormat2USPSINTELLIGENTMAIL | 0x00100000 | USPS Intelligent Mail |
-| BF2_POSTNET | EnumBarcodeFormat2POSTNET | 0x00200000 | Postnet |
-| BF2_PLANET | EnumBarcodeFormat2PLANET | 0x00400000 | Planet |
-| BF2_AUSTRALIANPOST | EnumBarcodeFormat2AUSTRALIANPOST | 0x00800000 | Australian Post |
-| BF2_RM4SCC | EnumBarcodeFormat2RM4SCC | 0x01000000 | Royal Mail 4-State Customer Barcode |
-| BF2_DOTCODE | EnumBarcodeFormat2DOTCODE | 0x02 | DotCode |
-
diff --git a/parameters/enum/format-enums-v8.9.3.md b/parameters/enum/format-enums-v8.9.3.md
deleted file mode 100644
index 9f6fa4d2..00000000
--- a/parameters/enum/format-enums-v8.9.3.md
+++ /dev/null
@@ -1,103 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Format Enumerations
-description: This article shows Format Enumerations of Dynamsoft Barcode Reader.
-keywords: BarcodeFormat, BarcodeFormat_2, format enumeration, enumeration
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-permalink: /parameters/enum/format-enums-v8.9.3.html
----
-
-
-# Format Enumeration
-
-The barcode format our library will search for is composed of [BarcodeFormat group 1](#barcodeformat) and [BarcodeFormat group 2](#barcodeformat_2), so you need to specify the barcode format in group 1 and group 2 individually.
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`BarcodeFormat`](#barcodeformat) | Describes the barcode types in BarcodeFormat group 1. |
- | [`BarcodeFormat_2`](#barcodeformat_2) | Describes the barcode types in BarcodeFormat group 2. |
-
-## BarcodeFormat
-
-Describes the barcode types in BarcodeFormat group 1.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum BarcodeFormat` |
-| .Net | `enum Dynamsoft.EnumBarcodeFormat ` |
-| JavaScript | `Dynamsoft.EnumBarcodeFormat` |
-| Python | `class EnumBarcodeFormat(IntEnum)` |
-| Java / Android | `class EnumBarcodeFormat` |
-| ObjC / Swift | `enum EnumBarcodeFormat` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description |
-| -------------------------- | ------------- | -------------- | ----- | ----------- |
-| BF_ALL | EnumBarcodeFormatALL | ALL | 0xFE3FFFFF | All supported formats in [BarcodeFormat group 1](#barcodeformat). |
-| BF_ONED | EnumBarcodeFormatONED | ONED | 0x003007FF | Combined value of BF_CODABAR, BF_CODE_128, BF_CODE_39, BF_CODE_39_Extended, BF_CODE_93, BF_EAN_13, BF_EAN_8, INDUSTRIAL_25, BF_ITF, BF_UPC_A, BF_UPC_E, BF_MSI_CODE, BF_CODE_11. |
-| BF_GS1_DATABAR | EnumBarcodeFormatGS1DATABAR | GS1DATABAR | 0x0003F800 | Combined value of BF_GS1_DATABAR_OMNIDIRECTIONAL, BF_GS1_DATABAR_TRUNCATED, BF_GS1_DATABAR_STACKED, BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL, BF_GS1_DATABAR_EXPANDED, BF_GS1_DATABAR_EXPANDED_STACKED, BF_GS1_DATABAR_LIMITED. |
-| BF_NULL | EnumBarcodeFormatNULL | NULL | 0x00 | No barcode format in [BarcodeFormat group 1](#barcodeformat). |
-| BF_CODE_39 | EnumBarcodeFormatCODE39 | CODE39 | 0x01 | Code 39 |
-| BF_CODE_128 | EnumBarcodeFormatCODE128 | CODE128 | 0x02 | Code 128 |
-| BF_CODE_93 | EnumBarcodeFormatCODE93 | CODE93 | 0x04 | Code 93 |
-| BF_CODABAR | EnumBarcodeFormatCODABAR | CODABAR | 0x08 | Codabar |
-| BF_ITF | EnumBarcodeFormatITF | ITF | 0x10 | ITF |
-| BF_EAN_13 | EnumBarcodeFormatEAN13 | EAN13 | 0x20 | EAN-13 |
-| BF_EAN_8 | EnumBarcodeFormatEAN8 | EAN8 | 0x40 | EAN-8 |
-| BF_UPC_A | EnumBarcodeFormatUPCA | UPCA | 0x80 | UPC-A |
-| BF_UPC_E | EnumBarcodeFormatUPCE | UPCE | 0x100 | UPC-E |
-| BF_INDUSTRIAL_25 | EnumBarcodeFormatINDUSTRIAL | INDUSTRIAL | 0x200 | Industrial 2 of 5 |
-| BF_MSI_CODE | EnumBarcodeFormatMSICODE | MSICODE | 0x100000 | MSI Code |
-| BF_CODE_39_EXTENDED | EnumBarcodeFormatCODE39EXTENDED | CODE39EXTENDED | 0x400 | Code 39 Extended |
-| BF_CODE_11 | EnumBarcodeFormatCODE11 | CODE11 | 0x200000 | Code 11 |
-| BF_GS1_DATABAR_OMNIDIRECTIONAL | EnumBarcodeFormatGS1DATABAROMNIDIRECTIONAL | GS1DATABAROMNIDIRECTIONAL | 0x800 | GS1 Databar Omnidirectional |
-| BF_GS1_DATABAR_TRUNCATED | EnumBarcodeFormatGS1DATABARTRUNCATED | GS1DATABARTRUNCATED | 0x1000 | GS1 Databar Truncated |
-| BF_GS1_DATABAR_STACKED | EnumBarcodeFormatGS1DATABARSTACKED | GS1DATABARSTACKED | 0x2000 | GS1 Databar Stacked |
-| BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL | EnumBarcodeFormatGS1DATABARSTACKEDOMNIDIRECTIONAL | GS1DATABARSTACKEDOMNIDIRECTIONAL | 0x4000 | GS1 Databar Stacked Omnidirectional |
-| BF_GS1_DATABAR_EXPANDED | EnumBarcodeFormatGS1DATABAREXPANDED | GS1DATABAREXPANDED | 0x8000 | GS1 Databar Expanded |
-| BF_GS1_DATABAR_EXPANDED_STACKED | EnumBarcodeFormatGS1DATABAREXPANDEDSTACKED | GS1DATABAREXPANDEDSTACKED | 0x10000 | GS1 Databar Expanded Stacked |
-| BF_GS1_DATABAR_LIMITED | EnumBarcodeFormatGS1DATABARLIMITED | GS1DATABARLIMITED | 0x20000 | GS1 Databar Limited |
-| BF_PATCHCODE | EnumBarcodeFormatPATCHCODE | PATCHCODE | 0x00040000 | Patch code |
-| BF_MICRO_PDF417 | EnumBarcodeFormatMICROPDF417 | MICROPDF417 | 0x00080000 | Micro PDF417 |
-| BF_PDF417 | EnumBarcodeFormatPDF417 | PDF417 | 0x02000000 | PDF417 |
-| BF_QR_CODE | EnumBarcodeFormatQRCODE | QRCODE| 0x04000000 | QRCode |
-| BF_DATAMATRIX | EnumBarcodeFormatDATAMATRIX | DATAMATRIX | 0x08000000 | DataMatrix |
-| BF_AZTEC | EnumBarcodeFormatAZTEC | AZTEC | 0x10000000 | AZTEC |
-| BF_MAXICODE | EnumBarcodeFormatMAXICODE | MAXICODE | 0x20000000 | MAXICODE |
-| BF_MICRO_QR | EnumBarcodeFormatMICROQR | MICROQR | 0x40000000 | Micro QR Code |
-| BF_GS1_COMPOSITE | EnumBarcodeFormatGS1COMPOSITE | GS1COMPOSITE | -2147483648 | GS1 Composite Code |
-
-
-
-## BarcodeFormat_2
-
-Describes the barcode types in BarcodeFormat group 2.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum BarcodeFormat_2` |
-| .Net | `enum Dynamsoft.EnumBarcodeFormat_2` |
-| JavaScript | `Dynamsoft.EnumBarcodeFormat_2` |
-| Python | `class EnumBarcodeFormat_2(IntEnum)` |
-| Java / Android | `class EnumBarcodeFormat_2` |
-| ObjC / Swift | `enum EnumBarcodeFormat_2` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description |
-| -------------------------- | ------------- | -------------- | ----- | ----------- |
-| BF2_POSTALCODE | EnumBarcodeFormat2POSTALCODE | POSTALCODE | 0x01F00000 | Combined value of BF2_USPSINTELLIGENTMAIL, BF2_POSTNET, BF2_PLANET, BF2_AUSTRALIANPOST, BF2_RM4SCC. |
-| BF2_NULL | EnumBarcodeFormat2NULL | NULL | 0x00 | No barcode format in [BarcodeFormat group 2](#barcodeformat_2). |
-| BF2_NONSTANDARD_BARCODE | EnumBarcodeFormat2NONSTANDARDBARCODE | NONSTANDARDBARCODE | 0x01 | Nonstandard barcode |
-| BF2_USPSINTELLIGENTMAIL | EnumBarcodeFormat2USPSINTELLIGENTMAIL | USPSINTELLIGENTMAIL | 0x00100000 | USPS Intelligent Mail |
-| BF2_POSTNET | EnumBarcodeFormat2POSTNET | POSTNET | 0x00200000 | Postnet |
-| BF2_PLANET | EnumBarcodeFormat2PLANET | PLANET | 0x00400000 | Planet |
-| BF2_AUSTRALIANPOST | EnumBarcodeFormat2AUSTRALIANPOST | AUSTRALIANPOST | 0x00800000 | Australian Post |
-| BF2_RM4SCC | EnumBarcodeFormat2RM4SCC | RM4SCC | 0x01000000 | Royal Mail 4-State Customer Barcode |
-| BF2_DOTCODE | EnumBarcodeFormat2DOTCODE | DOTCODE | 0x02 | DotCode |
diff --git a/parameters/enum/format-enums.md b/parameters/enum/format-enums.md
deleted file mode 100644
index dc0ba095..00000000
--- a/parameters/enum/format-enums.md
+++ /dev/null
@@ -1,104 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Format Enumerations
-description: Learn about the Format Enumerations of Dynamsoft Barcode Reader in detail.
-keywords: BarcodeFormat, BarcodeFormat_2, format enumeration, enumeration
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-permalink: /parameters/enum/format-enums.html
----
-
-
-# Format Enumeration
-The barcode format our library will search for is composed of [BarcodeFormat group 1](#barcodeformat) and [BarcodeFormat group 2](#barcodeformat_2), so you need to specify the barcode format in group 1 and group 2 individually.
-
-| Enumeration | Description |
-|-------------|-------------|
-| [`BarcodeFormat`](#barcodeformat) | Describes the barcode types in BarcodeFormat group 1. |
-| [`BarcodeFormat_2`](#barcodeformat_2) | Describes the barcode types in BarcodeFormat group 2. |
-
-## BarcodeFormat
-Describes the barcode types in BarcodeFormat group 1.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum BarcodeFormat` |
-| .Net | `enum Dynamsoft.EnumBarcodeFormat ` |
-| JavaScript | `Dynamsoft.DBR.EnumBarcodeFormat` |
-| Python | `class EnumBarcodeFormat(IntEnum)` |
-| Java / Android | `class EnumBarcodeFormat` |
-| ObjC / Swift | `enum EnumBarcodeFormat` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description |
-| -------------------------- | ------------- | -------------- | ----- | ----------- |
-| BF_ALL | EnumBarcodeFormatALL | ALL | 0xFE3FFFFF | All supported formats in [BarcodeFormat group 1](#barcodeformat). |
-| BF_ONED | EnumBarcodeFormatONED | ONED | 0x003007FF | Combined value of BF_CODABAR, BF_CODE_128, BF_CODE_39, BF_CODE_39_Extended, BF_CODE_93, BF_EAN_13, BF_EAN_8, INDUSTRIAL_25, BF_ITF, BF_UPC_A, BF_UPC_E, BF_MSI_CODE, BF_CODE_11. |
-| BF_GS1_DATABAR | EnumBarcodeFormatGS1DATABAR | GS1DATABAR | 0x0003F800 | Combined value of BF_GS1_DATABAR_OMNIDIRECTIONAL, BF_GS1_DATABAR_TRUNCATED, BF_GS1_DATABAR_STACKED, BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL, BF_GS1_DATABAR_EXPANDED, BF_GS1_DATABAR_EXPANDED_STACKED, BF_GS1_DATABAR_LIMITED. |
-| BF_NULL | EnumBarcodeFormatNULL | NULL | 0x00 | No barcode format in [BarcodeFormat group 1](#barcodeformat). |
-| BF_CODE_39 | EnumBarcodeFormatCODE39 | CODE39 | 0x01 | Code 39 |
-| BF_CODE_128 | EnumBarcodeFormatCODE128 | CODE128 | 0x02 | Code 128 |
-| BF_CODE_93 | EnumBarcodeFormatCODE93 | CODE93 | 0x04 | Code 93 |
-| BF_CODABAR | EnumBarcodeFormatCODABAR | CODABAR | 0x08 | Codabar |
-| BF_ITF | EnumBarcodeFormatITF | ITF | 0x10 | ITF |
-| BF_EAN_13 | EnumBarcodeFormatEAN13 | EAN13 | 0x20 | EAN-13 |
-| BF_EAN_8 | EnumBarcodeFormatEAN8 | EAN8 | 0x40 | EAN-8 |
-| BF_UPC_A | EnumBarcodeFormatUPCA | UPCA | 0x80 | UPC-A |
-| BF_UPC_E | EnumBarcodeFormatUPCE | UPCE | 0x100 | UPC-E |
-| BF_INDUSTRIAL_25 | EnumBarcodeFormatINDUSTRIAL | INDUSTRIAL | 0x200 | Industrial 2 of 5 |
-| BF_MSI_CODE | EnumBarcodeFormatMSICODE | MSICODE | 0x100000 | MSI Code |
-| BF_CODE_39_EXTENDED | EnumBarcodeFormatCODE39EXTENDED | CODE39EXTENDED | 0x400 | Code 39 Extended |
-| BF_CODE_11 | EnumBarcodeFormatCODE11 | CODE11 | 0x200000 | Code 11 |
-| BF_GS1_DATABAR_OMNIDIRECTIONAL | EnumBarcodeFormatGS1DATABAROMNIDIRECTIONAL | GS1DATABAROMNIDIRECTIONAL | 0x800 | GS1 Databar Omnidirectional |
-| BF_GS1_DATABAR_TRUNCATED | EnumBarcodeFormatGS1DATABARTRUNCATED | GS1DATABARTRUNCATED | 0x1000 | GS1 Databar Truncated |
-| BF_GS1_DATABAR_STACKED | EnumBarcodeFormatGS1DATABARSTACKED | GS1DATABARSTACKED | 0x2000 | GS1 Databar Stacked |
-| BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL | EnumBarcodeFormatGS1DATABARSTACKEDOMNIDIRECTIONAL | GS1DATABARSTACKEDOMNIDIRECTIONAL | 0x4000 | GS1 Databar Stacked Omnidirectional |
-| BF_GS1_DATABAR_EXPANDED | EnumBarcodeFormatGS1DATABAREXPANDED | GS1DATABAREXPANDED | 0x8000 | GS1 Databar Expanded |
-| BF_GS1_DATABAR_EXPANDED_STACKED | EnumBarcodeFormatGS1DATABAREXPANDEDSTACKED | GS1DATABAREXPANDEDSTACKED | 0x10000 | GS1 Databar Expanded Stacked |
-| BF_GS1_DATABAR_LIMITED | EnumBarcodeFormatGS1DATABARLIMITED | GS1DATABARLIMITED | 0x20000 | GS1 Databar Limited |
-| BF_PATCHCODE | EnumBarcodeFormatPATCHCODE | PATCHCODE | 0x00040000 | Patch code |
-| BF_MICRO_PDF417 | EnumBarcodeFormatMICROPDF417 | MICROPDF417 | 0x00080000 | Micro PDF417 |
-| BF_PDF417 | EnumBarcodeFormatPDF417 | PDF417 | 0x02000000 | PDF417 |
-| BF_QR_CODE | EnumBarcodeFormatQRCODE | QRCODE | 0x04000000 | QRCode |
-| BF_DATAMATRIX | EnumBarcodeFormatDATAMATRIX | DATAMATRIX | 0x08000000 | DataMatrix |
-| BF_AZTEC | EnumBarcodeFormatAZTEC | AZTEC | 0x10000000 | AZTEC |
-| BF_MAXICODE | EnumBarcodeFormatMAXICODE | MAXICODE | 0x20000000 | MAXICODE |
-| BF_MICRO_QR | EnumBarcodeFormatMICROQR | MICROQR | 0x40000000 | Micro QR Code |
-| BF_GS1_COMPOSITE | EnumBarcodeFormatGS1COMPOSITE | GS1COMPOSITE | -2147483648 | GS1 Composite Code |
-
-
-
-## BarcodeFormat_2
-
-Describes the barcode types in BarcodeFormat group 2.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum BarcodeFormat_2` |
-| .Net | `enum Dynamsoft.EnumBarcodeFormat_2` |
-| JavaScript | `Dynamsoft.DBR.EnumBarcodeFormat_2` |
-| Python | `class EnumBarcodeFormat_2(IntEnum)` |
-| Java / Android | `class EnumBarcodeFormat_2` |
-| ObjC / Swift | `enum EnumBarcodeFormat_2` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description |
-| -------------------------- | ------------- | -------------- | ----- | ----------- |
-| BF2_POSTALCODE | EnumBarcodeFormat2POSTALCODE | POSTALCODE | 0x01F00000 | Combined value of BF2_USPSINTELLIGENTMAIL, BF2_POSTNET, BF2_PLANET, BF2_AUSTRALIANPOST, BF2_RM4SCC. |
-| BF2_PHARMACODE | EnumBarcodeFormat2PHARMACODE | PHARMACODE | 0x0C | Combined value of BF2_PHARMACODE_ONE_TRACK, BF2_PHARMACODE_TWO_TRACK. |
-| BF2_NULL | EnumBarcodeFormat2NULL | NULL | 0x00 | No barcode format in [BarcodeFormat group 2](#barcodeformat_2). |
-| BF2_NONSTANDARD_BARCODE | EnumBarcodeFormat2NONSTANDARDBARCODE | NONSTANDARDBARCODE | 0x01 | Nonstandard barcode |
-| BF2_USPSINTELLIGENTMAIL | EnumBarcodeFormat2USPSINTELLIGENTMAIL | USPSINTELLIGENTMAIL | 0x00100000 | USPS Intelligent Mail |
-| BF2_POSTNET | EnumBarcodeFormat2POSTNET | POSTNET | 0x00200000 | Postnet |
-| BF2_PLANET | EnumBarcodeFormat2PLANET | PLANET | 0x00400000 | Planet |
-| BF2_AUSTRALIANPOST | EnumBarcodeFormat2AUSTRALIANPOST | AUSTRALIANPOST | 0x00800000 | Australian Post |
-| BF2_RM4SCC | EnumBarcodeFormat2RM4SCC | RM4SCC | 0x01000000 | Royal Mail 4-State Customer Barcode |
-| BF2_DOTCODE | EnumBarcodeFormat2DOTCODE | DOTCODE | 0x02 | DotCode |
-| BF2_PHARMACODE_ONE_TRACK | EnumBarcodeFormat2PHARMACODE_ONE_TRACK | PHARMACODE_ONE_TRACK | 0x04 | Pharmacode One-Track |
-| BF2_PHARMACODE_TWO_TRACK | EnumBarcodeFormat2PHARMACODE_TWO_TRACK | PHARMACODE_TWO_TRACK | 0x08 | Pharmacode Two-Track |
diff --git a/parameters/enum/frame-decoding-enums-v7.6.0.md b/parameters/enum/frame-decoding-enums-v7.6.0.md
deleted file mode 100644
index 8c96cd7a..00000000
--- a/parameters/enum/frame-decoding-enums-v7.6.0.md
+++ /dev/null
@@ -1,64 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Frame Decoding Enumerations
-description: This article shows Frame Decoding Enumerations of Dynamsoft Barcode Reader.
-keywords: ClarityCalculationMethod, ClarityFilterMode, frame decoding enumeration, enumeration
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-permalink: /parameters/enum/frame-decoding-enums-v7.6.0.html
----
-
-
-# Frame Decoding Enumeration
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`ClarityCalculationMethod`](#claritycalculationmethod) | Describes the clarity calculation method. |
- | [`ClarityFilterMode`](#clarityfiltermode) | Describes the clarity filter mode. |
-
-
-## ClarityCalculationMethod
-Describes the clarity calculation method.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ClarityCalculationMethod` |
-| .Net | `enum Dynamsoft.Barcode.EnumClarityCalculationMethod` |
-| JavaScript | `Dynamsoft.EnumClarityCalculationMethod` |
-| Python | `class EnumClarityCalculationMethod(IntEnum)` |
-| Java / Android | `class EnumClarityCalculationMethod` |
-| ObjC / Swift | `enum EnumClarityCalculationMethod` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| ECCM_CONTRAST | EnumClarityCalculationMethodContrast | 0x01 | Calculates clarity using the contrast method. |
-
-
-
-
-
-## ClarityFilterMode
-Describes the clarity filter mode
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ClarityFilterMode` |
-| .Net | `enum Dynamsoft.Barcode.EnumClarityFilterMode` |
-| JavaScript | `Dynamsoft.EnumClarityFilterMode` |
-| Python | `class EnumClarityFilterMode(IntEnum)` |
-| Java / Android | `class EnumClarityFilterMode` |
-| ObjC / Swift | `enum EnumClarityFilterMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| CFM_GENERAL | EnumClarityFilterModeGeneral | 0x01 | Filters the frames using the general algorithm based on calculated clarity. |
diff --git a/parameters/enum/frame-decoding-enums.md b/parameters/enum/frame-decoding-enums.md
deleted file mode 100644
index 783a91c6..00000000
--- a/parameters/enum/frame-decoding-enums.md
+++ /dev/null
@@ -1,66 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Frame Decoding Enumerations
-description: Learn about Frame Decoding Enumeration of Dynamsoft Barcode Reader, ClarityCalculationMethod and ClarityFilterMode.
-keywords: ClarityCalculationMethod, ClarityFilterMode, frame decoding enumeration, enumeration
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-permalink: /parameters/enum/frame-decoding-enums.html
----
-
-
-# Frame Decoding Enumeration
-
-> Note:
->
-> - Frame Decoding Enumerations are removed in 9.0 version.
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`ClarityCalculationMethod`](#claritycalculationmethod) | Describes the clarity calculation method. |
- | [`ClarityFilterMode`](#clarityfiltermode) | Describes the clarity filter mode. |
-
----
-
-## ClarityCalculationMethod
-Describes the clarity calculation method.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ClarityCalculationMethod` |
-| .Net | `enum Dynamsoft.DBR.EnumClarityCalculationMethod` |
-| JavaScript | `Dynamsoft.EnumClarityCalculationMethod` |
-| Python | `class EnumClarityCalculationMethod(IntEnum)` |
-| Java / Android | `class EnumClarityCalculationMethod` |
-| ObjC / Swift | `enum EnumClarityCalculationMethod` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| ECCM_CONTRAST | EnumClarityCalculationMethodContrast | 0x01 | Calculates clarity using the contrast method. |
-
-
-
-## ClarityFilterMode
-
-Describes the clarity filter mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ClarityFilterMode` |
-| .Net | `enum Dynamsoft.DBR.EnumClarityFilterMode` |
-| JavaScript | `Dynamsoft.EnumClarityFilterMode` |
-| Python | `class EnumClarityFilterMode(IntEnum)` |
-| Java / Android | `class EnumClarityFilterMode` |
-| ObjC / Swift | `enum EnumClarityFilterMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| CFM_GENERAL | EnumClarityFilterModeGeneral | 0x01 | Filters the frames using the general algorithm based on calculated clarity. |
diff --git a/parameters/enum/index-v7.6.0.md b/parameters/enum/index-v7.6.0.md
deleted file mode 100644
index c92a22ea..00000000
--- a/parameters/enum/index-v7.6.0.md
+++ /dev/null
@@ -1,71 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Main Page
-description: This article shows the main page of Dynamsoft Barcode Reader v7.6.0 Enumerations.
-keywords: enumerations
-needAutoGenerateSidebar: false
-breadcrumbText: Enumerations
-permalink: /parameters/enum/index-v7.6.0.html
----
-
-# Dynamsoft Barcode Reader - Enumerations
-
-## [Format Enumeration](format-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`BarcodeFormat`](format-enums.md#barcodeformat) | Describes the barcode types in BarcodeFormat group 1. |
- | [`BarcodeFormat_2`](format-enums.md#barcodeformat_2) | Describes the barcode types in BarcodeFormat group 2. |
-
-## [Parameter Mode Enumeration](parameter-mode-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`AccompanyingTextRecognitionMode`](parameter-mode-enums.md#accompanyingtextrecognitionmode) | Describes the accompanying text recognition mode. |
- | [`BarcodeColourMode`](parameter-mode-enums.md#barcodecolourmode) | Describes the barcode colour mode. |
- | [`BarcodeComplementMode`](parameter-mode-enums.md#barcodecomplementmode) | Describes the barcode complement mode. |
- | [`BinarizationMode`](parameter-mode-enums.md#binarizationmode) | Describes the binarization mode. |
- | [`ColourClusteringMode`](parameter-mode-enums.md#colourclusteringmode) | Describes the colour clustering mode. |
- | [`ColourConversionMode`](parameter-mode-enums.md#colourconversionmode) | Describes the colour conversion mode. |
- | [`ConflictMode`](parameter-mode-enums.md#conflictmode) | Describes the conflict mode. |
- | [`DeformationResistingMode`](parameter-mode-enums.md#deformationresistingmode) | Describes the deformation resisting mode. |
- | [`DPMCodeReadingMode`](parameter-mode-enums.md#dpmcodereadingmode) | Describes the DPM code reading mode. |
- | [`GrayscaleTransformationMode`](parameter-mode-enums.md#grayscaletransformationmode) | Describes the grayscale transformation mode. |
- | [`ImagePreprocessingMode`](parameter-mode-enums.md#imagepreprocessingmode) | Describes the image preprocessing mode. |
- | [`LocalizationMode`](parameter-mode-enums.md#localizationmode) | Describes the localization mode. |
- | [`PDFReadingMode`](parameter-mode-enums.md#pdfreadingmode) | Describes the PDF reading mode. |
- | [`RegionPredetectionMode`](parameter-mode-enums.md#regionpredetectionmode) | Describes the region predetection mode. |
- | [`ScaleUpMode`](parameter-mode-enums.md#scaleupmode) | Describes the scale up mode. |
- | [`TerminatePhase`](parameter-mode-enums.md#terminatephase) | Describes the terminate phase. |
- | [`TextAssistedCorrectionMode`](parameter-mode-enums.md#textassistedcorrectionmode) | Describes the text assisted correction mode. |
- | [`TextFilterMode`](parameter-mode-enums.md#textfiltermode) | Describes the text filter mode. |
- | [`TextureDetectionMode`](parameter-mode-enums.md#texturedetectionmode) | Describes the texture detection mode. |
-
-## [Result Related Enumeration](result-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`IMResultDataType`](result-enums.md#imresultdatatype) | Describes the intermediate result data type. |
- | [`IntermediateResultSavingMode`](result-enums.md#intermediateresultsavingmode) | Describes the intermediate result saving mode. |
- | [`IntermediateResultType`](result-enums.md#intermediateresulttype) | Describes the intermediate result type. |
- | [`ResultCoordinateType`](result-enums.md#resultcoordinatetype) | Describes the result coordinate type. |
- | [`ResultType`](result-enums.md#resulttype) | Describes the extended result type. |
- | [`TextResultOrderMode`](result-enums.md#textresultordermode) | Describes the text result order mode. |
-
-## [Frame Decoding Enumeration](frame-decoding-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`ClarityCalculationMethod`](frame-decoding-enums.md#claritycalculationmethod) | Describes the clarity calculation method. |
- | [`ClarityFilterMode`](frame-decoding-enums.md#clarityfiltermode) | Describes the clarity filter mode. |
-
-## [Other Enumeration](other-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`ImagePixelFormat`](other-enums.md#imagepixelformat) | Describes the image pixel format. |
- | [`QRCodeErrorCorrectionLevel`](other-enums.md#qrcodeerrorcorrectionlevel) | Describes the QR Code error correction level. |
-
-## [Error Code](error-code.md)
-
-
diff --git a/parameters/enum/index-v8.1.2.md b/parameters/enum/index-v8.1.2.md
deleted file mode 100644
index cb5fb3fc..00000000
--- a/parameters/enum/index-v8.1.2.md
+++ /dev/null
@@ -1,75 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Main Page
-description: This article shows the main page of Dynamsoft Barcode Reader v8.1.2 Enumerations.
-keywords: enumerations
-needAutoGenerateSidebar: false
-breadcrumbText: Enumerations
-permalink: /parameters/enum/index-v8.1.2.html
----
-
-# Dynamsoft Barcode Reader - Enumerations
-
-## [Format Enumeration](format-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`BarcodeFormat`](format-enums.md#barcodeformat) | Describes the barcode types in BarcodeFormat group 1. |
- | [`BarcodeFormat_2`](format-enums.md#barcodeformat_2) | Describes the barcode types in BarcodeFormat group 2. |
-
-## [Parameter Mode Enumeration](parameter-mode-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`BarcodeColourMode`](parameter-mode-enums.md#barcodecolourmode) | Describes the barcode colour mode. |
- | [`BarcodeComplementMode`](parameter-mode-enums.md#barcodecomplementmode) | Describes the barcode complement mode. |
- | [`BinarizationMode`](parameter-mode-enums.md#binarizationmode) | Describes the binarization mode. |
- | [`ColourClusteringMode`](parameter-mode-enums.md#colourclusteringmode) | Describes the colour clustering mode. |
- | [`ColourConversionMode`](parameter-mode-enums.md#colourconversionmode) | Describes the colour conversion mode. |
- | [`ConflictMode`](parameter-mode-enums.md#conflictmode) | Describes the conflict mode. |
- | [`DeblurMode`](parameter-mode-enums.md#deblurmode) | Describes the deblur mode. |
- | [`DeformationResistingMode`](parameter-mode-enums.md#deformationresistingmode) | Describes the deformation resisting mode. |
- | [`DPMCodeReadingMode`](parameter-mode-enums.md#dpmcodereadingmode) | Describes the DPM code reading mode. |
- | [`GrayscaleTransformationMode`](parameter-mode-enums.md#grayscaletransformationmode) | Describes the grayscale transformation mode. |
- | [`ImagePreprocessingMode`](parameter-mode-enums.md#imagepreprocessingmode) | Describes the image preprocessing mode. |
- | [`LocalizationMode`](parameter-mode-enums.md#localizationmode) | Describes the localization mode. |
- | [`PDFReadingMode`](parameter-mode-enums.md#pdfreadingmode) | Describes the PDF reading mode. |
- | [`RegionPredetectionMode`](parameter-mode-enums.md#regionpredetectionmode) | Describes the region predetection mode. |
- | [`ScaleUpMode`](parameter-mode-enums.md#scaleupmode) | Describes the scale up mode. |
- | [`TerminatePhase`](parameter-mode-enums.md#terminatephase) | Describes the terminate phase. |
- | [`TextAssistedCorrectionMode`](parameter-mode-enums.md#textassistedcorrectionmode) | Describes the text assisted correction mode. |
- | [`TextFilterMode`](parameter-mode-enums.md#textfiltermode) | Describes the text filter mode. |
- | [`TextureDetectionMode`](parameter-mode-enums.md#texturedetectionmode) | Describes the texture detection mode. |
-
-## [Result Related Enumeration](result-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`IMResultDataType`](result-enums.md#imresultdatatype) | Describes the intermediate result data type. |
- | [`IntermediateResultSavingMode`](result-enums.md#intermediateresultsavingmode) | Describes the intermediate result saving mode. |
- | [`IntermediateResultType`](result-enums.md#intermediateresulttype) | Describes the intermediate result type. |
- | [`ResultCoordinateType`](result-enums.md#resultcoordinatetype) | Describes the result coordinate type. |
- | [`ResultType`](result-enums.md#resulttype) | Describes the extended result type. |
- | [`TextResultOrderMode`](result-enums.md#textresultordermode) | Describes the text result order mode. |
-
-## [Frame Decoding Enumeration](frame-decoding-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`ClarityCalculationMethod`](frame-decoding-enums.md#claritycalculationmethod) | Describes the clarity calculation method. |
- | [`ClarityFilterMode`](frame-decoding-enums.md#clarityfiltermode) | Describes the clarity filter mode. |
-
-## [Other Enumeration](other-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`DM_ChargeWay`](other-enums.md#dm_chargeway) | Describes the charge way. |
- | [`DM_DeploymentType`](other-enums.md#dm_deploymenttype) | Describes the deployment type. |
- | [`DM_LicenseModule`](other-enums.md#dm_licensemodule) | Describes Dynamsoft license modules. |
- | [`DM_UUIDGenerationMethod`](other-enums.md#dm_uuidgenerationmethod) | Describes the UUID generation method. |
- | [`ImagePixelFormat`](other-enums.md#imagepixelformat) | Describes the image pixel format. |
- | [`QRCodeErrorCorrectionLevel`](other-enums.md#qrcodeerrorcorrectionlevel) | Describes the QR Code error correction level. |
-
-## [Error Code](error-code.md)
-
-
diff --git a/parameters/enum/index-v8.2.5.md b/parameters/enum/index-v8.2.5.md
deleted file mode 100644
index 3fce8eda..00000000
--- a/parameters/enum/index-v8.2.5.md
+++ /dev/null
@@ -1,74 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Main Page
-description: This article shows the main page of Dynamsoft Barcode Reader v8.2.5 Enumerations.
-keywords: enumerations
-needAutoGenerateSidebar: false
-breadcrumbText: Enumerations
-permalink: /parameters/enum/index-v8.2.5.html
----
-
-# Dynamsoft Barcode Reader - Enumerations
-
-## [Format Enumeration](format-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`BarcodeFormat`](format-enums.md#barcodeformat) | Describes the barcode types in BarcodeFormat group 1. |
- | [`BarcodeFormat_2`](format-enums.md#barcodeformat_2) | Describes the barcode types in BarcodeFormat group 2. |
-
-## [Parameter Mode Enumeration](parameter-mode-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`BarcodeColourMode`](parameter-mode-enums.md#barcodecolourmode) | Describes the barcode colour mode. |
- | [`BarcodeComplementMode`](parameter-mode-enums.md#barcodecomplementmode) | Describes the barcode complement mode. |
- | [`BinarizationMode`](parameter-mode-enums.md#binarizationmode) | Describes the binarization mode. |
- | [`ColourClusteringMode`](parameter-mode-enums.md#colourclusteringmode) | Describes the colour clustering mode. |
- | [`ColourConversionMode`](parameter-mode-enums.md#colourconversionmode) | Describes the colour conversion mode. |
- | [`ConflictMode`](parameter-mode-enums.md#conflictmode) | Describes the conflict mode. |
- | [`DeblurMode`](parameter-mode-enums.md#deblurmode) | Describes the deblur mode. |
- | [`DeformationResistingMode`](parameter-mode-enums.md#deformationresistingmode) | Describes the deformation resisting mode. |
- | [`DPMCodeReadingMode`](parameter-mode-enums.md#dpmcodereadingmode) | Describes the DPM code reading mode. |
- | [`GrayscaleTransformationMode`](parameter-mode-enums.md#grayscaletransformationmode) | Describes the grayscale transformation mode. |
- | [`ImagePreprocessingMode`](parameter-mode-enums.md#imagepreprocessingmode) | Describes the image preprocessing mode. |
- | [`LocalizationMode`](parameter-mode-enums.md#localizationmode) | Describes the localization mode. |
- | [`PDFReadingMode`](parameter-mode-enums.md#pdfreadingmode) | Describes the PDF reading mode. |
- | [`RegionPredetectionMode`](parameter-mode-enums.md#regionpredetectionmode) | Describes the region predetection mode. |
- | [`ScaleUpMode`](parameter-mode-enums.md#scaleupmode) | Describes the scale up mode. |
- | [`TerminatePhase`](parameter-mode-enums.md#terminatephase) | Describes the terminate phase. |
- | [`TextFilterMode`](parameter-mode-enums.md#textfiltermode) | Describes the text filter mode. |
- | [`TextureDetectionMode`](parameter-mode-enums.md#texturedetectionmode) | Describes the texture detection mode. |
-
-## [Result Related Enumeration](result-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`IMResultDataType`](result-enums.md#imresultdatatype) | Describes the intermediate result data type. |
- | [`IntermediateResultSavingMode`](result-enums.md#intermediateresultsavingmode) | Describes the intermediate result saving mode. |
- | [`IntermediateResultType`](result-enums.md#intermediateresulttype) | Describes the intermediate result type. |
- | [`ResultCoordinateType`](result-enums.md#resultcoordinatetype) | Describes the result coordinate type. |
- | [`ResultType`](result-enums.md#resulttype) | Describes the extended result type. |
- | [`TextResultOrderMode`](result-enums.md#textresultordermode) | Describes the text result order mode. |
-
-## [Frame Decoding Enumeration](frame-decoding-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`ClarityCalculationMethod`](frame-decoding-enums.md#claritycalculationmethod) | Describes the clarity calculation method. |
- | [`ClarityFilterMode`](frame-decoding-enums.md#clarityfiltermode) | Describes the clarity filter mode. |
-
-## [Other Enumeration](other-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`DM_ChargeWay`](other-enums.md#dm_chargeway) | Describes the charge way. |
- | [`DM_DeploymentType`](other-enums.md#dm_deploymenttype) | Describes the deployment type. |
- | [`DM_LicenseModule`](other-enums.md#dm_licensemodule) | Describes Dynamsoft license modules. |
- | [`DM_UUIDGenerationMethod`](other-enums.md#dm_uuidgenerationmethod) | Describes the UUID generation method. |
- | [`ImagePixelFormat`](other-enums.md#imagepixelformat) | Describes the image pixel format. |
- | [`QRCodeErrorCorrectionLevel`](other-enums.md#qrcodeerrorcorrectionlevel) | Describes the QR Code error correction level. |
-
-## [Error Code](error-code.md)
-
-
diff --git a/parameters/enum/index-v8.8.7.md b/parameters/enum/index-v8.8.7.md
deleted file mode 100644
index 36ec3724..00000000
--- a/parameters/enum/index-v8.8.7.md
+++ /dev/null
@@ -1,73 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Main Page
-description: This article shows the main page of Dynamsoft Barcode Reader v8.8.7 Enumerations.
-keywords: enumerations
-needAutoGenerateSidebar: false
-breadcrumbText: Enumerations
-permalink: /parameters/enum/index-v8.8.7.html
----
-
-# Dynamsoft Barcode Reader - Enumerations
-
-## [Format Enumeration](format-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`BarcodeFormat`](format-enums.md#barcodeformat) | Describes the barcode types in BarcodeFormat group 1. |
- | [`BarcodeFormat_2`](format-enums.md#barcodeformat_2) | Describes the barcode types in BarcodeFormat group 2. |
-
-## [Parameter Mode Enumeration](parameter-mode-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`BarcodeColourMode`](parameter-mode-enums.md#barcodecolourmode) | Describes the barcode colour mode. |
- | [`BarcodeComplementMode`](parameter-mode-enums.md#barcodecomplementmode) | Describes the barcode complement mode. |
- | [`BinarizationMode`](parameter-mode-enums.md#binarizationmode) | Describes the binarization mode. |
- | [`ColourClusteringMode`](parameter-mode-enums.md#colourclusteringmode) | Describes the colour clustering mode. |
- | [`ColourConversionMode`](parameter-mode-enums.md#colourconversionmode) | Describes the colour conversion mode. |
- | [`ConflictMode`](parameter-mode-enums.md#conflictmode) | Describes the conflict mode. |
- | [`DeblurMode`](parameter-mode-enums.md#deblurmode) | Describes the deblur mode. |
- | [`DeformationResistingMode`](parameter-mode-enums.md#deformationresistingmode) | Describes the deformation resisting mode. |
- | [`DPMCodeReadingMode`](parameter-mode-enums.md#dpmcodereadingmode) | Describes the DPM code reading mode. |
- | [`GrayscaleTransformationMode`](parameter-mode-enums.md#grayscaletransformationmode) | Describes the grayscale transformation mode. |
- | [`ImagePreprocessingMode`](parameter-mode-enums.md#imagepreprocessingmode) | Describes the image preprocessing mode. |
- | [`LocalizationMode`](parameter-mode-enums.md#localizationmode) | Describes the localization mode. |
- | [`PDFReadingMode`](parameter-mode-enums.md#pdfreadingmode) | Describes the PDF reading mode. |
- | [`RegionPredetectionMode`](parameter-mode-enums.md#regionpredetectionmode) | Describes the region predetection mode. |
- | [`ScaleUpMode`](parameter-mode-enums.md#scaleupmode) | Describes the scale up mode. |
- | [`TerminatePhase`](parameter-mode-enums.md#terminatephase) | Describes the terminate phase. |
- | [`TextFilterMode`](parameter-mode-enums.md#textfiltermode) | Describes the text filter mode. |
- | [`TextureDetectionMode`](parameter-mode-enums.md#texturedetectionmode) | Describes the texture detection mode. |
-
-## [Result Related Enumeration](result-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`IMResultDataType`](result-enums.md#imresultdatatype) | Describes the intermediate result data type. |
- | [`IntermediateResultSavingMode`](result-enums.md#intermediateresultsavingmode) | Describes the intermediate result saving mode. |
- | [`IntermediateResultType`](result-enums.md#intermediateresulttype) | Describes the intermediate result type. |
- | [`ResultCoordinateType`](result-enums.md#resultcoordinatetype) | Describes the result coordinate type. |
- | [`ResultType`](result-enums.md#resulttype) | Describes the extended result type. |
- | [`TextResultOrderMode`](result-enums.md#textresultordermode) | Describes the text result order mode. |
-
-## [Frame Decoding Enumeration](frame-decoding-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`ClarityCalculationMethod`](frame-decoding-enums.md#claritycalculationmethod) | Describes the clarity calculation method. |
- | [`ClarityFilterMode`](frame-decoding-enums.md#clarityfiltermode) | Describes the clarity filter mode. |
-
-## [Other Enumeration](other-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`DM_ChargeWay`](other-enums.md#dm_chargeway) | Describes the charge way. |
- | [`DM_DeploymentType`](other-enums.md#dm_deploymenttype) | Describes the deployment type. |
- | [`DM_LicenseModule`](other-enums.md#dm_licensemodule) | Describes Dynamsoft license modules. |
- | [`DM_UUIDGenerationMethod`](other-enums.md#dm_uuidgenerationmethod) | Describes the UUID generation method. |
- | [`ImagePixelFormat`](other-enums.md#imagepixelformat) | Describes the image pixel format. |
- | [`QRCodeErrorCorrectionLevel`](other-enums.md#qrcodeerrorcorrectionlevel) | Describes the QR Code error correction level. |
- | [`Product`](other-enums.md#product) | Describes Dynamsoft products. |
-
-## [Error Code](error-code.md)
diff --git a/parameters/enum/index-v8.9.3.md b/parameters/enum/index-v8.9.3.md
deleted file mode 100644
index 56b012db..00000000
--- a/parameters/enum/index-v8.9.3.md
+++ /dev/null
@@ -1,74 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Main Page
-description: This article shows the main page of Dynamsoft Barcode Reader v8.9.3 Enumerations.
-keywords: enumerations
-needAutoGenerateSidebar: false
-breadcrumbText: Enumerations
-permalink: /parameters/enum/index-v8.9.3.html
----
-
-# Dynamsoft Barcode Reader - Enumerations
-
-## [Format Enumeration](format-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`BarcodeFormat`](format-enums.md#barcodeformat) | Describes the barcode types in BarcodeFormat group 1. |
- | [`BarcodeFormat_2`](format-enums.md#barcodeformat_2) | Describes the barcode types in BarcodeFormat group 2. |
-
-## [Parameter Mode Enumeration](parameter-mode-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`BarcodeColourMode`](parameter-mode-enums.md#barcodecolourmode) | Describes the barcode colour mode. |
- | [`BarcodeComplementMode`](parameter-mode-enums.md#barcodecomplementmode) | Describes the barcode complement mode. |
- | [`BinarizationMode`](parameter-mode-enums.md#binarizationmode) | Describes the binarization mode. |
- | [`ColourClusteringMode`](parameter-mode-enums.md#colourclusteringmode) | Describes the colour clustering mode. |
- | [`ColourConversionMode`](parameter-mode-enums.md#colourconversionmode) | Describes the colour conversion mode. |
- | [`ConflictMode`](parameter-mode-enums.md#conflictmode) | Describes the conflict mode. |
- | [`DeblurMode`](parameter-mode-enums.md#deblurmode) | Describes the deblur mode. |
- | [`DeformationResistingMode`](parameter-mode-enums.md#deformationresistingmode) | Describes the deformation resisting mode. |
- | [`DPMCodeReadingMode`](parameter-mode-enums.md#dpmcodereadingmode) | Describes the DPM code reading mode. |
- | [`GrayscaleTransformationMode`](parameter-mode-enums.md#grayscaletransformationmode) | Describes the grayscale transformation mode. |
- | [`ImagePreprocessingMode`](parameter-mode-enums.md#imagepreprocessingmode) | Describes the image preprocessing mode. |
- | [`LocalizationMode`](parameter-mode-enums.md#localizationmode) | Describes the localization mode. |
- | [`PDFReadingMode`](parameter-mode-enums.md#pdfreadingmode) | Describes the PDF reading mode. |
- | [`RegionPredetectionMode`](parameter-mode-enums.md#regionpredetectionmode) | Describes the region predetection mode. |
- | [`ScaleUpMode`](parameter-mode-enums.md#scaleupmode) | Describes the scale up mode. |
- | [`TerminatePhase`](parameter-mode-enums.md#terminatephase) | Describes the terminate phase. |
- | [`TextFilterMode`](parameter-mode-enums.md#textfiltermode) | Describes the text filter mode. |
- | [`TextureDetectionMode`](parameter-mode-enums.md#texturedetectionmode) | Describes the texture detection mode. |
-
-## [Result Related Enumeration](result-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`IMResultDataType`](result-enums.md#imresultdatatype) | Describes the intermediate result data type. |
- | [`IntermediateResultSavingMode`](result-enums.md#intermediateresultsavingmode) | Describes the intermediate result saving mode. |
- | [`IntermediateResultType`](result-enums.md#intermediateresulttype) | Describes the intermediate result type. |
- | [`ResultCoordinateType`](result-enums.md#resultcoordinatetype) | Describes the result coordinate type. |
- | [`ResultType`](result-enums.md#resulttype) | Describes the extended result type. |
- | [`TextResultOrderMode`](result-enums.md#textresultordermode) | Describes the text result order mode. |
-
-## [Frame Decoding Enumeration](frame-decoding-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`ClarityCalculationMethod`](frame-decoding-enums.md#claritycalculationmethod) | Describes the clarity calculation method. |
- | [`ClarityFilterMode`](frame-decoding-enums.md#clarityfiltermode) | Describes the clarity filter mode. |
-
-## [Other Enumeration](other-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`DM_ChargeWay`](other-enums.md#dm_chargeway) | Describes the charge way. |
- | [`DM_DeploymentType`](other-enums.md#dm_deploymenttype) | Describes the deployment type. |
- | [`DM_LicenseModule`](other-enums.md#dm_licensemodule) | Describes Dynamsoft license modules. |
- | [`DM_UUIDGenerationMethod`](other-enums.md#dm_uuidgenerationmethod) | Describes the UUID generation method. |
- | [`ImagePixelFormat`](other-enums.md#imagepixelformat) | Describes the image pixel format. |
- | [`QRCodeErrorCorrectionLevel`](other-enums.md#qrcodeerrorcorrectionlevel) | Describes the QR Code error correction level. |
- | [`Product`](other-enums.md#product) | Describes Dynamsoft products. |
- | [`EnumPresetTemplate`](other-enums.md#enumpresettemplate) | The preset parameter setting templates. |
-
-## [Error Code](error-code.md)
diff --git a/parameters/enum/index.md b/parameters/enum/index.md
deleted file mode 100644
index fcd7990b..00000000
--- a/parameters/enum/index.md
+++ /dev/null
@@ -1,67 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Main Page
-description: Learn about Dynamsoft Barcode Reader Enumerations such as Format Enumeration, Parameter Mode Enumeration, Result Related Enumeration and Others.
-keywords: enumerations
-needAutoGenerateSidebar: false
-breadcrumbText: Enumerations
-permalink: /parameters/enum/
----
-
-# Dynamsoft Barcode Reader - Enumerations
-
-## [Format Enumeration](format-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`BarcodeFormat`](format-enums.md#barcodeformat) | Describes the barcode types in BarcodeFormat group 1. |
- | [`BarcodeFormat_2`](format-enums.md#barcodeformat_2) | Describes the barcode types in BarcodeFormat group 2. |
-
-## [Parameter Mode Enumeration](parameter-mode-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`BarcodeColourMode`](parameter-mode-enums.md#barcodecolourmode) | Describes the barcode colour mode. |
- | [`BarcodeComplementMode`](parameter-mode-enums.md#barcodecomplementmode) | Describes the barcode complement mode. |
- | [`BinarizationMode`](parameter-mode-enums.md#binarizationmode) | Describes the binarization mode. |
- | [`ColourClusteringMode`](parameter-mode-enums.md#colourclusteringmode) | Describes the colour clustering mode. |
- | [`ColourConversionMode`](parameter-mode-enums.md#colourconversionmode) | Describes the colour conversion mode. |
- | [`ConflictMode`](parameter-mode-enums.md#conflictmode) | Describes the conflict mode. |
- | [`DeblurMode`](parameter-mode-enums.md#deblurmode) | Describes the deblur mode. |
- | [`DeformationResistingMode`](parameter-mode-enums.md#deformationresistingmode) | Describes the deformation resisting mode. |
- | [`DPMCodeReadingMode`](parameter-mode-enums.md#dpmcodereadingmode) | Describes the DPM code reading mode. |
- | [`GrayscaleTransformationMode`](parameter-mode-enums.md#grayscaletransformationmode) | Describes the grayscale transformation mode. |
- | [`ImagePreprocessingMode`](parameter-mode-enums.md#imagepreprocessingmode) | Describes the image preprocessing mode. |
- | [`LocalizationMode`](parameter-mode-enums.md#localizationmode) | Describes the localization mode. |
- | [`PDFReadingMode`](parameter-mode-enums.md#pdfreadingmode) | Describes the PDF reading mode. |
- | [`RegionPredetectionMode`](parameter-mode-enums.md#regionpredetectionmode) | Describes the region predetection mode. |
- | [`ScaleUpMode`](parameter-mode-enums.md#scaleupmode) | Describes the scale up mode. |
- | [`TerminatePhase`](parameter-mode-enums.md#terminatephase) | Describes the terminate phase. |
- | [`TextFilterMode`](parameter-mode-enums.md#textfiltermode) | Describes the text filter mode. |
- | [`TextureDetectionMode`](parameter-mode-enums.md#texturedetectionmode) | Describes the texture detection mode. |
-
-## [Result Related Enumeration](result-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`IMResultDataType`](result-enums.md#imresultdatatype) | Describes the intermediate result data type. |
- | [`IntermediateResultSavingMode`](result-enums.md#intermediateresultsavingmode) | Describes the intermediate result saving mode. |
- | [`IntermediateResultType`](result-enums.md#intermediateresulttype) | Describes the intermediate result type. |
- | [`ResultCoordinateType`](result-enums.md#resultcoordinatetype) | Describes the result coordinate type. |
- | [`ResultType`](result-enums.md#resulttype) | Describes the extended result type. |
- | [`TextResultOrderMode`](result-enums.md#textresultordermode) | Describes the text result order mode. |
-
-## [Other Enumeration](other-enums.md)
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`ImagePixelFormat`](other-enums.md#imagepixelformat) | Describes the image pixel format. |
- | [`QRCodeErrorCorrectionLevel`](other-enums.md#qrcodeerrorcorrectionlevel) | Describes the QR Code error correction level. |
- | [`PresetTemplate`](other-enums.md#presettemplate) | The preset parameter setting templates. |
- | [`DM_ChargeWay`](other-enums.md#dm_chargeway) | `Deprecated` |
- | [`DM_DeploymentType`](other-enums.md#dm_deploymenttype) | `Deprecated` |
- | [`DM_LicenseModule`](other-enums.md#dm_licensemodule) | `Deprecated` |
- | [`DM_UUIDGenerationMethod`](other-enums.md#dm_uuidgenerationmethod) | `Deprecated` |
- | [`Product`](other-enums.md#product) | `Deprecated` |
-
-## [Error Code](error-code.md)
diff --git a/parameters/enum/other-enums-v7.6.0.md b/parameters/enum/other-enums-v7.6.0.md
deleted file mode 100644
index f7f5230c..00000000
--- a/parameters/enum/other-enums-v7.6.0.md
+++ /dev/null
@@ -1,83 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Other Enumerations
-description: This article shows other Enumerations of Dynamsoft Barcode Reader v7.6.0.
-keywords: ImagePixelFormat, QRCodeErrorCorrectionLevel, other enumeration, enumeration
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-permalink: /parameters/enum/other-enums-v7.6.0.html
----
-
-
-# Other Enumeration
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`ImagePixelFormat`](#imagepixelformat) | Describes the image pixel format. |
- | [`QRCodeErrorCorrectionLevel`](#qrcodeerrorcorrectionlevel) | Describes the QR Code error correction level. |
-
-
-## ImagePixelFormat
-Describes the image pixel format.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ImagePixelFormat` |
-| .Net | `enum Dynamsoft.Barcode.EnumImagePixelFormat` |
-| JavaScript | `Dynamsoft.EnumImagePixelFormat` |
-| Python | `class EnumImagePixelFormat(IntEnum)` |
-| Java / Android | `class EnumImagePixelFormat` |
-| ObjC / Swift | `enum EnumImagePixelFormat` |
-
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| IPF_BINARY | EnumImagePixelFormatBinary | 0 | 0: Black, 1: White |
-| IPF_BINARYINVERTED | EnumImagePixelFormatBinaryInverted | 1 | 0: Black, 1: White |
-| IPF_GRAYSCALED | EnumImagePixelFormatGrayScaled | 2 | 8 bit gray |
-| IPF_NV21 | EnumImagePixelFormatNV21 | 3 | NV21 |
-| IPF_RGB_565 | EnumImagePixelFormatRGB_565 | 4 | 16bit with RGB channel order stored in memory from high to low address |
-| IPF_RGB_555 | EnumImagePixelFormatRGB_555 | 5 | 16bit with RGB channel order stored in memory from high to low address |
-| IPF_RGB_888 | EnumImagePixelFormatRGB_888 | 6 | 24bit with RGB channel order stored in memory from high to low address |
-| IPF_ARGB_8888 | EnumImagePixelFormatARGB_8888 | 7 | 32bit with ARGB channel order stored in memory from high to low address |
-| IPF_RGB_161616 | EnumImagePixelFormatRGB_161616 | 8 | 48bit with RGB channel order stored in memory from high to low address |
-| IPF_ARGB_16161616 | EnumImagePixelFormatARGB_16161616 | 9 | 64bit with ARGB channel order stored in memory from high to low address |
-| IPF_ABGR_8888 | EnumImagePixelFormatABGR_8888 | 10 | 32bit with ABGR channel order stored in memory from high to low address |
-| IPF_ABGR_16161616 | EnumImagePixelFormatABGR_8888 | 11 | 64bit with ABGR channel order stored in memory from high to low address |
-| IPF_BGR_888 | EnumImagePixelFormatBGR_888 | 12 | 24bit with BGR channel order stored in memory from high to low address |
-
-
-
-
-
-## QRCodeErrorCorrectionLevel
-Describes the QR Code error correction level.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum QRCodeErrorCorrectionLevel` |
-| .Net | `enum Dynamsoft.Barcode.EnumQRCodeErrorCorrectionLevel` |
-| Python | `class EnumQRCodeErrorCorrectionLevel(IntEnum)` |
-| JavaScript | `Dynamsoft.EnumQRCodeErrorCorrectionLevel` |
-| Java / Android | `class EnumQRCodeErrorCorrectionLevel` |
-| ObjC / Swift | `enum EnumQRCodeErrorCorrectionLevel` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| QRECL_ERROR_CORRECTION_H | EnumQRCodeErrorCorrectionLevelErrorCorrectionH | 0 | Error Correction Level H (high) |
-| QRECL_ERROR_CORRECTION_L | EnumQRCodeErrorCorrectionLevelErrorCorrectionL | 1 | Error Correction Level L (low) |
-| QRECL_ERROR_CORRECTION_M | EnumQRCodeErrorCorrectionLevelErrorCorrectionM | 2 | Error Correction Level M (medium-low) |
-| QRECL_ERROR_CORRECTION_Q | EnumQRCodeErrorCorrectionLevelErrorCorrectionQ | 3 | Error Correction Level Q (medium-high) |
-
diff --git a/parameters/enum/other-enums-v8.2.5.md b/parameters/enum/other-enums-v8.2.5.md
deleted file mode 100644
index df15fa01..00000000
--- a/parameters/enum/other-enums-v8.2.5.md
+++ /dev/null
@@ -1,221 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Other Enumerations
-description: This article shows other Enumerations of Dynamsoft Barcode Reader v8.2.5.
-keywords: DM_ChargeWay, DM_DeploymentType, DM_LicenseModule, DM_UUIDGenerationMethod, ImagePixelFormat, QRCodeErrorCorrectionLevel, other enumeration, enumeration
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-permalink: /parameters/enum/other-enums-v8.2.5.html
----
-
-
-# Dynamsoft Barcode Reader Enumeration - Other Enumeration
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`DM_ChargeWay`](#dm_chargeway) | Describes the charge way. |
- | [`DM_DeploymentType`](#dm_deploymenttype) | Describes the deployment type. |
- | [`DM_LicenseModule`](#dm_licensemodule) | Describes Dynamsoft license modules. |
- | [`DM_UUIDGenerationMethod`](#dm_uuidgenerationmethod) | Describes the UUID generation method. |
- | [`ImagePixelFormat`](#imagepixelformat) | Describes the image pixel format. |
- | [`QRCodeErrorCorrectionLevel`](#qrcodeerrorcorrectionlevel) | Describes the QR Code error correction level. |
-
----
-
-
-## DM_ChargeWay
-Describes charge way.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DM_ChargeWay` |
-| .Net | `enum Dynamsoft.EnumDMChargeWay` |
-| JavaScript | `N/A` |
-| Python | `class EnumDMChargeWay(IntEnum)` |
-| Java / Android | `class EnumDMChargeWay` |
-| ObjC / Swift | `enum EnumDMChargeWay` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| DM_CW_AUTO | EnumDMChargeWayAuto | 0 | The charge way automatically determined by the license server. |
-| DM_CW_DEVICE_COUNT | EnumDMChargeWayDeviceCount | 1 | Charges by the count of devices. |
-| DM_CW_SCAN_COUNT | EnumDMChargeWayScanCount | 2 | Charges by the count of barcode scans.|
-| DM_CW_CONCURRENT_DEVICE_COUNT | EnumDMChargeWayConcurrentDeviceCount | 3 | Charges by the count of concurrent devices. |
-| DM_CW_APP_DOMAIN_COUNT | EnumDMChargeWayAppDomainCount | 6 | Charges by the count of app domains. |
-| DM_CW_ACTIVE_DEVICE_COUNT | EnumDMChargeWayActiveDeviceCount | 8 | Charges by the count of active devices. |
-| DM_CW_INSTANCE_COUNT | EnumDMChargeWayInstanceCount | 9 | Charges by the count of instances. |
-| DM_CW_CONCURRENT_INSTANCE_COUNT | EnumDMChargeWayConcurrentInstanceCount | 10 | Charges by the count of concurrent instances. |
-
-
-
-
-
-
-## DM_DeploymentType
-Describes the deployment type.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DM_DeploymentType` |
-| .Net | `enum Dynamsoft.EnumDMDeploymentType` |
-| JavaScript | `N/A` |
-| Python | `class EnumDMDeploymentType(IntEnum)` |
-| Java | `class EnumDMDeploymentType` |
-| Android | `N/A` |
-| ObjC / Swift | `N/A` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| DM_DT_SERVER | N/A | 1 | Server deployment type |
-| DM_DT_DESKTOP | N/A | 2 | Desktop |
-| DM_DT_EMBEDDED_DEVICE | N/A | 6 | Embedded device deployment type |
-| DM_DT_OEM | N/A | 7 | OEM deployment type |
-
-
-
-
-
-## DM_LicenseModule
-Describes Dynamsoft license modules.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DM_LicenseModule` |
-| .Net | `enum Dynamsoft.EnumDMLicenseModule` |
-| JavaScript | `N/A` |
-| Python | `class EnumDMLicenseModule(IntEnum)` |
-| Java / Android | `class EnumDMLicenseModule` |
-| ObjC / Swift | `enum EnumDMLicenseModule` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| DM_LM_ONED | EnumDMLicenseModuleONED | 1 | One-D barcodes license module |
-| DM_LM_QR_CODE | EnumDMLicenseModuleQRCODE | 2 | QR Code barcodes license module |
-| DM_LM_PDF417 | EnumDMLicenseModulePDF417 | 3 | PDF417 barcodes license module |
-| DM_LM_DATAMATRIX | EnumDMLicenseModuleDATAMATRIX | 4 | DATAMATRIX barcodes license module |
-| DM_LM_AZTEC | EnumDMLicenseModuleAZTEC | 5 | Aztec barcodes license module |
-| DM_LM_MAXICODE | EnumDMLicenseModuleMAXICODE | 6 | MAXICODE barcodes license module|
-| DM_LM_PATCHCODE | EnumDMLicenseModulePatchCode | 7 |Patch code barcodes license module |
-| DM_LM_GS1_DATABAR | EnumDMLicenseModuleGS1DATABAR | 8 | GS1 Databar barcodes license module |
-| DM_LM_GS1_COMPOSITE | EnumDMLicenseModuleGS1COMPOSITE | 9 | GS1 Composite Code barcodes license module |
-| DM_LM_POSTALCODE | EnumDMLicenseModulePOSTALCODE | 10 | Postal code barcodes license module |
-| DM_LM_DOTCODE | EnumDMLicenseModuleDOTCODE | 11 | DotCode barcodes license module|
-| DM_LM_DDM_LM_INTERMEDIATE_RESULTATAMATRIX | EnumDMLicenseModuleINTERMEDIATERESULT | 12 | Intermediate result license module |
-| DM_LM_DPM | EnumDMLicenseModuleDPM | 13 |DATAMATRIX DPM (Direct Part Marking) license module |
-| DM_LM_NONSTANDARD_BARCODE | EnumDMLicenseModuleNONSTANDARDBARCODE | 16 | Nonstandard barcodes license module|
-
-
-
-
-## DM_UUIDGenerationMethod
-Describes UUID generation method.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DM_UUIDGenerationMethod` |
-| .Net | `enum Dynamsoft.EnumDMUUIDGenerationMethod` |
-| JavaScript | `N/A` |
-| Python | `class EnumDMUUIDGenerationMethod(IntEnum)` |
-| Java / Android | `class EnumDMUUIDGenerationMethod` |
-| ObjC / Swift | `enum EnumDMUUIDGenerationMethod` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| DM_UUIDGM_RANDOM | EnumDMUUIDGenerationMethodRandom | 1 | Generates UUID with random values. |
-| DM_UUIDGM_HARDWARE | EnumDMUUIDGenerationMethodHardware | 2 | Generates UUID based on hardware info. |
-
-
-
-
-
-
-
-## ImagePixelFormat
-Describes the image pixel format.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ImagePixelFormat` |
-| .Net | `enum Dynamsoft.DBR.EnumImagePixelFormat` |
-| JavaScript | `Dynamsoft.EnumImagePixelFormat` |
-| Python | `class EnumImagePixelFormat(IntEnum)` |
-| Java / Android | `class EnumImagePixelFormat` |
-| ObjC / Swift | `enum EnumImagePixelFormat` |
-
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| IPF_BINARY | EnumImagePixelFormatBinary | 0 | 0: Black, 1: White |
-| IPF_BINARYINVERTED | EnumImagePixelFormatBinaryInverted | 1 | 0: Black, 1: White |
-| IPF_GRAYSCALED | EnumImagePixelFormatGrayScaled | 2 | 8 bit gray |
-| IPF_NV21 | EnumImagePixelFormatNV21 | 3 | NV21 |
-| IPF_RGB_565 | EnumImagePixelFormatRGB_565 | 4 | 16bit with RGB channel order stored in memory from high to low address |
-| IPF_RGB_555 | EnumImagePixelFormatRGB_555 | 5 | 16bit with RGB channel order stored in memory from high to low address |
-| IPF_RGB_888 | EnumImagePixelFormatRGB_888 | 6 | 24bit with RGB channel order stored in memory from high to low address |
-| IPF_ARGB_8888 | EnumImagePixelFormatARGB_8888 | 7 | 32bit with ARGB channel order stored in memory from high to low address |
-| IPF_RGB_161616 | EnumImagePixelFormatRGB_161616 | 8 | 48bit with RGB channel order stored in memory from high to low address |
-| IPF_ARGB_16161616 | EnumImagePixelFormatARGB_16161616 | 9 | 64bit with ARGB channel order stored in memory from high to low address |
-| IPF_ABGR_8888 | EnumImagePixelFormatABGR_8888 | 10 | 32bit with ABGR channel order stored in memory from high to low address |
-| IPF_ABGR_16161616 | EnumImagePixelFormatABGR_8888 | 11 | 64bit with ABGR channel order stored in memory from high to low address |
-| IPF_BGR_888 | EnumImagePixelFormatBGR_888 | 12 | 24bit with BGR channel order stored in memory from high to low address |
-
-
-
-
-
-
-## QRCodeErrorCorrectionLevel
-Describes the QR Code error correction level.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum QRCodeErrorCorrectionLevel` |
-| .Net | `enum Dynamsoft.DBR.EnumQRCodeErrorCorrectionLevel` |
-| Python | `class EnumQRCodeErrorCorrectionLevel(IntEnum)` |
-| JavaScript | `Dynamsoft.EnumQRCodeErrorCorrectionLevel` |
-| Java / Android | `class EnumQRCodeErrorCorrectionLevel` |
-| ObjC / Swift | `enum EnumQRCodeErrorCorrectionLevel` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| QRECL_ERROR_CORRECTION_H | EnumQRCodeErrorCorrectionLevelErrorCorrectionH | 0 | Error Correction Level H (high) |
-| QRECL_ERROR_CORRECTION_L | EnumQRCodeErrorCorrectionLevelErrorCorrectionL | 1 | Error Correction Level L (low) |
-| QRECL_ERROR_CORRECTION_M | EnumQRCodeErrorCorrectionLevelErrorCorrectionM | 2 | Error Correction Level M (medium-low) |
-| QRECL_ERROR_CORRECTION_Q | EnumQRCodeErrorCorrectionLevelErrorCorrectionQ | 3 | Error Correction Level Q (medium-high) |
-
diff --git a/parameters/enum/other-enums-v8.8.7.md b/parameters/enum/other-enums-v8.8.7.md
deleted file mode 100644
index 969da14d..00000000
--- a/parameters/enum/other-enums-v8.8.7.md
+++ /dev/null
@@ -1,230 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Other Enumerations
-description: This article shows other Enumerations of Dynamsoft Barcode Reader v8.8.7.
-keywords: DM_ChargeWay, DM_DeploymentType, DM_LicenseModule, DM_UUIDGenerationMethod, ImagePixelFormat, QRCodeErrorCorrectionLevel, other enumeration, enumeration
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-permalink: /parameters/enum/other-enums-v8.8.7.html
----
-
-
-# Other Enumeration
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`DM_ChargeWay`](#dm_chargeway) | Describes the charge way. |
- | [`DM_DeploymentType`](#dm_deploymenttype) | Describes the deployment type. |
- | [`DM_LicenseModule`](#dm_licensemodule) | Describes Dynamsoft license modules. |
- | [`DM_UUIDGenerationMethod`](#dm_uuidgenerationmethod) | Describes the UUID generation method. |
- | [`ImagePixelFormat`](#imagepixelformat) | Describes the image pixel format. |
- | [`QRCodeErrorCorrectionLevel`](#qrcodeerrorcorrectionlevel) | Describes the QR Code error correction level. |
- | [`Product`](#product) | Describes Dynamsoft products. |
- | [`EnumPresetTemplate`](#enumpresettemplate) | Describes the preset parameter setting templates. |
-
----
-
-## DM_ChargeWay
-
-Describes charge way.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DM_ChargeWay` |
-| .Net | `enum Dynamsoft.DBR.EnumDMChargeWay` |
-| JavaScript | `N/A` |
-| Python | `class EnumDMChargeWay(IntEnum)` |
-| Java / Android | `class EnumDMChargeWay` |
-| ObjC / Swift | `enum EnumDMChargeWay` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| DM_CW_AUTO | EnumDMChargeWayAuto | 0 | The charge way automatically determined by the license server. |
-| DM_CW_DEVICE_COUNT | EnumDMChargeWayDeviceCount | 1 | Charges by the count of devices. |
-| DM_CW_SCAN_COUNT | EnumDMChargeWayScanCount | 2 | Charges by the count of barcode scans.|
-| DM_CW_CONCURRENT_DEVICE_COUNT | EnumDMChargeWayConcurrentDeviceCount | 3 | Charges by the count of concurrent devices. |
-| DM_CW_APP_DOMAIN_COUNT | EnumDMChargeWayAppDomainCount | 6 | Charges by the count of app domains. |
-| DM_CW_ACTIVE_DEVICE_COUNT | EnumDMChargeWayActiveDeviceCount | 8 | Charges by the count of active devices. |
-| DM_CW_INSTANCE_COUNT | EnumDMChargeWayInstanceCount | 9 | Charges by the count of instances. |
-| DM_CW_CONCURRENT_INSTANCE_COUNT | EnumDMChargeWayConcurrentInstanceCount | 10 | Charges by the count of concurrent instances. |
-
-
-
-## DM_DeploymentType
-
-Describes the deployment type.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DM_DeploymentType` |
-| .Net | `enum Dynamsoft.DBR.EnumDMDeploymentType` |
-| JavaScript | `N/A` |
-| Python | `class EnumDMDeploymentType(IntEnum)` |
-| Java | `class EnumDMDeploymentType` |
-| Android | `N/A` |
-| ObjC / Swift | `N/A` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| DM_DT_SERVER | N/A | 1 | Server deployment type |
-| DM_DT_DESKTOP | N/A | 2 | Desktop |
-| DM_DT_EMBEDDED_DEVICE | N/A | 6 | Embedded device deployment type |
-| DM_DT_OEM | N/A | 7 | OEM deployment type |
-
-
-
-## DM_LicenseModule
-
-Describes Dynamsoft license modules.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DM_LicenseModule` |
-| .Net | `enum Dynamsoft.DBR.EnumDMLicenseModule` |
-| JavaScript | `N/A` |
-| Python | `class EnumDMLicenseModule(IntEnum)` |
-| Java / Android | `class EnumDMLicenseModule` |
-| ObjC / Swift | `enum EnumDMLicenseModule` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| DM_LM_ONED | EnumDMLicenseModuleONED | 1 | One-D barcodes license module |
-| DM_LM_QR_CODE | EnumDMLicenseModuleQRCODE | 2 | QR Code barcodes license module |
-| DM_LM_PDF417 | EnumDMLicenseModulePDF417 | 3 | PDF417 barcodes license module |
-| DM_LM_DATAMATRIX | EnumDMLicenseModuleDATAMATRIX | 4 | DATAMATRIX barcodes license module |
-| DM_LM_AZTEC | EnumDMLicenseModuleAZTEC | 5 | Aztec barcodes license module |
-| DM_LM_MAXICODE | EnumDMLicenseModuleMAXICODE | 6 | MAXICODE barcodes license module|
-| DM_LM_PATCHCODE | EnumDMLicenseModulePatchCode | 7 |Patch code barcodes license module |
-| DM_LM_GS1_DATABAR | EnumDMLicenseModuleGS1DATABAR | 8 | GS1 Databar barcodes license module |
-| DM_LM_GS1_COMPOSITE | EnumDMLicenseModuleGS1COMPOSITE | 9 | GS1 Composite Code barcodes license module |
-| DM_LM_POSTALCODE | EnumDMLicenseModulePOSTALCODE | 10 | Postal code barcodes license module |
-| DM_LM_DOTCODE | EnumDMLicenseModuleDOTCODE | 11 | DotCode barcodes license module|
-| DM_LM_DDM_LM_INTERMEDIATE_RESULTATAMATRIX | EnumDMLicenseModuleINTERMEDIATERESULT | 12 | Intermediate result license module |
-| DM_LM_DPM | EnumDMLicenseModuleDPM | 13 |DATAMATRIX DPM (Direct Part Marking) license module |
-| DM_LM_NONSTANDARD_BARCODE | EnumDMLicenseModuleNONSTANDARDBARCODE | 16 | Nonstandard barcodes license module|
-
-
-
-## DM_UUIDGenerationMethod
-
-Describes UUID generation method.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DM_UUIDGenerationMethod` |
-| .Net | `enum Dynamsoft.DBR.EnumDMUUIDGenerationMethod` |
-| JavaScript | `N/A` |
-| Python | `class EnumDMUUIDGenerationMethod(IntEnum)` |
-| Java / Android | `class EnumDMUUIDGenerationMethod` |
-| ObjC / Swift | `enum EnumDMUUIDGenerationMethod` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| DM_UUIDGM_RANDOM | EnumDMUUIDGenerationMethodRandom | 1 | Generates UUID with random values. |
-| DM_UUIDGM_HARDWARE | EnumDMUUIDGenerationMethodHardware | 2 | Generates UUID based on hardware info. |
-
-
-
-## ImagePixelFormat
-
-Describes the image pixel format.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ImagePixelFormat` |
-| .Net | `enum Dynamsoft.DBR.EnumImagePixelFormat` |
-| JavaScript | `Dynamsoft.EnumImagePixelFormat` |
-| Python | `class EnumImagePixelFormat(IntEnum)` |
-| Java / Android | `class EnumImagePixelFormat` |
-| ObjC / Swift | `enum EnumImagePixelFormat` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| IPF_BINARY | EnumImagePixelFormatBinary | 0 | 0: Black, 1: White |
-| IPF_BINARYINVERTED | EnumImagePixelFormatBinaryInverted | 1 | 0: Black, 1: White |
-| IPF_GRAYSCALED | EnumImagePixelFormatGrayScaled | 2 | 8 bit gray |
-| IPF_NV21 | EnumImagePixelFormatNV21 | 3 | NV21 |
-| IPF_RGB_565 | EnumImagePixelFormatRGB_565 | 4 | 16bit with RGB channel order stored in memory from high to low address |
-| IPF_RGB_555 | EnumImagePixelFormatRGB_555 | 5 | 16bit with RGB channel order stored in memory from high to low address |
-| IPF_RGB_888 | EnumImagePixelFormatRGB_888 | 6 | 24bit with RGB channel order stored in memory from high to low address |
-| IPF_ARGB_8888 | EnumImagePixelFormatARGB_8888 | 7 | 32bit with ARGB channel order stored in memory from high to low address |
-| IPF_RGB_161616 | EnumImagePixelFormatRGB_161616 | 8 | 48bit with RGB channel order stored in memory from high to low address |
-| IPF_ARGB_16161616 | EnumImagePixelFormatARGB_16161616 | 9 | 64bit with ARGB channel order stored in memory from high to low address |
-| IPF_ABGR_8888 | EnumImagePixelFormatABGR_8888 | 10 | 32bit with ABGR channel order stored in memory from high to low address |
-| IPF_ABGR_16161616 | EnumImagePixelFormatABGR_8888 | 11 | 64bit with ABGR channel order stored in memory from high to low address |
-| IPF_BGR_888 | EnumImagePixelFormatBGR_888 | 12 | 24bit with BGR channel order stored in memory from high to low address |
-
-
-
-## QRCodeErrorCorrectionLevel
-
-Describes the QR Code error correction level.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum QRCodeErrorCorrectionLevel` |
-| .Net | `enum Dynamsoft.DBR.EnumQRCodeErrorCorrectionLevel` |
-| Python | `class EnumQRCodeErrorCorrectionLevel(IntEnum)` |
-| JavaScript | `Dynamsoft.EnumQRCodeErrorCorrectionLevel` |
-| Java / Android | `class EnumQRCodeErrorCorrectionLevel` |
-| ObjC / Swift | `enum EnumQRCodeErrorCorrectionLevel` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| QRECL_ERROR_CORRECTION_H | EnumQRCodeErrorCorrectionLevelErrorCorrectionH | 0 | Error Correction Level H (high) |
-| QRECL_ERROR_CORRECTION_L | EnumQRCodeErrorCorrectionLevelErrorCorrectionL | 1 | Error Correction Level L (low) |
-| QRECL_ERROR_CORRECTION_M | EnumQRCodeErrorCorrectionLevelErrorCorrectionM | 2 | Error Correction Level M (medium-low) |
-| QRECL_ERROR_CORRECTION_Q | EnumQRCodeErrorCorrectionLevelErrorCorrectionQ | 3 | Error Correction Level Q (medium-high) |
-
-
-
-## Product
-Describes Dynamsoft products.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum Product` |
-| .Net | `enum Dynamsoft.EnumProduct` |
-| JavaScript | `Dynamsoft.EnumProduct` |
-| Python | `class EnumProduct(IntEnum)` |
-| Java / Android | `class EnumProduct` |
-| ObjC / Swift | `enum EnumProduct` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| PROD_DBR | EnumProductDBR | 0x0001 | Dynamsoft Barcode Reader |
-| PROD_DLR | EnumProductDLR | 0x0002 | Dynamsoft Label Recognition |
-| PROD_DWT | EnumProductDWT | 0x0004 | Dynamic Web Twain |
-| PROD_DCE | EnumProductDCE | 0x0008 | Dynamsoft Camera Enhancer |
-| PROD_DPS | EnumProductDPS | 0x0010 | Dynamsoft Panorama |
-| PROD_ALL | EnumProductALL | 0xFFFF | All Dynamsoft products |
diff --git a/parameters/enum/other-enums-v8.9.3.md b/parameters/enum/other-enums-v8.9.3.md
deleted file mode 100644
index f3eac654..00000000
--- a/parameters/enum/other-enums-v8.9.3.md
+++ /dev/null
@@ -1,270 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Other Enumerations
-description: This article shows other Enumerations of Dynamsoft Barcode Reader v8.9.3.
-keywords: DM_ChargeWay, DM_DeploymentType, DM_LicenseModule, DM_UUIDGenerationMethod, ImagePixelFormat, QRCodeErrorCorrectionLevel, other enumeration, enumeration
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-permalink: /parameters/enum/other-enums-v8.9.3.html
----
-
-
-# Other Enumeration
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`DM_ChargeWay`](#dm_chargeway) | Describes the charge way. |
- | [`DM_DeploymentType`](#dm_deploymenttype) | Describes the deployment type. |
- | [`DM_LicenseModule`](#dm_licensemodule) | Describes Dynamsoft license modules. |
- | [`DM_UUIDGenerationMethod`](#dm_uuidgenerationmethod) | Describes the UUID generation method. |
- | [`ImagePixelFormat`](#imagepixelformat) | Describes the image pixel format. |
- | [`QRCodeErrorCorrectionLevel`](#qrcodeerrorcorrectionlevel) | Describes the QR Code error correction level. |
- | [`Product`](#product) | Describes Dynamsoft products. |
- | [`EnumPresetTemplate`](#enumpresettemplate) | Describes the preset parameter setting templates. |
-
-
-## DM_ChargeWay
-Describes charge way.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DM_ChargeWay` |
-| .Net | `enum Dynamsoft.DBR.EnumDMChargeWay` |
-| JavaScript | `N/A` |
-| Python | `class EnumDMChargeWay(IntEnum)` |
-| Java / Android | `class EnumDMChargeWay` |
-| ObjC / Swift | `enum EnumDMChargeWay` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| DM_CW_AUTO | EnumDMChargeWayAuto | 0 | The charge way automatically determined by the license server. |
-| DM_CW_DEVICE_COUNT | EnumDMChargeWayDeviceCount | 1 | Charges by the count of devices. |
-| DM_CW_SCAN_COUNT | EnumDMChargeWayScanCount | 2 | Charges by the count of barcode scans.|
-| DM_CW_CONCURRENT_DEVICE_COUNT | EnumDMChargeWayConcurrentDeviceCount | 3 | Charges by the count of concurrent devices. |
-| DM_CW_APP_DOMAIN_COUNT | EnumDMChargeWayAppDomainCount | 6 | Charges by the count of app domains. |
-| DM_CW_ACTIVE_DEVICE_COUNT | EnumDMChargeWayActiveDeviceCount | 8 | Charges by the count of active devices. |
-| DM_CW_INSTANCE_COUNT | EnumDMChargeWayInstanceCount | 9 | Charges by the count of instances. |
-| DM_CW_CONCURRENT_INSTANCE_COUNT | EnumDMChargeWayConcurrentInstanceCount | 10 | Charges by the count of concurrent instances. |
-
-
-
-
-
-
-## DM_DeploymentType
-Describes the deployment type.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DM_DeploymentType` |
-| .Net | `enum Dynamsoft.DBR.EnumDMDeploymentType` |
-| JavaScript | `N/A` |
-| Python | `class EnumDMDeploymentType(IntEnum)` |
-| Java | `class EnumDMDeploymentType` |
-| Android | `N/A` |
-| ObjC / Swift | `N/A` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| DM_DT_SERVER | N/A | 1 | Server deployment type |
-| DM_DT_DESKTOP | N/A | 2 | Desktop |
-| DM_DT_EMBEDDED_DEVICE | N/A | 6 | Embedded device deployment type |
-| DM_DT_OEM | N/A | 7 | OEM deployment type |
-
-
-
-
-
-## DM_LicenseModule
-Describes Dynamsoft license modules.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DM_LicenseModule` |
-| .Net | `enum Dynamsoft.DBR.EnumDMLicenseModule` |
-| JavaScript | `N/A` |
-| Python | `class EnumDMLicenseModule(IntEnum)` |
-| Java / Android | `class EnumDMLicenseModule` |
-| ObjC / Swift | `enum EnumDMLicenseModule` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| DM_LM_ONED | EnumDMLicenseModuleONED | 1 | One-D barcodes license module |
-| DM_LM_QR_CODE | EnumDMLicenseModuleQRCODE | 2 | QR Code barcodes license module |
-| DM_LM_PDF417 | EnumDMLicenseModulePDF417 | 3 | PDF417 barcodes license module |
-| DM_LM_DATAMATRIX | EnumDMLicenseModuleDATAMATRIX | 4 | DATAMATRIX barcodes license module |
-| DM_LM_AZTEC | EnumDMLicenseModuleAZTEC | 5 | Aztec barcodes license module |
-| DM_LM_MAXICODE | EnumDMLicenseModuleMAXICODE | 6 | MAXICODE barcodes license module|
-| DM_LM_PATCHCODE | EnumDMLicenseModulePatchCode | 7 |Patch code barcodes license module |
-| DM_LM_GS1_DATABAR | EnumDMLicenseModuleGS1DATABAR | 8 | GS1 Databar barcodes license module |
-| DM_LM_GS1_COMPOSITE | EnumDMLicenseModuleGS1COMPOSITE | 9 | GS1 Composite Code barcodes license module |
-| DM_LM_POSTALCODE | EnumDMLicenseModulePOSTALCODE | 10 | Postal code barcodes license module |
-| DM_LM_DOTCODE | EnumDMLicenseModuleDOTCODE | 11 | DotCode barcodes license module|
-| DM_LM_DDM_LM_INTERMEDIATE_RESULTATAMATRIX | EnumDMLicenseModuleINTERMEDIATERESULT | 12 | Intermediate result license module |
-| DM_LM_DPM | EnumDMLicenseModuleDPM | 13 |DATAMATRIX DPM (Direct Part Marking) license module |
-| DM_LM_NONSTANDARD_BARCODE | EnumDMLicenseModuleNONSTANDARDBARCODE | 16 | Nonstandard barcodes license module|
-
-
-
-
-## DM_UUIDGenerationMethod
-Describes UUID generation method.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DM_UUIDGenerationMethod` |
-| .Net | `enum Dynamsoft.DBR.EnumDMUUIDGenerationMethod` |
-| JavaScript | `N/A` |
-| Python | `class EnumDMUUIDGenerationMethod(IntEnum)` |
-| Java / Android | `class EnumDMUUIDGenerationMethod` |
-| ObjC / Swift | `enum EnumDMUUIDGenerationMethod` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| DM_UUIDGM_RANDOM | EnumDMUUIDGenerationMethodRandom | 1 | Generates UUID with random values. |
-| DM_UUIDGM_HARDWARE | EnumDMUUIDGenerationMethodHardware | 2 | Generates UUID based on hardware info. |
-
-
-
-
-
-
-
-## ImagePixelFormat
-Describes the image pixel format.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ImagePixelFormat` |
-| .Net | `enum Dynamsoft.DBR.EnumImagePixelFormat` |
-| JavaScript | `Dynamsoft.EnumImagePixelFormat` |
-| Python | `class EnumImagePixelFormat(IntEnum)` |
-| Java / Android | `class EnumImagePixelFormat` |
-| ObjC / Swift | `enum EnumImagePixelFormat` |
-
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| IPF_BINARY | EnumImagePixelFormatBinary | 0 | 0: Black, 1: White |
-| IPF_BINARYINVERTED | EnumImagePixelFormatBinaryInverted | 1 | 0: Black, 1: White |
-| IPF_GRAYSCALED | EnumImagePixelFormatGrayScaled | 2 | 8 bit gray |
-| IPF_NV21 | EnumImagePixelFormatNV21 | 3 | NV21 |
-| IPF_RGB_565 | EnumImagePixelFormatRGB_565 | 4 | 16bit with RGB channel order stored in memory from high to low address |
-| IPF_RGB_555 | EnumImagePixelFormatRGB_555 | 5 | 16bit with RGB channel order stored in memory from high to low address |
-| IPF_RGB_888 | EnumImagePixelFormatRGB_888 | 6 | 24bit with RGB channel order stored in memory from high to low address |
-| IPF_ARGB_8888 | EnumImagePixelFormatARGB_8888 | 7 | 32bit with ARGB channel order stored in memory from high to low address |
-| IPF_RGB_161616 | EnumImagePixelFormatRGB_161616 | 8 | 48bit with RGB channel order stored in memory from high to low address |
-| IPF_ARGB_16161616 | EnumImagePixelFormatARGB_16161616 | 9 | 64bit with ARGB channel order stored in memory from high to low address |
-| IPF_ABGR_8888 | EnumImagePixelFormatABGR_8888 | 10 | 32bit with ABGR channel order stored in memory from high to low address |
-| IPF_ABGR_16161616 | EnumImagePixelFormatABGR_8888 | 11 | 64bit with ABGR channel order stored in memory from high to low address |
-| IPF_BGR_888 | EnumImagePixelFormatBGR_888 | 12 | 24bit with BGR channel order stored in memory from high to low address |
-
-
-
-
-
-
-## QRCodeErrorCorrectionLevel
-Describes the QR Code error correction level.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum QRCodeErrorCorrectionLevel` |
-| .Net | `enum Dynamsoft.DBR.EnumQRCodeErrorCorrectionLevel` |
-| Python | `class EnumQRCodeErrorCorrectionLevel(IntEnum)` |
-| JavaScript | `Dynamsoft.EnumQRCodeErrorCorrectionLevel` |
-| Java / Android | `class EnumQRCodeErrorCorrectionLevel` |
-| ObjC / Swift | `enum EnumQRCodeErrorCorrectionLevel` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| QRECL_ERROR_CORRECTION_H | EnumQRCodeErrorCorrectionLevelErrorCorrectionH | 0 | Error Correction Level H (high) |
-| QRECL_ERROR_CORRECTION_L | EnumQRCodeErrorCorrectionLevelErrorCorrectionL | 1 | Error Correction Level L (low) |
-| QRECL_ERROR_CORRECTION_M | EnumQRCodeErrorCorrectionLevelErrorCorrectionM | 2 | Error Correction Level M (medium-low) |
-| QRECL_ERROR_CORRECTION_Q | EnumQRCodeErrorCorrectionLevelErrorCorrectionQ | 3 | Error Correction Level Q (medium-high) |
-
-
-
-## Product
-Describes Dynamsoft products.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum Product` |
-| .Net | `enum Dynamsoft.EnumProduct` |
-| JavaScript | `Dynamsoft.EnumProduct` |
-| Python | `class EnumProduct(IntEnum)` |
-| Java / Android | `class EnumProduct` |
-| ObjC / Swift | `enum EnumProduct` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| PROD_DBR | EnumProductDBR | 0x0001 | Dynamsoft Barcode Reader |
-| PROD_DLR | EnumProductDLR | 0x0002 | Dynamsoft Label Recognition |
-| PROD_DWT | EnumProductDWT | 0x0004 | Dynamic Web Twain |
-| PROD_DCE | EnumProductDCE | 0x0008 | Dynamsoft Camera Enhancer |
-| PROD_DPS | EnumProductDPS | 0x0010 | Dynamsoft Panorama |
-| PROD_ALL | EnumProductALL | 0xFFFF | All Dynamsoft products |
-
-## PresetTemplate
-
-Describes the preset parameter setting templates.
-
-### Declaration
-
-| Language | Declaration |
-| -------- | ----------- |
-| Android | `class EnumPresetTemplate` |
-| Objc / Swift | `enum EnumPresetTemplate` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| `DEFAULT` | `EnumPresetTemplateDefault` | 0 | The default parameter configuration. |
-| `VIDEO_SINGLE_BARCODE` | `EnumPresetTemplateVideoSingleBarcode` | 1 | The template for decoding a single barcode from the video. |
-| `VIDEO_SPEED_FIRST` | `EnumPresetTemplateVideoSpeedFirst` | 2 | The speed optimized template for video barcode decoding. |
-| `VIDEO_READ_RATE_FIRST` | `EnumPresetTemplateVideoReadRateFirst` | 3 | The read rate optimized template for video barcode decoding. |
-| `IMAGE_SPEED_FIRST` | `EnumPresetTemplateImageSpeedFirst` | 4 | The speed optimized template for image barcode decoding. |
-| `IMAGE_READ_RATE_FIRST` | `EnumPresetTemplateImageReadRateFirst` | 5 | The read rate optimized template for image barcode decoding. |
diff --git a/parameters/enum/other-enums.md b/parameters/enum/other-enums.md
deleted file mode 100644
index e28b9bcc..00000000
--- a/parameters/enum/other-enums.md
+++ /dev/null
@@ -1,236 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Other Enumerations
-description: This article shows other Enumerations of Dynamsoft Barcode Reader.
-keywords: DM_ChargeWay, DM_DeploymentType, DM_LicenseModule, DM_UUIDGenerationMethod, ImagePixelFormat, QRCodeErrorCorrectionLevel, PresetTemplate, other enumeration, enumeration
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-permalink: /parameters/enum/other-enums.html
----
-
-
-# Other Enumeration
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`ImagePixelFormat`](#imagepixelformat) | Describes the image pixel format. |
- | [`QRCodeErrorCorrectionLevel`](#qrcodeerrorcorrectionlevel) | Describes the QR Code error correction level. |
- | [`PresetTemplate`](#presettemplate) | Describes the preset parameter setting templates. |
- | [`DM_ChargeWay`](#dm_chargeway) | `Deprecated` |
- | [`DM_DeploymentType`](#dm_deploymenttype) | `Deprecated` |
- | [`DM_LicenseModule`](#dm_licensemodule) | `Deprecated` |
- | [`DM_UUIDGenerationMethod`](#dm_uuidgenerationmethod) | `Deprecated` |
- | [`Product`](#product) | `Deprecated` |
-
-## ImagePixelFormat
-Describes the image pixel format.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ImagePixelFormat` |
-| .Net | `enum Dynamsoft.DBR.EnumImagePixelFormat` |
-| JavaScript | `Dynamsoft.EnumImagePixelFormat` |
-| Python | `class EnumImagePixelFormat(IntEnum)` |
-| Java / Android | `class EnumImagePixelFormat` |
-| ObjC / Swift | `enum EnumImagePixelFormat` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description |
-| -------------------------- | ------------- | -------------- | ----- | ----------- |
-| IPF_BINARY | EnumImagePixelFormatBinary | binary | 0 | 0: Black, 1: White |
-| IPF_BINARYINVERTED | EnumImagePixelFormatBinaryInverted | binaryInverted | 1 | 0: Black, 1: White |
-| IPF_GRAYSCALED | EnumImagePixelFormatGrayScaled | grayScaled | 2 | 8 bit gray |
-| IPF_NV21 | EnumImagePixelFormatNV21 | NV21 | 3 | NV21 |
-| IPF_RGB_565 | EnumImagePixelFormatRGB_565 | RGB_565 | 4 | 16bit with RGB channel order stored in memory from high to low address |
-| IPF_RGB_555 | EnumImagePixelFormatRGB_555 | RGB_555 | 5 | 16bit with RGB channel order stored in memory from high to low address |
-| IPF_RGB_888 | EnumImagePixelFormatRGB_888 | RGB_888 | 6 | 24bit with RGB channel order stored in memory from high to low address |
-| IPF_ARGB_8888 | EnumImagePixelFormatARGB_8888 | ARGB_8888 | 7 | 32bit with ARGB channel order stored in memory from high to low address |
-| IPF_RGB_161616 | EnumImagePixelFormatRGB_161616 | RGB_161616 | 8 | 48bit with RGB channel order stored in memory from high to low address |
-| IPF_ARGB_16161616 | EnumImagePixelFormatARGB_16161616 | ARGB_16161616 | 9 | 64bit with ARGB channel order stored in memory from high to low address |
-| IPF_ABGR_8888 | EnumImagePixelFormatABGR_8888 | ABGR_8888 | 10 | 32bit with ABGR channel order stored in memory from high to low address |
-| IPF_ABGR_16161616 | EnumImagePixelFormatABGR_8888 | ABGR_8888 | 11 | 64bit with ABGR channel order stored in memory from high to low address |
-| IPF_BGR_888 | EnumImagePixelFormatBGR_888 | BGR_888 | 12 | 24bit with BGR channel order stored in memory from high to low address |
-
-## QRCodeErrorCorrectionLevel
-Describes the QR Code error correction level.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum QRCodeErrorCorrectionLevel` |
-| .Net | `enum Dynamsoft.DBR.EnumQRCodeErrorCorrectionLevel` |
-| Python | `class EnumQRCodeErrorCorrectionLevel(IntEnum)` |
-| JavaScript | `Dynamsoft.EnumQRCodeErrorCorrectionLevel` |
-| Java / Android | `class EnumQRCodeErrorCorrectionLevel` |
-| ObjC / Swift | `enum EnumQRCodeErrorCorrectionLevel` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description |
-| -------------------------- | ------------- | --------------- | ----- | ----------- |
-| QRECL_ERROR_CORRECTION_H | EnumQRCodeErrorCorrectionLevelErrorCorrectionH | errorCorrectionH | 0 | Error Correction Level H (high) |
-| QRECL_ERROR_CORRECTION_L | EnumQRCodeErrorCorrectionLevelErrorCorrectionL | errorCorrectionL | 1 | Error Correction Level L (low) |
-| QRECL_ERROR_CORRECTION_M | EnumQRCodeErrorCorrectionLevelErrorCorrectionM | errorCorrectionM | 2 | Error Correction Level M (medium-low) |
-| QRECL_ERROR_CORRECTION_Q | EnumQRCodeErrorCorrectionLevelErrorCorrectionQ | errorCorrectionQ | 3 | Error Correction Level Q (medium-high) |
-
-## PresetTemplate
-
-Describes the preset parameter setting templates.
-
-### Declaration
-
-| Language | Declaration |
-| -------- | ----------- |
-| Android | `class EnumPresetTemplate` |
-| Objc / Swift | `enum EnumPresetTemplate` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description |
-| -------------------------- | ------------- | --------------- | ----- | ----------- |
-| DEFAULT | EnumPresetTemplateDefault | default | 0 | The default parameter configuration for video barcode decoding. |
-| VIDEO_SINGLE_BARCODE | EnumPresetTemplateVideoSingleBarcode | videoSingleBarcode | 1 | The template for decoding a single barcode from the video. |
-| VIDEO_SPEED_FIRST | EnumPresetTemplateVideoSpeedFirst | videoSpeedFirst | 2 | The speed optimized template for video barcode decoding. |
-| VIDEO_READ_RATE_FIRST | EnumPresetTemplateVideoReadRateFirst | videoReadRateFirst | 3 | The read rate optimized template for video barcode decoding. |
-| IMAGE_SPEED_FIRST | EnumPresetTemplateImageSpeedFirst | imageSpeedFirst | 4 | The speed optimized template for image barcode decoding. |
-| IMAGE_READ_RATE_FIRST | EnumPresetTemplateImageReadRateFirst | imageReadRateFirst | 5 | The read rate optimized template for image barcode decoding. |
-| IMAGE_DEFAULT | EnumPresetTemplateImageDefault | imageDefault | 6 | The default parameter configuration for image barcode decoding. |
-
-## DM_ChargeWay
-
-`Deprecated`. It still works in this version but could be removed in the near future.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DM_ChargeWay` |
-| .Net | `enum Dynamsoft.DBR.EnumDMChargeWay` |
-| JavaScript | `N/A` |
-| Python | `class EnumDMChargeWay(IntEnum)` |
-| Java / Android | `class EnumDMChargeWay` |
-| ObjC / Swift | `enum EnumDMChargeWay` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description |
-| -------------------------- | ------------- | --------------- | ----- | ----------- |
-| DM_CW_AUTO | EnumDMChargeWayAuto | auto | 0 | The charge way automatically determined by the license server. |
-| DM_CW_DEVICE_COUNT | EnumDMChargeWayDeviceCount | deviceCount | 1 | Charges by the count of devices. |
-| DM_CW_SCAN_COUNT | EnumDMChargeWayScanCount | scanCount | 2 | Charges by the count of barcode scans.|
-| DM_CW_CONCURRENT_DEVICE_COUNT | EnumDMChargeWayConcurrentDeviceCount | concurrentDeviceCount | 3 | Charges by the count of concurrent devices. |
-| DM_CW_APP_DOMAIN_COUNT | EnumDMChargeWayAppDomainCount | appDomainCount | 6 | Charges by the count of app domains. |
-| DM_CW_ACTIVE_DEVICE_COUNT | EnumDMChargeWayActiveDeviceCount | activeDeviceCount | 8 | Charges by the count of active devices. |
-| DM_CW_INSTANCE_COUNT | EnumDMChargeWayInstanceCount | instanceCount | 9 | Charges by the count of instances. |
-| DM_CW_CONCURRENT_INSTANCE_COUNT | EnumDMChargeWayConcurrentInstanceCount | concurrentInstanceCount | 10 | Charges by the count of concurrent instances. |
-
-## DM_DeploymentType
-
-`Deprecated`. It still works in this version but could be removed in the near future.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DM_DeploymentType` |
-| .Net | `enum Dynamsoft.DBR.EnumDMDeploymentType` |
-| JavaScript | `N/A` |
-| Python | `class EnumDMDeploymentType(IntEnum)` |
-| Java | `class EnumDMDeploymentType` |
-| Android | `N/A` |
-| ObjC / Swift | `N/A` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| DM_DT_SERVER | N/A | 1 | Server deployment type |
-| DM_DT_DESKTOP | N/A | 2 | Desktop |
-| DM_DT_EMBEDDED_DEVICE | N/A | 6 | Embedded device deployment type |
-| DM_DT_OEM | N/A | 7 | OEM deployment type |
-
-## DM_LicenseModule
-
-`Deprecated`. It still works in this version but could be removed in the near future.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DM_LicenseModule` |
-| .Net | `enum Dynamsoft.DBR.EnumDMLicenseModule` |
-| JavaScript | `N/A` |
-| Python | `class EnumDMLicenseModule(IntEnum)` |
-| Java / Android | `class EnumDMLicenseModule` |
-| ObjC / Swift | `enum EnumDMLicenseModule` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description |
-| -------------------------- | ------------- | --------------- | ----- | ----------- |
-| DM_LM_ONED | EnumDMLicenseModuleONED | ONED | 1 | One-D barcodes license module |
-| DM_LM_QR_CODE | EnumDMLicenseModuleQRCODE | QRCODE | 2 | QR Code barcodes license module |
-| DM_LM_PDF417 | EnumDMLicenseModulePDF417 | PDF417 | 3 | PDF417 barcodes license module |
-| DM_LM_DATAMATRIX | EnumDMLicenseModuleDATAMATRIX | DATAMATRIX | 4 | DATAMATRIX barcodes license module |
-| DM_LM_AZTEC | EnumDMLicenseModuleAZTEC | AZTEC | 5 | Aztec barcodes license module |
-| DM_LM_MAXICODE | EnumDMLicenseModuleMAXICODE | MAXICODE | 6 | MAXICODE barcodes license module|
-| DM_LM_PATCHCODE | EnumDMLicenseModulePatchCode | patchCode | 7 |Patch code barcodes license module |
-| DM_LM_GS1_DATABAR | EnumDMLicenseModuleGS1DATABAR | GS1DATABAR | 8 | GS1 Databar barcodes license module |
-| DM_LM_GS1_COMPOSITE | EnumDMLicenseModuleGS1COMPOSITE | GS1COMPOSITE | 9 | GS1 Composite Code barcodes license module |
-| DM_LM_POSTALCODE | EnumDMLicenseModulePOSTALCODE | POSTALCODE | 10 | Postal code barcodes license module |
-| DM_LM_DOTCODE | EnumDMLicenseModuleDOTCODE | DOTCODE | 11 | DotCode barcodes license module|
-| DM_LM_DDM_LM_INTERMEDIATE_RESULTATAMATRIX | EnumDMLicenseModuleINTERMEDIATERESULT | INTERMEDIATERESULT | 12 | Intermediate result license module |
-| DM_LM_DPM | EnumDMLicenseModuleDPM | DPM | 13 |DATAMATRIX DPM (Direct Part Marking) license module |
-| DM_LM_NONSTANDARD_BARCODE | EnumDMLicenseModuleNONSTANDARDBARCODE | NONSTANDARDBARCODE | 16 | Nonstandard barcodes license module|
-
-## DM_UUIDGenerationMethod
-
-`Deprecated`. It still works in this version but could be removed in the near future.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DM_UUIDGenerationMethod` |
-| .Net | `enum Dynamsoft.DBR.EnumDMUUIDGenerationMethod` |
-| JavaScript | `N/A` |
-| Python | `class EnumDMUUIDGenerationMethod(IntEnum)` |
-| Java / Android | `class EnumDMUUIDGenerationMethod` |
-| ObjC / Swift | `enum EnumDMUUIDGenerationMethod` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description |
-| -------------------------- | ------------- | --------------- | ----- | ----------- |
-| DM_UUIDGM_RANDOM | EnumDMUUIDGenerationMethodRandom | random | 1 | Generates UUID with random values. |
-| DM_UUIDGM_HARDWARE | EnumDMUUIDGenerationMethodHardware | hardware | 2 | Generates UUID based on hardware info. |
-
-## Product
-
-`Deprecated`. It still works in this version but could be removed in the near future.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum Product` |
-| .Net | `enum Dynamsoft.EnumProduct` |
-| JavaScript | `Dynamsoft.EnumProduct` |
-| Python | `class EnumProduct(IntEnum)` |
-| Java / Android | `class EnumProduct` |
-| ObjC / Swift | `enum EnumProduct` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description |
-| -------------------------- | ------------- | --------------- | ----- | ----------- |
-| PROD_DBR | EnumProductDBR | DBR | 0x0001 | Dynamsoft Barcode Reader |
-| PROD_DLR | EnumProductDLR | DLR | 0x0002 | Dynamsoft Label Recognition |
-| PROD_DWT | EnumProductDWT | DWT | 0x0004 | Dynamic Web Twain |
-| PROD_DCE | EnumProductDCE | DCE | 0x0008 | Dynamsoft Camera Enhancer |
-| PROD_DPS | EnumProductDPS | DPS | 0x0010 | Dynamsoft Panorama |
-| PROD_ALL | EnumProductALL | ALL | 0xFFFF | All Dynamsoft products |
diff --git a/parameters/enum/parameter-mode-enums-v7.6.0.md b/parameters/enum/parameter-mode-enums-v7.6.0.md
deleted file mode 100644
index 436dab1b..00000000
--- a/parameters/enum/parameter-mode-enums-v7.6.0.md
+++ /dev/null
@@ -1,616 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Parameter Mode Enumerations
-description: This article shows Parameter Mode Enumerations of Dynamsoft Barcode Reader V7.6.
-keywords: AccompanyingTextRecognitionMode, BarcodeColourMode, BarcodeComplementMode, BinarizationMode, ColourClusteringMode, ColourConversionMode, ConflictMode, DeformationResistingMode, DPMCodeReadingMode, GrayscaleTransformationMode, ImagePreprocessingMode, LocalizationMode, PDFReadingMode, RegionPredetectionMode, ScaleUpMode, TerminatePhase, TextAssistedCorrectionMode, TextFilterMode, TextureDetectionMode, parameter mode enumeration, enumeration
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-permalink: /parameters/enum/parameter-mode-enums-v7.6.0.html
----
-
-# Parameter Mode Enumeration
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`AccompanyingTextRecognitionMode`](#accompanyingtextrecognitionmode) | Describes the accompanying text recognition mode. |
- | [`BarcodeColourMode`](#barcodecolourmode) | Describes the barcode colour mode. |
- | [`BarcodeComplementMode`](#barcodecomplementmode) | Describes the barcode complement mode. |
- | [`BinarizationMode`](#binarizationmode) | Describes the binarization mode. |
- | [`ColourClusteringMode`](#colourclusteringmode) | Describes the colour clustering mode. |
- | [`ColourConversionMode`](#colourconversionmode) | Describes the colour conversion mode. |
- | [`ConflictMode`](#conflictmode) | Describes the conflict mode. |
- | [`DeformationResistingMode`](#deformationresistingmode) | Describes the deformation resisting mode. |
- | [`DPMCodeReadingMode`](#dpmcodereadingmode) | Describes the DPM code reading mode. |
- | [`GrayscaleTransformationMode`](#grayscaletransformationmode) | Describes the grayscale transformation mode. |
- | [`ImagePreprocessingMode`](#imagepreprocessingmode) | Describes the image preprocessing mode. |
- | [`LocalizationMode`](#localizationmode) | Describes the localization mode. |
- | [`PDFReadingMode`](#pdfreadingmode) | Describes the PDF reading mode. |
- | [`RegionPredetectionMode`](#regionpredetectionmode) | Describes the region predetection mode. |
- | [`ScaleUpMode`](#scaleupmode) | Describes the scale up mode. |
- | [`TerminatePhase`](#terminatephase) | Describes the terminate phase. |
- | [`TextAssistedCorrectionMode`](#textassistedcorrectionmode) | Describes the text assisted correction mode. |
- | [`TextFilterMode`](#textfiltermode) | Describes the text filter mode. |
- | [`TextureDetectionMode`](#texturedetectionmode) | Describes the texture detection mode. |
-
-
-
-
-## AccompanyingTextRecognitionMode
-Describes the accompanying text recognition mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum AccompanyingTextRecognitionMode` |
-| .Net | `enum Dynamsoft.Barcode.EnumAccompanyingTextRecognitionMode` |
-| JavaScript | `Dynamsoft.EnumAccompanyingTextRecognitionMode` |
-| Python | `class EnumAccompanyingTextRecognitionMode(IntEnum)` |
-| Java / Android | `class EnumAccompanyingTextRecognitionMode` |
-| ObjC / Swift | `enum EnumAccompanyingTextRecognitionMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| ATRM_SKIP | EnumAccompanyingTextRecognitionModeSkip | 0x00 | Skips the accompanying text recognition. |
-| ATRM_GENERAL | EnumAccompanyingTextRecognitionModeGeneral | 0x01 | Recognizes accompanying texts using the general algorithm. Check arguments of [`AccompanyingTextRecognitionModes`]({{ site.parameters_reference }}accompanying-text-recognition-modes.html) for available argument settings. |
-
-
-
-
-
-
-
-## BarcodeColourMode
-Describes the barcode colour mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum BarcodeColourMode` |
-| .Net | `enum Dynamsoft.Barcode.EnumBarcodeColourMode` |
-| JavaScript | `Dynamsoft.EnumBarcodeColourMode` |
-| Python | `class EnumBarcodeColourMode(IntEnum)` |
-| Java / Android | `class EnumBarcodeColourMode` |
-| ObjC / Swift | `enum EnumBarcodeColourMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| BICM_SKIP | EnumBarcodeColourModeSkip | 0x00 | Skips the barcode colour operation. |
-| BICM_DARK_ON_LIGHT | EnumBarcodeColourModeDarkOnLight | 0x01 | Dark items on a light background. Check arguments of [`BarcodeColourModes`]({{ site.parameters_reference }}barcode-colour-modes.html) for available argument settings. |
-| BICM_LIGHT_ON_DARK | EnumBarcodeColourModeLightOnDark | 0x02 | Light items on a dark background. **Not supported yet**. Check arguments of [`BarcodeColourModes`]({{ site.parameters_reference }}barcode-colour-modes.html) for available argument settings. |
-| BICM_DARK_ON_DARK | EnumBarcodeColourModeDarkOnDark | 0x04 | Dark items on a dark background. **Not supported yet**. Check arguments of [`BarcodeColourModes`]({{ site.parameters_reference }}barcode-colour-modes.html) for available argument settings. |
-| BICM_LIGHT_ON_LIGHT | EnumBarcodeColourModeLightOnLight | 0x08 | Light items on a light background. **Not supported yet**. Check arguments of [`BarcodeColourModes`]({{ site.parameters_reference }}barcode-colour-modes.html) for available argument settings. |
-| BICM_DARK_LIGHT_MIXED | EnumBarcodeColourModeDarkLightMixed | 0x10 | The background is mixed by dark and light. **Not supported yet**. Check arguments of [`BarcodeColourModes`]({{ site.parameters_reference }}barcode-colour-modes.html) for available argument settings. |
-| BICM_DARK_ON_LIGHT_DARK_SURROUNDING | EnumBarcodeColourModeDarkOnLightDarkSurrounding | 0x20 | Dark item on a light background surrounded by dark. Check arguments of [`BarcodeColourModes`]({{ site.parameters_reference }}barcode-colour-modes.html) for available argument settings. |
-
-
-
-
-
-
-
-## BarcodeComplementMode
-Describes the barcode complement mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum BarcodeComplementMode` |
-| .Net | `enum Dynamsoft.Barcode.EnumBarcodeComplementMode` |
-| JavaScript | `Dynamsoft.EnumBarcodeComplementMode` |
-| Python | `class EnumBarcodeComplementMode(IntEnum)` |
-| Java / Android | `class EnumBarcodeComplementMode` |
-| ObjC / Swift | `enum EnumBarcodeComplementMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| BCM_SKIP | EnumBarcodeComplementModeSkip | 0x00 | Skips the barcode complement. |
-| BCM_AUTO | EnumBarcodeComplementModeAuto | 0x01 | **Not supported yet.** |
-| BCM_GENERAL | EnumBarcodeComplementModeGeneral | 0x02 | Complements the barcode using the general algorithm. |
-
-
-
-
-
-
-
-## BinarizationMode
-Describes the binarization mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum BinarizationMode` |
-| .Net | `enum Dynamsoft.Barcode.EnumBinarizationMode` |
-| JavaScript | `Dynamsoft.EnumBinarizationMode` |
-| Python | `class EnumBinarizationMode(IntEnum)` |
-| Java / Android | `class EnumBinarizationMode` |
-| ObjC / Swift | `enum EnumBinarizationMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| BM_SKIP | EnumBinarizationModeSkip | 0x00 | Skips the binarization. |
-| BM_AUTO | EnumBinarizationModeAuto | 0x01 | **Not supported yet.** |
-| BM_LOCAL_BLOCK | EnumBinarizationModeLocalBlock | 0x02 | Binarizes the image based on the local block. Check arguments of [`BinarizationModes`]({{ site.parameters_reference }}binarization-modes.html) for available argument settings. |
-
-
-
-
-
-
-
-## ColourClusteringMode
-Describes the colour clustering mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ColourClusteringMode` |
-| .Net | `enum Dynamsoft.Barcode.EnumColourClusteringMode` |
-| JavaScript | `Dynamsoft.EnumColourClusteringMode` |
-| Python | `class EnumColourClusteringMode(IntEnum)` |
-| Java / Android | `class EnumColourClusteringMode` |
-| ObjC / Swift | `enum EnumColourClusteringMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| CCM_SKIP | EnumColourClusteringModeSkip | 0x00 | Skips the colour clustering. |
-| CCM_AUTO | EnumColourClusteringModeAuto | 0x01 | **Not supported yet.** |
-| CCM_GENERAL_HSV | EnumColourClusteringModeGeneralHSV | 0x02 | Clusters colours using the general algorithm based on HSV. Check arguments of [`ColourClusteringModes`]({{ site.parameters_reference }}colour-clustering-modes.html) for available argument settings. |
-
-
-
-
-
-
-
-## ColourConversionMode
-Describes the colour conversion mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ColourConversionMode` |
-| .Net | `enum Dynamsoft.Barcode.EnumColourConversionMode` |
-| JavaScript | `Dynamsoft.EnumColourConversionMode` |
-| Python | `class EnumColourConversionMode(IntEnum)` |
-| Java / Android | `class EnumColourConversionMode` |
-| ObjC / Swift | `enum EnumColourConversionMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| CICM_SKIP | EnumColourConversionModeSkip | 0x00 | Skip the colour conversion. |
-| CICM_GENERAL | EnumColourConversionModeGeneral | 0x01 | Converts a colour image to a grayscale image using the general algorithm. Check arguments of [`ColourConversionModes`]({{ site.parameters_reference }}colour-conversion-modes.html) for available argument settings. |
-
-
-
-
-
-
-
-## ConflictMode
-Describes the conflict mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ConflictMode` |
-| .Net | `enum Dynamsoft.Barcode.EnumConflictMode` |
-| JavaScript | `Dynamsoft.EnumConflictMode` |
-| Python | `class EnumConflictMode(IntEnum)` |
-| Java / Android | `class EnumConflictMode` |
-| ObjC / Swift | `enum EnumConflictMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| CM_IGNORE | EnumConflictModeIgnore | 0x01 | Ignores new settings and inherits the previous settings. |
-| CM_OVERWRITE | EnumConflictModeOverwrite | 0x02 | Overwrites the old settings with new settings. |
-
-
-
-
-
-
-
-## DeformationResistingMode
-Describes the deformation resisting mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DeformationResistingMode` |
-| .Net | `enum Dynamsoft.Barcode.EnumDeformationResistingMode` |
-| JavaScript | `Dynamsoft.EnumDeformationResistingMode` |
-| Python | `class EnumDeformationResistingMode(IntEnum)` |
-| Java / Android | `class EnumDeformationResistingMode` |
-| ObjC / Swift | `enum EnumDeformationResistingMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| DRM_SKIP | EnumDeformationResistingModeSkip | 0x00 | Skip the deformation resisting. |
-| DRM_AUTO | EnumDeformationResistingModeAuto | 0x01 | **Not supported yet.** |
-| DRM_GENERAL | EnumDeformationResistingModeGeneral | 0x02 | Resists deformation using the general algorithm. Check arguments of [`DeformationResistingModes`]({{ site.parameters_reference }}deformation-resisting-modes.html) for available argument settings.|
-
-
-
-
-
-
-
-## DPMCodeReadingMode
-Describes the DPM code reading mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DPMCodeReadingMode` |
-| .Net | `enum Dynamsoft.Barcode.EnumDPMCodeReadingMode` |
-| JavaScript | `Dynamsoft.EnumDPMCodeReadingMode` |
-| Python | `class EnumDPMCodeReadingMode(IntEnum)` |
-| Java / Android | `class EnumDPMCodeReadingMode` |
-| ObjC / Swift | `enum EnumDPMCodeReadingMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| DPMCRM_SKIP | EnumDPMCodeReadingModeSkip | 0x00 | Skip the DPM code reading. |
-| DPMCRM_AUTO | EnumDPMCodeReadingModeAuto | 0x01 | **Not supported yet.** |
-| DPMCRM_GENERAL | EnumDPMCodeReadingModeGeneral | 0x02 | Reads DPM code using the general algorithm. |
-
-
-
-
-
-
-
-## GrayscaleTransformationMode
-Describes the grayscale transformation mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum GrayscaleTransformationMode` |
-| .Net | `enum Dynamsoft.Barcode.EnumGrayscaleTransformationMode` |
-| JavaScript | `Dynamsoft.EnumGrayscaleTransformationMode` |
-| Python | `class EnumGrayscaleTransformationMode(IntEnum)` |
-| Java / Android | `class EnumGrayscaleTransformationMode` |
-| ObjC / Swift | `enum EnumGrayscaleTransformationMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| GTM_SKIP | EnumGrayscaleTransformationModeSkip | 0x00 | Skips grayscale transformation. |
-| GTM_INVERTED | EnumGrayscaleTransformationModeInverted | 0x01 | Transforms to inverted grayscale. Recommended for light on dark images. |
-| GTM_ORIGINAL | EnumGrayscaleTransformationModeOriginal | 0x02 | Keeps the original grayscale. Recommended for dark on light images. |
-
-
-
-
-
-
-
-## ImagePreprocessingMode
-Describes the image preprocessing mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ImagePreprocessingMode` |
-| .Net | `enum Dynamsoft.Barcode.EnumImagePreprocessingMode` |
-| JavaScript | `Dynamsoft.EnumImagePreprocessingMode` |
-| Python | `class EnumImagePreprocessingMode(IntEnum)` |
-| Java / Android | `class EnumImagePreprocessingMode` |
-| ObjC / Swift | `enum EnumImagePreprocessingMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| IPM_SKIP | EnumImagePreprocessingModeSkip | 0x00 | Skips image preprocessing. |
-| IPM_AUTO | EnumImagePreprocessingModeAuto | 0x01 | **Not supported yet.** |
-| IPM_GENERAL | EnumImagePreprocessingModeGeneral | 0x02 | Takes the unpreprocessed image for following operations. |
-| IPM_GRAY_EQUALIZE | EnumImagePreprocessingModeGrayEqualize | 0x04 | Preprocesses the image using the gray equalization algorithm. Check arguments of [`ImagePreprocessingModes`]({{ site.parameters_reference }}image-preprocessing-modes.html) for available argument settings. |
-| IPM_GRAY_SMOOTH | EnumImagePreprocessingModeGraySmooth | 0x08 | Preprocesses the image using the gray smoothing algorithm. Check arguments of [`ImagePreprocessingModes`]({{ site.parameters_reference }}image-preprocessing-modes.html) for available argument settings. |
-| IPM_SHARPEN_SMOOTH | EnumImagePreprocessingModeSharpenSmooth | 0x10 | Preprocesses the image using the sharpening and smoothing algorithm. Check arguments of [`ImagePreprocessingModes`]({{ site.parameters_reference }}image-preprocessing-modes.html) for available argument settings. |
-| IPM_MORPHOLOGY | EnumImagePreprocessingModeMorphology | 0x20 | Preprocesses the image using the morphology algorithm. Check arguments of [`ImagePreprocessingModes`]({{ site.parameters_reference }}image-preprocessing-modes.html) for available argument settings. |
-
-
-
-
-
-
-
-## LocalizationMode
-Describes the localization mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum LocalizationMode` |
-| .Net | `enum Dynamsoft.Barcode.EnumLocalizationMode` |
-| JavaScript | `Dynamsoft.EnumLocalizationMode` |
-| Python | `class EnumLocalizationMode(IntEnum)` |
-| Java / Android | `class EnumLocalizationMode` |
-| ObjC / Swift | `enum EnumLocalizationMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| LM_SKIP | EnumLocalizationModeSkip | 0x00 | Skips localization. |
-| LM_AUTO | EnumLocalizationModeAuto | 0x01 | Not supported yet. |
-| LM_CONNECTED_BLOCKS | EnumLocalizationModeConnectedBlocks | 0x02 | Localizes barcodes by searching for connected blocks. This algorithm usually gives best result and it is recommended to set ConnectedBlocks to the highest priority. |
-| LM_STATISTICS | EnumLocalizationModeStatistics | 0x04 | Localizes barcodes by groups of contiguous black-white regions. This is optimized for QRCode and DataMatrix. |
-| LM_LINES | EnumLocalizationModeLines | 0x08 | Localizes barcodes by searching for groups of lines. This is optimized for 1D and PDF417 barcodes. |
-| LM_SCAN_DIRECTLY | EnumLocalizationModeScanDirectly | 0x10 | Localizes barcodes quickly. This mode is recommended in interactive scenario. Check arguments of [`LocalizationModes`]({{ site.parameters_reference }}localization-modes.html) for available argument settings. |
-| LM_STATISTICS_MARKS | EnumLocalizationModeStatisticsMarks | 0x20 | Localizes barcodes by groups of marks.This is optimized for DPM codes. |
-| LM_STATISTICS_POSTAL_CODE | EnumLocalizationModeStatisticsPostalCode | 0x40 | Localizes barcodes by groups of connected blocks and lines.This is optimized for postal codes. |
-
-
-
-
-
-
-
-## PDFReadingMode
-Describes the PDF reading mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum PDFReadingMode` |
-| .Net | `enum Dynamsoft.Barcode.EnumPDFReadingMode` |
-| JavaScript | `Dynamsoft.EnumPDFReadingMode` |
-| Python | `class EnumPDFReadingMode(IntEnum)` |
-| Java / Android | `class EnumPDFReadingMode` |
-| ObjC / Swift | `enum EnumPDFReadingMode` |
-
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| PDFRM_AUTO | EnumPDFReadingModeAuto | 0x01 | Lets the library choose the reading mode automatically. |
-| PDFRM_VECTOR | EnumPDFReadingModeVector | 0x02 | Detects barcode from vector data in PDF file. |
-| PDFRM_RASTER | EnumPDFReadingModeRaster | 0x04 | Converts the PDF file to image(s) first, then perform barcode recognition. |
-
-
-
-
-
-
-## RegionPredetectionMode
-Describes the region predetection mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum RegionPredetectionMode` |
-| .Net | `enum Dynamsoft.Barcode.EnumRegionPredetectionMode` |
-| JavaScript | `Dynamsoft.EnumRegionPredetectionMode` |
-| Python | `class EnumRegionPredetectionMode(IntEnum)` |
-| Java / Android | `class EnumRegionPredetectionMode` |
-| ObjC / Swift | `enum EnumRegionPredetectionMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| RPM_SKIP | EnumRegionPredetectionModeSkip | 0x00 | Skips region detection. |
-| RPM_AUTO | EnumRegionPredetectionModeAuto | 0x01 | Lets the library choose an algorithm automatically to detect region. |
-| RPM_GENERAL | EnumRegionPredetectionModeGeneral | 0x02 | Takes the whole image as a region. |
-| RPM_GENERAL_RGB_CONTRAST | EnumRegionPredetectionModeGeneralRGBContrast | 0x04 | Detects region using the general algorithm based on RGB colour contrast. Check arguments of [`RegionPredetectionModes`]({{ site.parameters_reference }}region-predetection-modes.html) for available argument settings. |
-| RPM_GENERAL_GRAY_CONTRAST | EnumRegionPredetectionModeGeneralGrayContrast | 0x08 | Detects region using the general algorithm based on gray contrast. Check arguments of [`RegionPredetectionModes`]({{ site.parameters_reference }}region-predetection-modes.html) for available argument settings. |
-| RPM_GENERAL_HSV_CONTRAST | EnumRegionPredetectionModeGeneralHSVContrast | 0x10 | Detects region using the general algorithm based on HSV colour contrast. Check arguments of [`RegionPredetectionModes`]({{ site.parameters_reference }}region-predetection-modes.html) for available argument settings. |
-
-
-
-
-
-
-
-## ScaleUpMode
-Describes the scale up mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ScaleUpMode` |
-| .Net | `enum Dynamsoft.Barcode.EnumScaleUpMode` |
-| JavaScript | `Dynamsoft.EnumScaleUpMode` |
-| Python | `class EnumScaleUpMode(IntEnum)` |
-| Java / Android | `class EnumScaleUpMode` |
-| ObjC / Swift | `enum EnumScaleUpMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| SUM_SKIP | EnumScaleUpModeSkip | 0x00 | Skip the scale-up process. |
-| SUM_AUTO | EnumScaleUpModeAuto | 0x01 | The library chooses an interpolation method automatically to scale up. |
-| SUM_LINEAR_INTERPOLATION | EnumScaleUpModeLinearInterpolation | 0x02 | Scales up using the linear interpolation method. Check arguments of [`ScaleUpModes`]({{ site.parameters_reference }}scale-up-modes.html) for available argument settings. |
-| SUM_NEAREST_NEIGHBOUR_INTERPOLATION | EnumScaleUpModeNearestNeighbourInterpolation | 0x04 | Scales up using the nearest-neighbour interpolation method. Check arguments of [`ScaleUpModes`]({{ site.parameters_reference }}scale-up-modes.html) for available argument settings. |
-
-
-
-
-
-
-
-## TerminatePhase
-Describes the terminate phase.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum TerminatePhase` |
-| .Net | `enum Dynamsoft.Barcode.EnumTerminatePhase` |
-| JavaScript | `Dynamsoft.EnumTerminatePhase` |
-| Python | `class EnumTerminatePhase(IntEnum)` |
-| Java / Android | `class EnumTerminatePhase` |
-| ObjC / Swift | `enum EnumTerminatePhase` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| TP_REGION_PREDETECTED | EnumTerminatePhasePredetected | 0x01 | Exits the barcode reading algorithm after the region predetection is done. |
-| TP_IMAGE_PREPROCESSED | EnumTerminatePhasePreprocecessed | 0x02 | Exits the barcode reading algorithm after the region predetection and image pre-processing is done. |
-| TP_IMAGE_BINARIZED | EnumTerminatePhaseBinarized | 0x04 | Exits the barcode reading algorithm after the region predetection, image pre-processing, and image binarization are done. |
-| TP_BARCODE_LOCALIZED | EnumTerminatePhasesLocalized | 0x08 | Exits the barcode reading algorithm after the region predetection, image pre-processing, image binarization, and barcode localization are done. |
-| TP_BARCODE_TYPE_DETERMINED | EnumTerminatePhaseDetermined | 0x10 | Exits the barcode reading algorithm after the region predetection, image pre-processing, image binarization, barcode localization, and barcode type determining are done. |
-| TP_BARCODE_RECOGNIZED | EnumTerminatePhaseRecognized | 0x20 | Exits the barcode reading algorithm after the region predetection, image pre-processing, image binarization, barcode localization, barcode type determining, and barcode recognition are done. |
-
-
-
-
-
-
-
-## TextAssistedCorrectionMode
-Describes the text assisted correction mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum TextAssistedCorrectionMode` |
-| .Net | `enum Dynamsoft.Barcode.EnumTextAssistedCorrectionMode` |
-| JavaScript | `Dynamsoft.EnumTextAssistedCorrectionMode` |
-| Python | `class EnumTextAssistedCorrectionMode(IntEnum)` |
-| Java / Android | `class EnumTextAssistedCorrectionMode` |
-| ObjC / Swift | `enum EnumTextAssistedCorrectionMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| TACM_SKIP | EnumTextAssistedCorrectionModeSkip | 0x00 | Skips the text assisted correction. |
-| TACM_AUTO | EnumTextAssistedCorrectionModeAuto | 0x01 | **Not supported yet.** |
-| TACM_VERIFYING | EnumTextAssistedCorrectionModeVerifying | 0x02 | Uses the accompanying text to verify the decoded barcode result. Check arguments of [`TextAssistedCorrectionMode`]({{ site.parameters_reference }}text-assisted-correction-mode.html) for available argument settings. |
-| TACM_VERIFYING_PATCHING | EnumTextAssistedCorrectionModeVerifyingPatching | 0x04 | Uses the accompanying text to verify and patch the decoded barcode result. Check arguments of [`TextAssistedCorrectionMode`]({{ site.parameters_reference }}text-assisted-correction-mode.html) for available argument settings. |
-
-
-
-
-
-
-
-## TextFilterMode
-Describes the text filter mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum TextFilterMode` |
-| .Net | `enum Dynamsoft.Barcode.EnumTextFilterMode` |
-| JavaScript | `Dynamsoft.EnumTextFilterMode` |
-| Python | `class EnumTextFilterMode(IntEnum)` |
-| Java / Android | `class EnumTextFilterMode` |
-| ObjC / Swift | `enum EnumTextFilterMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| TFM_SKIP | EnumTextFilterModeSkip | 0x00 | Skip the text filtering. |
-| TFM_AUTO | EnumTextFilterModeAuto | 0x01 | **Not supported yet.** |
-| TFM_GENERAL_CONTOUR | EnumTextFilterModeGeneralContour | 0x02 | Filters text using the general algorithm based on contour. Check arguments of [`TextFilterModes`]({{ site.parameters_reference }}text-filter-modes.html) for available argument settings. |
-
-
-
-
-
-
-
-## TextureDetectionMode
-Describes the texture detection mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum TextureDetectionMode` |
-| .Net | `enum Dynamsoft.Barcode.EnumTextureDetectionMode` |
-| JavaScript | `Dynamsoft.EnumTextureDetectionMode` |
-| Python | `class EnumTextureDetectionMode(IntEnum)` |
-| Java / Android | `class EnumTextureDetectionMode` |
-| ObjC / Swift | `enum EnumTextureDetectionMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| TDM_SKIP | EnumTextureDetectionModeSkip | 0x00 | Skips texture detection. |
-| TDM_AUTO | EnumTextureDetectionModeAuto | 0x01 | Not supported yet. |
-| TDM_GENERAL_WIDTH_CONCENTRATION | EnumTextureDetectionModeGeneralWidthConcentration | 0x02 | Detects texture using the general algorithm. Check arguments of [`TextureDetectionModes`]({{ site.parameters_reference }}texture-detection-modes.html) for available argument settings. |
-
-
diff --git a/parameters/enum/parameter-mode-enums-v8.1.2.md b/parameters/enum/parameter-mode-enums-v8.1.2.md
deleted file mode 100644
index 0a46ad4c..00000000
--- a/parameters/enum/parameter-mode-enums-v8.1.2.md
+++ /dev/null
@@ -1,624 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Parameter Mode Enumerations
-description: This article shows Parameter Mode Enumerations of Dynamsoft Barcode Reader v8.1.2.
-keywords: BarcodeColourMode, BarcodeComplementMode, BinarizationMode, ColourClusteringMode, ColourConversionMode, ConflictMode, DeblurMode, DeformationResistingMode, DPMCodeReadingMode, GrayscaleTransformationMode, ImagePreprocessingMode, LocalizationMode, PDFReadingMode, RegionPredetectionMode, ScaleUpMode, TerminatePhase, TextAssistedCorrectionMode, TextFilterMode, TextureDetectionMode, parameter mode enumeration, enumeration
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-permalink: /parameters/enum/parameter-mode-enums-v8.1.2.html
----
-
-# Dynamsoft Barcode Reader Enumeration - Parameter Mode Enumeration
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`BarcodeColourMode`](#barcodecolourmode) | Describes the barcode colour mode. |
- | [`BarcodeComplementMode`](#barcodecomplementmode) | Describes the barcode complement mode. |
- | [`BinarizationMode`](#binarizationmode) | Describes the binarization mode. |
- | [`ColourClusteringMode`](#colourclusteringmode) | Describes the colour clustering mode. |
- | [`ColourConversionMode`](#colourconversionmode) | Describes the colour conversion mode. |
- | [`ConflictMode`](#conflictmode) | Describes the conflict mode. |
- | [`DeblurMode`](#deblurmode) | Describes the deblur mode. |
- | [`DeformationResistingMode`](#deformationresistingmode) | Describes the deformation resisting mode. |
- | [`DPMCodeReadingMode`](#dpmcodereadingmode) | Describes the DPM code reading mode. |
- | [`GrayscaleTransformationMode`](#grayscaletransformationmode) | Describes the grayscale transformation mode. |
- | [`ImagePreprocessingMode`](#imagepreprocessingmode) | Describes the image preprocessing mode. |
- | [`LocalizationMode`](#localizationmode) | Describes the localization mode. |
- | [`PDFReadingMode`](#pdfreadingmode) | Describes the PDF reading mode. |
- | [`RegionPredetectionMode`](#regionpredetectionmode) | Describes the region predetection mode. |
- | [`ScaleUpMode`](#scaleupmode) | Describes the scale up mode. |
- | [`TerminatePhase`](#terminatephase) | Describes the terminate phase. |
- | [`TextAssistedCorrectionMode`](#textassistedcorrectionmode) | Describes the text assisted correction mode. |
- | [`TextFilterMode`](#textfiltermode) | Describes the text filter mode. |
- | [`TextureDetectionMode`](#texturedetectionmode) | Describes the texture detection mode. |
-
-
----
-
-
-## BarcodeColourMode
-Describes the barcode colour mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum BarcodeColourMode` |
-| .Net | `enum Dynamsoft.DBR.EnumBarcodeColourMode` |
-| JavaScript | `Dynamsoft.DBR.EnumBarcodeColourMode` |
-| Python | `class EnumBarcodeColourMode(IntEnum)` |
-| Java / Android | `class EnumBarcodeColourMode` |
-| ObjC / Swift | `enum EnumBarcodeColourMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| BICM_SKIP | EnumBarcodeColourModeSkip | 0x00 | Skips the barcode colour operation. |
-| BICM_DARK_ON_LIGHT | EnumBarcodeColourModeDarkOnLight | 0x01 | Dark items on a light background. Check arguments of [`BarcodeColourModes`]({{ site.parameters_reference }}barcode-colour-modes.html) for available argument settings. |
-| BICM_LIGHT_ON_DARK | EnumBarcodeColourModeLightOnDark | 0x02 | Light items on a dark background. **Not supported yet**. Check arguments of [`BarcodeColourModes`]({{ site.parameters_reference }}barcode-colour-modes.html) for available argument settings. |
-| BICM_DARK_ON_DARK | EnumBarcodeColourModeDarkOnDark | 0x04 | Dark items on a dark background. **Not supported yet**. Check arguments of [`BarcodeColourModes`]({{ site.parameters_reference }}barcode-colour-modes.html) for available argument settings. |
-| BICM_LIGHT_ON_LIGHT | EnumBarcodeColourModeLightOnLight | 0x08 | Light items on a light background. **Not supported yet**. Check arguments of [`BarcodeColourModes`]({{ site.parameters_reference }}barcode-colour-modes.html) for available argument settings. |
-| BICM_DARK_LIGHT_MIXED | EnumBarcodeColourModeDarkLightMixed | 0x10 | The background is mixed by dark and light. **Not supported yet**. Check arguments of [`BarcodeColourModes`]({{ site.parameters_reference }}barcode-colour-modes.html) for available argument settings. |
-| BICM_DARK_ON_LIGHT_DARK_SURROUNDING | EnumBarcodeColourModeDarkOnLightDarkSurrounding | 0x20 | Dark item on a light background surrounded by dark. Check arguments of [`BarcodeColourModes`]({{ site.parameters_reference }}barcode-colour-modes.html) for available argument settings. |
-
-
-
-
-
-
-
-## BarcodeComplementMode
-Describes the barcode complement mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum BarcodeComplementMode` |
-| .Net | `enum Dynamsoft.DBR.EnumBarcodeComplementMode` |
-| JavaScript | `Dynamsoft.DBR.EnumBarcodeComplementMode` |
-| Python | `class EnumBarcodeComplementMode(IntEnum)` |
-| Java / Android | `class EnumBarcodeComplementMode` |
-| ObjC / Swift | `enum EnumBarcodeComplementMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| BCM_SKIP | EnumBarcodeComplementModeSkip | 0x00 | Skips the barcode complement. |
-| BCM_AUTO | EnumBarcodeComplementModeAuto | 0x01 | **Not supported yet.** |
-| BCM_GENERAL | EnumBarcodeComplementModeGeneral | 0x02 | Complements the barcode using the general algorithm. |
-
-
-
-
-
-
-
-## BinarizationMode
-Describes the binarization mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum BinarizationMode` |
-| .Net | `enum Dynamsoft.DBR.EnumBinarizationMode` |
-| JavaScript | `Dynamsoft.DBR.EnumBinarizationMode` |
-| Python | `class EnumBinarizationMode(IntEnum)` |
-| Java / Android | `class EnumBinarizationMode` |
-| ObjC / Swift | `enum EnumBinarizationMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| BM_SKIP | EnumBinarizationModeSkip | 0x00 | Skips the binarization. |
-| BM_AUTO | EnumBinarizationModeAuto | 0x01 | **Not supported yet.** |
-| BM_LOCAL_BLOCK | EnumBinarizationModeLocalBlock | 0x02 | Binarizes the image based on the local block. Check arguments of [`BinarizationModes`]({{ site.parameters_reference }}binarization-modes.html) for available argument settings. |
-| BM_THRESHOLD | EnumBinarizationModeThreshold | 0x04 | Performs image binarization based on the given threshold. Check arguments of [`BinarizationModes`]({{ site.parameters_reference }}binarization-modes.html) for available argument settings. |
-
-
-
-
-
-
-
-## ColourClusteringMode
-Describes the colour clustering mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ColourClusteringMode` |
-| .Net | `enum Dynamsoft.DBR.EnumColourClusteringMode` |
-| JavaScript | `Dynamsoft.DBR.EnumColourClusteringMode` |
-| Python | `class EnumColourClusteringMode(IntEnum)` |
-| Java / Android | `class EnumColourClusteringMode` |
-| ObjC / Swift | `enum EnumColourClusteringMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| CCM_SKIP | EnumColourClusteringModeSkip | 0x00 | Skips the colour clustering. |
-| CCM_AUTO | EnumColourClusteringModeAuto | 0x01 | **Not supported yet.** |
-| CCM_GENERAL_HSV | EnumColourClusteringModeGeneralHSV | 0x02 | Clusters colours using the general algorithm based on HSV. Check arguments of [`ColourClusteringModes`]({{ site.parameters_reference }}colour-clustering-modes.html) for available argument settings. |
-
-
-
-
-
-
-
-## ColourConversionMode
-Describes the colour conversion mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ColourConversionMode` |
-| .Net | `enum Dynamsoft.DBR.EnumColourConversionMode` |
-| JavaScript | `Dynamsoft.DBR.EnumColourConversionMode` |
-| Python | `class EnumColourConversionMode(IntEnum)` |
-| Java / Android | `class EnumColourConversionMode` |
-| ObjC / Swift | `enum EnumColourConversionMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| CICM_SKIP | EnumColourConversionModeSkip | 0x00 | Skip the colour conversion. |
-| CICM_GENERAL | EnumColourConversionModeGeneral | 0x01 | Converts a colour image to a grayscale image using the general algorithm. Check arguments of [`ColourConversionModes`]({{ site.parameters_reference }}colour-conversion-modes.html) for available argument settings. |
-
-
-
-
-
-
-
-## ConflictMode
-Describes the conflict mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ConflictMode` |
-| .Net | `enum Dynamsoft.DBR.EnumConflictMode` |
-| JavaScript | `Dynamsoft.DBR.EnumConflictMode` |
-| Python | `class EnumConflictMode(IntEnum)` |
-| Java / Android | `class EnumConflictMode` |
-| ObjC / Swift | `enum EnumConflictMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| CM_IGNORE | EnumConflictModeIgnore | 0x01 | Ignores new settings and inherits the previous settings. |
-| CM_OVERWRITE | EnumConflictModeOverwrite | 0x02 | Overwrites the old settings with new settings. |
-
-
-
-
-
-
-
-## DeblurMode {#deblurmode}
-Describes the deblur mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DeblurMode` |
-| .Net | `enum Dynamsoft.DBR.EnumDeblurMode` |
-| JavaScript | `Dynamsoft.DBR.EnumDeblurMode` |
-| Python | `class EnumDeblurMode(IntEnum)` |
-| Java / Android | `class EnumDeblurMode` |
-| ObjC / Swift | `enum EnumDeblurMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| DM_SKIP | EnumDeblurModeSkip | 0x00 | Skips the deblur process. |
-| DM_DIRECT_BINARIZATION | EnumDeblurModeDirectBinarization | 0x01 | Performs deblur process using the direct binarization algorithm. |
-| DM_THRESHOLD_BINARIZATION | EnumDeblurModeThresholdBinarization | 0x02 | Performs deblur process using the threshold binarization algorithm. |
-| DM_GRAY_EQUALIZATION | EnumDeblurModeGrayEqualization | 0x04 | Performs deblur process using the gray equalization algorithm.|
-| DM_SMOOTHING | EnumDeblurModeSmoothing | 0x08 | Performs deblur process using the smoothing algorithm.|
-| DM_MORPHING | EnumDeblurModeMorphing | 0x10 | Performs deblur process using the morphing algorithm.|
-| DM_DEEP_ANALYSIS | EnumDeblurModeDeepAnalysis | 0x20 | Performs deblur process using the deep analysis algorithm. |
-| DM_SHARPENING | EnumDeblurModeSharpening | 0x40 | Performs deblur process using the sharpening algorithm. |
-
-
-
-
-
-
-
-## DeformationResistingMode
-Describes the deformation resisting mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DeformationResistingMode` |
-| .Net | `enum Dynamsoft.DBR.EnumDeformationResistingMode` |
-| JavaScript | `Dynamsoft.DBR.EnumDeformationResistingMode` |
-| Python | `class EnumDeformationResistingMode(IntEnum)` |
-| Java / Android | `class EnumDeformationResistingMode` |
-| ObjC / Swift | `enum EnumDeformationResistingMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| DRM_SKIP | EnumDeformationResistingModeSkip | 0x00 | Skip the deformation resisting. |
-| DRM_AUTO | EnumDeformationResistingModeAuto | 0x01 | **Not supported yet.** |
-| DRM_GENERAL | EnumDeformationResistingModeGeneral | 0x02 | Resists deformation using the general algorithm. Check arguments of [`DeformationResistingModes`]({{ site.parameters_reference }}deformation-resisting-modes.html) for available argument settings.|
-
-
-
-
-
-
-
-## DPMCodeReadingMode
-Describes the DPM code reading mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DPMCodeReadingMode` |
-| .Net | `enum Dynamsoft.DBR.EnumDPMCodeReadingMode` |
-| JavaScript | `Dynamsoft.DBR.EnumDPMCodeReadingMode` |
-| Python | `class EnumDPMCodeReadingMode(IntEnum)` |
-| Java / Android | `class EnumDPMCodeReadingMode` |
-| ObjC / Swift | `enum EnumDPMCodeReadingMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| DPMCRM_SKIP | EnumDPMCodeReadingModeSkip | 0x00 | Skip the DPM code reading. |
-| DPMCRM_AUTO | EnumDPMCodeReadingModeAuto | 0x01 | **Not supported yet.** |
-| DPMCRM_GENERAL | EnumDPMCodeReadingModeGeneral | 0x02 | Reads DPM code using the general algorithm. |
-
-
-
-
-
-
-
-## GrayscaleTransformationMode
-Describes the grayscale transformation mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum GrayscaleTransformationMode` |
-| .Net | `enum Dynamsoft.DBR.EnumGrayscaleTransformationMode` |
-| JavaScript | `Dynamsoft.DBR.EnumGrayscaleTransformationMode` |
-| Python | `class EnumGrayscaleTransformationMode(IntEnum)` |
-| Java / Android | `class EnumGrayscaleTransformationMode` |
-| ObjC / Swift | `enum EnumGrayscaleTransformationMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| GTM_SKIP | EnumGrayscaleTransformationModeSkip | 0x00 | Skips grayscale transformation. |
-| GTM_INVERTED | EnumGrayscaleTransformationModeInverted | 0x01 | Transforms to inverted grayscale. Recommended for light on dark images. |
-| GTM_ORIGINAL | EnumGrayscaleTransformationModeOriginal | 0x02 | Keeps the original grayscale. Recommended for dark on light images. |
-
-
-
-
-
-
-
-## ImagePreprocessingMode
-Describes the image preprocessing mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ImagePreprocessingMode` |
-| .Net | `enum Dynamsoft.DBR.EnumImagePreprocessingMode` |
-| JavaScript | `Dynamsoft.DBR.EnumImagePreprocessingMode` |
-| Python | `class EnumImagePreprocessingMode(IntEnum)` |
-| Java / Android | `class EnumImagePreprocessingMode` |
-| ObjC / Swift | `enum EnumImagePreprocessingMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| IPM_SKIP | EnumImagePreprocessingModeSkip | 0x00 | Skips image preprocessing. |
-| IPM_AUTO | EnumImagePreprocessingModeAuto | 0x01 | **Not supported yet.** |
-| IPM_GENERAL | EnumImagePreprocessingModeGeneral | 0x02 | Takes the unpreprocessed image for following operations. |
-| IPM_GRAY_EQUALIZE | EnumImagePreprocessingModeGrayEqualize | 0x04 | Preprocesses the image using the gray equalization algorithm. Check arguments of [`ImagePreprocessingModes`]({{ site.parameters_reference }}image-preprocessing-modes.html) for available argument settings. |
-| IPM_GRAY_SMOOTH | EnumImagePreprocessingModeGraySmooth | 0x08 | Preprocesses the image using the gray smoothing algorithm. Check arguments of [`ImagePreprocessingModes`]({{ site.parameters_reference }}image-preprocessing-modes.html) for available argument settings. |
-| IPM_SHARPEN_SMOOTH | EnumImagePreprocessingModeSharpenSmooth | 0x10 | Preprocesses the image using the sharpening and smoothing algorithm. Check arguments of [`ImagePreprocessingModes`]({{ site.parameters_reference }}image-preprocessing-modes.html) for available argument settings. |
-| IPM_MORPHOLOGY | EnumImagePreprocessingModeMorphology | 0x20 | Preprocesses the image using the morphology algorithm. Check arguments of [`ImagePreprocessingModes`]({{ site.parameters_reference }}image-preprocessing-modes.html) for available argument settings. |
-
-
-
-
-
-
-
-## LocalizationMode
-Describes the localization mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum LocalizationMode` |
-| .Net | `enum Dynamsoft.DBR.EnumLocalizationMode` |
-| JavaScript | `Dynamsoft.DBR.EnumLocalizationMode` |
-| Python | `class EnumLocalizationMode(IntEnum)` |
-| Java / Android | `class EnumLocalizationMode` |
-| ObjC / Swift | `enum EnumLocalizationMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| LM_SKIP | EnumLocalizationModeSkip | 0x00 | Skips localization. |
-| LM_AUTO | EnumLocalizationModeAuto | 0x01 | Not supported yet. |
-| LM_CONNECTED_BLOCKS | EnumLocalizationModeConnectedBlocks | 0x02 | Localizes barcodes by searching for connected blocks. This algorithm usually gives best result and it is recommended to set ConnectedBlocks to the highest priority. |
-| LM_STATISTICS | EnumLocalizationModeStatistics | 0x04 | Localizes barcodes by groups of contiguous black-white regions. This is optimized for QRCode and DataMatrix. |
-| LM_LINES | EnumLocalizationModeLines | 0x08 | Localizes barcodes by searching for groups of lines. This is optimized for 1D and PDF417 barcodes. |
-| LM_SCAN_DIRECTLY | EnumLocalizationModeScanDirectly | 0x10 | Localizes barcodes quickly. This mode is recommended in interactive scenario. Check arguments of [`LocalizationModes`]({{ site.parameters_reference }}localization-modes.html) for available argument settings. |
-| LM_STATISTICS_MARKS | EnumLocalizationModeStatisticsMarks | 0x20 | Localizes barcodes by groups of marks.This is optimized for DPM codes. |
-| LM_STATISTICS_POSTAL_CODE | EnumLocalizationModeStatisticsPostalCode | 0x40 | Localizes barcodes by groups of connected blocks and lines.This is optimized for postal codes. |
-
-
-
-
-
-
-
-## PDFReadingMode
-Describes the PDF reading mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum PDFReadingMode` |
-| .Net | `enum Dynamsoft.DBR.EnumPDFReadingMode` |
-| JavaScript | `Dynamsoft.DBR.EnumPDFReadingMode` |
-| Python | `class EnumPDFReadingMode(IntEnum)` |
-| Java / Android | `class EnumPDFReadingMode` |
-| ObjC / Swift | `enum EnumPDFReadingMode` |
-
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| PDFRM_AUTO | EnumPDFReadingModeAuto | 0x01 | Lets the library choose the reading mode automatically. |
-| PDFRM_VECTOR | EnumPDFReadingModeVector | 0x02 | Detects barcode from vector data in PDF file. |
-| PDFRM_RASTER | EnumPDFReadingModeRaster | 0x04 | Converts the PDF file to image(s) first, then perform barcode recognition. |
-
-
-
-
-
-
-## RegionPredetectionMode
-Describes the region predetection mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum RegionPredetectionMode` |
-| .Net | `enum Dynamsoft.DBR.EnumRegionPredetectionMode` |
-| JavaScript | `Dynamsoft.DBR.EnumRegionPredetectionMode` |
-| Python | `class EnumRegionPredetectionMode(IntEnum)` |
-| Java / Android | `class EnumRegionPredetectionMode` |
-| ObjC / Swift | `enum EnumRegionPredetectionMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| RPM_SKIP | EnumRegionPredetectionModeSkip | 0x00 | Skips region detection. |
-| RPM_AUTO | EnumRegionPredetectionModeAuto | 0x01 | Lets the library choose an algorithm automatically to detect region. |
-| RPM_GENERAL | EnumRegionPredetectionModeGeneral | 0x02 | Takes the whole image as a region. |
-| RPM_GENERAL_RGB_CONTRAST | EnumRegionPredetectionModeGeneralRGBContrast | 0x04 | Detects region using the general algorithm based on RGB colour contrast. Check arguments of [`RegionPredetectionModes`]({{ site.parameters_reference }}region-predetection-modes.html) for available argument settings. |
-| RPM_GENERAL_GRAY_CONTRAST | EnumRegionPredetectionModeGeneralGrayContrast | 0x08 | Detects region using the general algorithm based on gray contrast. Check arguments of [`RegionPredetectionModes`]({{ site.parameters_reference }}region-predetection-modes.html) for available argument settings. |
-| RPM_GENERAL_HSV_CONTRAST | EnumRegionPredetectionModeGeneralHSVContrast | 0x10 | Detects region using the general algorithm based on HSV colour contrast. Check arguments of [`RegionPredetectionModes`]({{ site.parameters_reference }}region-predetection-modes.html) for available argument settings. |
-
-
-
-
-
-
-
-## ScaleUpMode {#scaleupmodes}
-Describes the scale up mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ScaleUpMode` |
-| .Net | `enum Dynamsoft.DBR.EnumScaleUpMode` |
-| JavaScript | `Dynamsoft.DBR.EnumScaleUpMode` |
-| Python | `class EnumScaleUpMode(IntEnum)` |
-| Java / Android | `class EnumScaleUpMode` |
-| ObjC / Swift | `enum EnumScaleUpMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| SUM_SKIP | EnumScaleUpModeSkip | 0x00 | Skip the scale-up process. |
-| SUM_AUTO | EnumScaleUpModeAuto | 0x01 | The library chooses an interpolation method automatically to scale up. |
-| SUM_LINEAR_INTERPOLATION | EnumScaleUpModeLinearInterpolation | 0x02 | Scales up using the linear interpolation method. Check arguments of [`ScaleUpModes`]({{ site.parameters_reference }}scale-up-modes.html) for available argument settings. |
-| SUM_NEAREST_NEIGHBOUR_INTERPOLATION | EnumScaleUpModeNearestNeighbourInterpolation | 0x04 | Scales up using the nearest-neighbour interpolation method. Check arguments of [`ScaleUpModes`]({{ site.parameters_reference }}scale-up-modes.html) for available argument settings. |
-
-
-
-
-
-
-
-## TerminatePhase
-Describes the terminate phase.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum TerminatePhase` |
-| .Net | `enum Dynamsoft.DBR.EnumTerminatePhase` |
-| JavaScript | `Dynamsoft.DBR.EnumTerminatePhase` |
-| Python | `class EnumTerminatePhase(IntEnum)` |
-| Java / Android | `class EnumTerminatePhase` |
-| ObjC / Swift | `enum EnumTerminatePhase` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| TP_REGION_PREDETECTED | EnumTerminatePhasePredetected | 0x01 | Exits the barcode reading algorithm after the region predetection is done. |
-| TP_IMAGE_PREPROCESSED | EnumTerminatePhasePreprocecessed | 0x02 | Exits the barcode reading algorithm after the region predetection and image pre-processing is done. |
-| TP_IMAGE_BINARIZED | EnumTerminatePhaseBinarized | 0x04 | Exits the barcode reading algorithm after the region predetection, image pre-processing, and image binarization are done. |
-| TP_BARCODE_LOCALIZED | EnumTerminatePhasesLocalized | 0x08 | Exits the barcode reading algorithm after the region predetection, image pre-processing, image binarization, and barcode localization are done. |
-| TP_BARCODE_TYPE_DETERMINED | EnumTerminatePhaseDetermined | 0x10 | Exits the barcode reading algorithm after the region predetection, image pre-processing, image binarization, barcode localization, and barcode type determining are done. |
-| TP_BARCODE_RECOGNIZED | EnumTerminatePhaseRecognized | 0x20 | Exits the barcode reading algorithm after the region predetection, image pre-processing, image binarization, barcode localization, barcode type determining, and barcode recognition are done. |
-
-
-
-
-
-
-
-## TextAssistedCorrectionMode
-Describes the text assisted correction mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum TextAssistedCorrectionMode` |
-| .Net | `enum Dynamsoft.DBR.EnumTextAssistedCorrectionMode` |
-| JavaScript | `Dynamsoft.DBR.EnumTextAssistedCorrectionMode` |
-| Python | `class EnumTextAssistedCorrectionMode(IntEnum)` |
-| Java / Android | `class EnumTextAssistedCorrectionMode` |
-| ObjC / Swift | `enum EnumTextAssistedCorrectionMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| TACM_SKIP | EnumTextAssistedCorrectionModeSkip | 0x00 | Skips the text assisted correction. |
-| TACM_AUTO | EnumTextAssistedCorrectionModeAuto | 0x01 | **Not supported yet.** |
-| TACM_VERIFYING | EnumTextAssistedCorrectionModeVerifying | 0x02 | Uses the accompanying text to verify the decoded barcode result. Check arguments of [`TextAssistedCorrectionMode`]({{ site.parameters_reference }}text-assisted-correction-mode.html) for available argument settings. |
-| TACM_VERIFYING_PATCHING | EnumTextAssistedCorrectionModeVerifyingPatching | 0x04 | Uses the accompanying text to verify and patch the decoded barcode result. Check arguments of [`TextAssistedCorrectionMode`]({{ site.parameters_reference }}text-assisted-correction-mode.html) for available argument settings. |
-
-
-
-
-
-
-
-## TextFilterMode
-Describes the text filter mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum TextFilterMode` |
-| .Net | `enum Dynamsoft.DBR.EnumTextFilterMode` |
-| JavaScript | `Dynamsoft.DBR.EnumTextFilterMode` |
-| Python | `class EnumTextFilterMode(IntEnum)` |
-| Java / Android | `class EnumTextFilterMode` |
-| ObjC / Swift | `enum EnumTextFilterMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| TFM_SKIP | EnumTextFilterModeSkip | 0x00 | Skip the text filtering. |
-| TFM_AUTO | EnumTextFilterModeAuto | 0x01 | **Not supported yet.** |
-| TFM_GENERAL_CONTOUR | EnumTextFilterModeGeneralContour | 0x02 | Filters text using the general algorithm based on contour. Check arguments of [`TextFilterModes`]({{ site.parameters_reference }}text-filter-modes.html) for available argument settings. |
-
-
-
-
-
-
-
-## TextureDetectionMode
-Describes the texture detection mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum TextureDetectionMode` |
-| .Net | `enum Dynamsoft.DBR.EnumTextureDetectionMode` |
-| JavaScript | `Dynamsoft.DBR.EnumTextureDetectionMode` |
-| Python | `class EnumTextureDetectionMode(IntEnum)` |
-| Java / Android | `class EnumTextureDetectionMode` |
-| ObjC / Swift | `enum EnumTextureDetectionMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| TDM_SKIP | EnumTextureDetectionModeSkip | 0x00 | Skips texture detection. |
-| TDM_AUTO | EnumTextureDetectionModeAuto | 0x01 | Not supported yet. |
-| TDM_GENERAL_WIDTH_CONCENTRATION | EnumTextureDetectionModeGeneralWidthConcentration | 0x02 | Detects texture using the general algorithm. Check arguments of [`TextureDetectionModes`]({{ site.parameters_reference }}texture-detection-modes.html) for available argument settings. |
-
-
diff --git a/parameters/enum/parameter-mode-enums-v8.2.5.md b/parameters/enum/parameter-mode-enums-v8.2.5.md
deleted file mode 100644
index 030440ab..00000000
--- a/parameters/enum/parameter-mode-enums-v8.2.5.md
+++ /dev/null
@@ -1,594 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Parameter Mode Enumerations
-description: This article shows Parameter Mode Enumerations of Dynamsoft Barcode Reader v8.2.5.
-keywords: BarcodeColourMode, BarcodeComplementMode, BinarizationMode, ColourClusteringMode, ColourConversionMode, ConflictMode, DeblurMode, DeformationResistingMode, DPMCodeReadingMode, GrayscaleTransformationMode, ImagePreprocessingMode, LocalizationMode, PDFReadingMode, RegionPredetectionMode, ScaleUpMode, TerminatePhase, TextFilterMode, TextureDetectionMode, parameter mode enumeration, enumeration
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-permalink: /parameters/enum/parameter-mode-enums-v8.2.5.html
----
-
-# Dynamsoft Barcode Reader Enumeration - Parameter Mode Enumeration
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`BarcodeColourMode`](#barcodecolourmode) | Describes the barcode colour mode. |
- | [`BarcodeComplementMode`](#barcodecomplementmode) | Describes the barcode complement mode. |
- | [`BinarizationMode`](#binarizationmode) | Describes the binarization mode. |
- | [`ColourClusteringMode`](#colourclusteringmode) | Describes the colour clustering mode. |
- | [`ColourConversionMode`](#colourconversionmode) | Describes the colour conversion mode. |
- | [`ConflictMode`](#conflictmode) | Describes the conflict mode. |
- | [`DeblurMode`](#deblurmode) | Describes the deblur mode. |
- | [`DeformationResistingMode`](#deformationresistingmode) | Describes the deformation resisting mode. |
- | [`DPMCodeReadingMode`](#dpmcodereadingmode) | Describes the DPM code reading mode. |
- | [`GrayscaleTransformationMode`](#grayscaletransformationmode) | Describes the grayscale transformation mode. |
- | [`ImagePreprocessingMode`](#imagepreprocessingmode) | Describes the image preprocessing mode. |
- | [`LocalizationMode`](#localizationmode) | Describes the localization mode. |
- | [`PDFReadingMode`](#pdfreadingmode) | Describes the PDF reading mode. |
- | [`RegionPredetectionMode`](#regionpredetectionmode) | Describes the region predetection mode. |
- | [`ScaleUpMode`](#scaleupmode) | Describes the scale up mode. |
- | [`TerminatePhase`](#terminatephase) | Describes the terminate phase. |
- | [`TextFilterMode`](#textfiltermode) | Describes the text filter mode. |
- | [`TextureDetectionMode`](#texturedetectionmode) | Describes the texture detection mode. |
-
-
----
-
-
-## BarcodeColourMode
-Describes the barcode colour mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum BarcodeColourMode` |
-| .Net | `enum Dynamsoft.DBR.EnumBarcodeColourMode` |
-| JavaScript | `Dynamsoft.DBR.EnumBarcodeColourMode` |
-| Python | `class EnumBarcodeColourMode(IntEnum)` |
-| Java / Android | `class EnumBarcodeColourMode` |
-| ObjC / Swift | `enum EnumBarcodeColourMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| BICM_SKIP | EnumBarcodeColourModeSkip | 0x00 | Skips the barcode colour operation. | `N/A` |
-| BICM_DARK_ON_LIGHT | EnumBarcodeColourModeDarkOnLight | 0x01 | Dark items on a light background. | [`LightReflection`]({{ site.parameters_reference }}barcode-colour-modes.html#lightreflection) |
-| BICM_LIGHT_ON_DARK | EnumBarcodeColourModeLightOnDark | 0x02 | Light items on a dark background. **Not supported yet**. | `N/A` |
-| BICM_DARK_ON_DARK | EnumBarcodeColourModeDarkOnDark | 0x04 | Dark items on a dark background. **Not supported yet**. | `N/A` |
-| BICM_LIGHT_ON_LIGHT | EnumBarcodeColourModeLightOnLight | 0x08 | Light items on a light background. **Not supported yet**. | `N/A` |
-| BICM_DARK_LIGHT_MIXED | EnumBarcodeColourModeDarkLightMixed | 0x10 | The background is mixed by dark and light. **Not supported yet**. | `N/A` |
-| BICM_DARK_ON_LIGHT_DARK_SURROUNDING | EnumBarcodeColourModeDarkOnLightDarkSurrounding | 0x20 | Dark item on a light background surrounded by dark. | [`LightReflection`]({{ site.parameters_reference }}barcode-colour-modes.html#lightreflection) |
-
-
-
-
-
-
-
-## BarcodeComplementMode
-Describes the barcode complement mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum BarcodeComplementMode` |
-| .Net | `enum Dynamsoft.DBR.EnumBarcodeComplementMode` |
-| JavaScript | `Dynamsoft.DBR.EnumBarcodeComplementMode` |
-| Python | `class EnumBarcodeComplementMode(IntEnum)` |
-| Java / Android | `class EnumBarcodeComplementMode` |
-| ObjC / Swift | `enum EnumBarcodeComplementMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| BCM_SKIP | EnumBarcodeComplementModeSkip | 0x00 | Skips the barcode complement. |
-| BCM_AUTO | EnumBarcodeComplementModeAuto | 0x01 | **Not supported yet.** |
-| BCM_GENERAL | EnumBarcodeComplementModeGeneral | 0x02 | Complements the barcode using the general algorithm. |
-
-
-
-
-
-
-
-## BinarizationMode
-Describes the binarization mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum BinarizationMode` |
-| .Net | `enum Dynamsoft.DBR.EnumBinarizationMode` |
-| JavaScript | `Dynamsoft.DBR.EnumBinarizationMode` |
-| Python | `class EnumBinarizationMode(IntEnum)` |
-| Java / Android | `class EnumBinarizationMode` |
-| ObjC / Swift | `enum EnumBinarizationMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| BM_SKIP | EnumBinarizationModeSkip | 0x00 | Skips the binarization. | `N/A` |
-| BM_AUTO | EnumBinarizationModeAuto | 0x01 | **Not supported yet.** | `N/A` |
-| BM_LOCAL_BLOCK | EnumBinarizationModeLocalBlock | 0x02 | Binarizes the image based on the local block. | [`BlockSizeX`]({{ site.parameters_reference }}binarization-modes.html#blocksizex) [`BlockSizeY`]({{ site.parameters_reference }}binarization-modes.html#blocksizey) [`EnableFillBinaryVacancy`]({{ site.parameters_reference }}binarization-modes.html#enablefillbinaryvacancy) [`ImagePreprocessingModesIndex`]({{ site.parameters_reference }}binarization-modes.html#imagepreprocessingmodesindex) [`ThreshValueCoefficient`]({{ site.parameters_reference }}binarization-modes.html#threshvaluecoefficient) |
-| BM_THRESHOLD | EnumBinarizationModeThreshold | 0x04 | Performs image binarization based on the given threshold. | [`BinarizationThreshold`]({{ site.parameters_reference }}binarization-modes.html#binarizationthreshold) [`ImagePreprocessingModesIndex`]({{ site.parameters_reference }}binarization-modes.html#imagepreprocessingmodesindex) |
-
-
-
-
-
-
-
-## ColourClusteringMode
-Describes the colour clustering mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ColourClusteringMode` |
-| .Net | `enum Dynamsoft.DBR.EnumColourClusteringMode` |
-| JavaScript | `Dynamsoft.DBR.EnumColourClusteringMode` |
-| Python | `class EnumColourClusteringMode(IntEnum)` |
-| Java / Android | `class EnumColourClusteringMode` |
-| ObjC / Swift | `enum EnumColourClusteringMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| CCM_SKIP | EnumColourClusteringModeSkip | 0x00 | Skips the colour clustering. | `N/A` |
-| CCM_AUTO | EnumColourClusteringModeAuto | 0x01 | **Not supported yet.** | `N/A` |
-| CCM_GENERAL_HSV | EnumColourClusteringModeGeneralHSV | 0x02 | Clusters colours using the general algorithm based on HSV. | [`Sensitivity`]({{ site.parameters_reference }}colour-clustering-modes.html#sensitivity) |
-
-
-
-
-
-
-
-## ColourConversionMode
-Describes the colour conversion mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ColourConversionMode` |
-| .Net | `enum Dynamsoft.DBR.EnumColourConversionMode` |
-| JavaScript | `Dynamsoft.DBR.EnumColourConversionMode` |
-| Python | `class EnumColourConversionMode(IntEnum)` |
-| Java / Android | `class EnumColourConversionMode` |
-| ObjC / Swift | `enum EnumColourConversionMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| CICM_SKIP | EnumColourConversionModeSkip | 0x00 | Skip the colour conversion. | `N/A` |
-| CICM_GENERAL | EnumColourConversionModeGeneral | 0x01 | Converts a colour image to a grayscale image using the general algorithm. | [`BlueChannelWeight`]({{ site.parameters_reference }}colour-conversion-modes.html#bluechannelweight) [`GreenChannelWeight`]({{ site.parameters_reference }}colour-conversion-modes.html#greenchannelweight) [`RedChannelWeight`]({{ site.parameters_reference }}colour-conversion-modes.html#redchannelweight) |
-
-
-
-
-
-
-
-## ConflictMode
-Describes the conflict mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ConflictMode` |
-| .Net | `enum Dynamsoft.DBR.EnumConflictMode` |
-| JavaScript | `Dynamsoft.DBR.EnumConflictMode` |
-| Python | `class EnumConflictMode(IntEnum)` |
-| Java / Android | `class EnumConflictMode` |
-| ObjC / Swift | `enum EnumConflictMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| CM_IGNORE | EnumConflictModeIgnore | 0x01 | Ignores new settings and inherits the previous settings. |
-| CM_OVERWRITE | EnumConflictModeOverwrite | 0x02 | Overwrites the old settings with new settings. |
-
-
-
-
-
-
-
-## DeblurMode
-Describes the deblur mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DeblurMode` |
-| .Net | `enum Dynamsoft.DBR.EnumDeblurMode` |
-| JavaScript | `Dynamsoft.DBR.EnumDeblurMode` |
-| Python | `class EnumDeblurMode(IntEnum)` |
-| Java / Android | `class EnumDeblurMode` |
-| ObjC / Swift | `enum EnumDeblurMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| DM_SKIP | EnumDeblurModeSkip | 0x00 | Skips the deblur process. |
-| DM_DIRECT_BINARIZATION | EnumDeblurModeDirectBinarization | 0x01 | Performs deblur process using the direct binarization algorithm. |
-| DM_THRESHOLD_BINARIZATION | EnumDeblurModeThresholdBinarization | 0x02 | Performs deblur process using the threshold binarization algorithm. |
-| DM_GRAY_EQUALIZATION | EnumDeblurModeGrayEqualization | 0x04 | Performs deblur process using the gray equalization algorithm.|
-| DM_SMOOTHING | EnumDeblurModeSmoothing | 0x08 | Performs deblur process using the smoothing algorithm.|
-| DM_MORPHING | EnumDeblurModeMorphing | 0x10 | Performs deblur process using the morphing algorithm.|
-| DM_DEEP_ANALYSIS | EnumDeblurModeDeepAnalysis | 0x20 | Performs deblur process using the deep analysis algorithm. |
-| DM_SHARPENING | EnumDeblurModeSharpening | 0x40 | Performs deblur process using the sharpening algorithm. |
-
-
-
-
-
-
-
-## DeformationResistingMode
-Describes the deformation resisting mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DeformationResistingMode` |
-| .Net | `enum Dynamsoft.DBR.EnumDeformationResistingMode` |
-| JavaScript | `Dynamsoft.DBR.EnumDeformationResistingMode` |
-| Python | `class EnumDeformationResistingMode(IntEnum)` |
-| Java / Android | `class EnumDeformationResistingMode` |
-| ObjC / Swift | `enum EnumDeformationResistingMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| DRM_SKIP | EnumDeformationResistingModeSkip | 0x00 | Skip the deformation resisting. | `N/A` |
-| DRM_AUTO | EnumDeformationResistingModeAuto | 0x01 | **Not supported yet.** | `N/A` |
-| DRM_GENERAL | EnumDeformationResistingModeGeneral | 0x02 | Resists deformation using the general algorithm. | [`Level`]({{ site.parameters_reference }}deformation-resisting-modes.html#level) |
-
-
-
-
-
-
-
-## DPMCodeReadingMode
-Describes the DPM code reading mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DPMCodeReadingMode` |
-| .Net | `enum Dynamsoft.DBR.EnumDPMCodeReadingMode` |
-| JavaScript | `Dynamsoft.DBR.EnumDPMCodeReadingMode` |
-| Python | `class EnumDPMCodeReadingMode(IntEnum)` |
-| Java / Android | `class EnumDPMCodeReadingMode` |
-| ObjC / Swift | `enum EnumDPMCodeReadingMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| DPMCRM_SKIP | EnumDPMCodeReadingModeSkip | 0x00 | Skip the DPM code reading. |
-| DPMCRM_AUTO | EnumDPMCodeReadingModeAuto | 0x01 | **Not supported yet.** |
-| DPMCRM_GENERAL | EnumDPMCodeReadingModeGeneral | 0x02 | Reads DPM code using the general algorithm. |
-
-
-
-
-
-
-
-## GrayscaleTransformationMode
-Describes the grayscale transformation mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum GrayscaleTransformationMode` |
-| .Net | `enum Dynamsoft.DBR.EnumGrayscaleTransformationMode` |
-| JavaScript | `Dynamsoft.DBR.EnumGrayscaleTransformationMode` |
-| Python | `class EnumGrayscaleTransformationMode(IntEnum)` |
-| Java / Android | `class EnumGrayscaleTransformationMode` |
-| ObjC / Swift | `enum EnumGrayscaleTransformationMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| GTM_SKIP | EnumGrayscaleTransformationModeSkip | 0x00 | Skips grayscale transformation. |
-| GTM_INVERTED | EnumGrayscaleTransformationModeInverted | 0x01 | Transforms to inverted grayscale. Recommended for light on dark images. |
-| GTM_ORIGINAL | EnumGrayscaleTransformationModeOriginal | 0x02 | Keeps the original grayscale. Recommended for dark on light images. |
-
-
-
-
-
-
-
-## ImagePreprocessingMode
-Describes the image preprocessing mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ImagePreprocessingMode` |
-| .Net | `enum Dynamsoft.DBR.EnumImagePreprocessingMode` |
-| JavaScript | `Dynamsoft.DBR.EnumImagePreprocessingMode` |
-| Python | `class EnumImagePreprocessingMode(IntEnum)` |
-| Java / Android | `class EnumImagePreprocessingMode` |
-| ObjC / Swift | `enum EnumImagePreprocessingMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| IPM_SKIP | EnumImagePreprocessingModeSkip | 0x00 | Skips image preprocessing. | `N/A` |
-| IPM_AUTO | EnumImagePreprocessingModeAuto | 0x01 | **Not supported yet.** | `N/A` |
-| IPM_GENERAL | EnumImagePreprocessingModeGeneral | 0x02 | Takes the unpreprocessed image for following operations. | `N/A` |
-| IPM_GRAY_EQUALIZE | EnumImagePreprocessingModeGrayEqualize | 0x04 | Preprocesses the image using the gray equalization algorithm. | [`Sensitivity`]({{ site.parameters_reference }}image-preprocessing-modes.html#sensitivity) |
-| IPM_GRAY_SMOOTH | EnumImagePreprocessingModeGraySmooth | 0x08 | Preprocesses the image using the gray smoothing algorithm. | [`SmoothBlockSizeX`]({{ site.parameters_reference }}image-preprocessing-modes.html#smoothblocksizex) [`SmoothBlockSizeY`]({{ site.parameters_reference }}image-preprocessing-modes.html#smoothblocksizey) |
-| IPM_SHARPEN_SMOOTH | EnumImagePreprocessingModeSharpenSmooth | 0x10 | Preprocesses the image using the sharpening and smoothing algorithm. | [`SmoothBlockSizeX`]({{ site.parameters_reference }}image-preprocessing-modes.html#smoothblocksizex) [`SmoothBlockSizeY`]({{ site.parameters_reference }}image-preprocessing-modes.html#smoothblocksizey) [`SharpenBlockSizeX`]({{ site.parameters_reference }}image-preprocessing-modes.html#sharpenblocksizex) [`SharpenBlockSizeY`]({{ site.parameters_reference }}image-preprocessing-modes.html#sharpenblocksizey) |
-| IPM_MORPHOLOGY | EnumImagePreprocessingModeMorphology | 0x20 | Preprocesses the image using the morphology algorithm. | [`MorphOperation`]({{ site.parameters_reference }}image-preprocessing-modes.html#morphoperation) [`MorphShape`]({{ site.parameters_reference }}image-preprocessing-modes.html#morphshape) [`MorphOperationKernelSizeX`]({{ site.parameters_reference }}image-preprocessing-modes.html#morphoperationkernelsizex) [`MorphOperationKernelSizeY`]({{ site.parameters_reference }}image-preprocessing-modes.html#morphoperationkernelsizey) |
-
-
-
-
-
-
-
-## LocalizationMode
-Describes the localization mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum LocalizationMode` |
-| .Net | `enum Dynamsoft.DBR.EnumLocalizationMode` |
-| JavaScript | `Dynamsoft.DBR.EnumLocalizationMode` |
-| Python | `class EnumLocalizationMode(IntEnum)` |
-| Java / Android | `class EnumLocalizationMode` |
-| ObjC / Swift | `enum EnumLocalizationMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| LM_SKIP | EnumLocalizationModeSkip | 0x00 | Skips localization. | `N/A` |
-| LM_AUTO | EnumLocalizationModeAuto | 0x01 | Not supported yet. | `N/A` |
-| LM_CONNECTED_BLOCKS | EnumLocalizationModeConnectedBlocks | 0x02 | Localizes barcodes by searching for connected blocks. This algorithm usually gives best result and it is recommended to set ConnectedBlocks to the highest priority. | `N/A` |
-| LM_STATISTICS | EnumLocalizationModeStatistics | 0x04 | Localizes barcodes by groups of contiguous black-white regions. This is optimized for QRCode and DataMatrix. | `N/A` |
-| LM_LINES | EnumLocalizationModeLines | 0x08 | Localizes barcodes by searching for groups of lines. This is optimized for 1D and PDF417 barcodes. | `N/A` |
-| LM_SCAN_DIRECTLY | EnumLocalizationModeScanDirectly | 0x10 | Localizes barcodes quickly. This mode is recommended in interactive scenario. | [`ScanStride`]({{ site.parameters_reference }}localization-modes.html#scanstride) [`ScanDirection`]({{ site.parameters_reference }}localization-modes.html#scandirection) |
-| LM_STATISTICS_MARKS | EnumLocalizationModeStatisticsMarks | 0x20 | Localizes barcodes by groups of marks.This is optimized for DPM codes. | `N/A` |
-| LM_STATISTICS_POSTAL_CODE | EnumLocalizationModeStatisticsPostalCode | 0x40 | Localizes barcodes by groups of connected blocks and lines.This is optimized for postal codes. | `N/A` |
-
-
-
-
-
-
-
-## PDFReadingMode
-Describes the PDF reading mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum PDFReadingMode` |
-| .Net | `enum Dynamsoft.DBR.EnumPDFReadingMode` |
-| JavaScript | `Dynamsoft.DBR.EnumPDFReadingMode` |
-| Python | `class EnumPDFReadingMode(IntEnum)` |
-| Java / Android | `class EnumPDFReadingMode` |
-| ObjC / Swift | `enum EnumPDFReadingMode` |
-
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| PDFRM_AUTO | EnumPDFReadingModeAuto | 0x01 | Lets the library choose the reading mode automatically. |
-| PDFRM_VECTOR | EnumPDFReadingModeVector | 0x02 | Detects barcode from vector data in PDF file. |
-| PDFRM_RASTER | EnumPDFReadingModeRaster | 0x04 | Converts the PDF file to image(s) first, then perform barcode recognition. |
-
-
-
-
-
-
-## RegionPredetectionMode
-Describes the region predetection mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum RegionPredetectionMode` |
-| .Net | `enum Dynamsoft.DBR.EnumRegionPredetectionMode` |
-| JavaScript | `Dynamsoft.DBR.EnumRegionPredetectionMode` |
-| Python | `class EnumRegionPredetectionMode(IntEnum)` |
-| Java / Android | `class EnumRegionPredetectionMode` |
-| ObjC / Swift | `enum EnumRegionPredetectionMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| RPM_SKIP | EnumRegionPredetectionModeSkip | 0x00 | Skips region detection. | `N/A` |
-| RPM_AUTO | EnumRegionPredetectionModeAuto | 0x01 | Lets the library choose an algorithm automatically to detect region. | `N/A` |
-| RPM_GENERAL | EnumRegionPredetectionModeGeneral | 0x02 | Takes the whole image as a region. | `N/A` |
-| RPM_GENERAL_RGB_CONTRAST | EnumRegionPredetectionModeGeneralRGBContrast | 0x04 | Detects region using the general algorithm based on RGB colour contrast. | [`MinImageDimension`]({{ site.parameters_reference }}region-predetection-modes.html#minimagedimension) [`Sensitivity`]({{ site.parameters_reference }}region-predetection-modes.html#sensitivity) [`SpatialIndexBlockSize`]({{ site.parameters_reference }}region-predetection-modes.html#spatialindexblocksize) |
-| RPM_GENERAL_GRAY_CONTRAST | EnumRegionPredetectionModeGeneralGrayContrast | 0x08 | Detects region using the general algorithm based on gray contrast. | [`MinImageDimension`]({{ site.parameters_reference }}region-predetection-modes.html#minimagedimension) [`Sensitivity`]({{ site.parameters_reference }}region-predetection-modes.html#sensitivity) [`SpatialIndexBlockSize`]({{ site.parameters_reference }}region-predetection-modes.html#spatialindexblocksize) |
-| RPM_GENERAL_HSV_CONTRAST | EnumRegionPredetectionModeGeneralHSVContrast | 0x10 | Detects region using the general algorithm based on HSV colour contrast. | [`AspectRatioRange`]({{ site.parameters_reference }}region-predetection-modes.html#aspectratiorange) [`FindAccurateBoundary`]({{ site.parameters_reference }}region-predetection-modes.html#findaccurateboundary) [`ForeAndBackgroundColours`]({{ site.parameters_reference }}region-predetection-modes.html#foreandbackgroundcolours) [`HeightRange`]({{ site.parameters_reference }}region-predetection-modes.html#heightrange) [`MinImageDimension`]({{ site.parameters_reference }}region-predetection-modes.html#minimagedimension) [`RelativeBarcodeRegions`]({{ site.parameters_reference }}region-predetection-modes.html#relativebarcoderegions) [`Sensitivity`]({{ site.parameters_reference }}region-predetection-modes.html#sensitivity) [`SpatialIndexBlockSize`]({{ site.parameters_reference }}region-predetection-modes.html#spatialindexblocksize) [`WidthRange`]({{ site.parameters_reference }}region-predetection-modes.html#widthrange) |
-
-
-
-
-
-
-
-## ScaleUpMode
-Describes the scale up mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ScaleUpMode` |
-| .Net | `enum Dynamsoft.DBR.EnumScaleUpMode` |
-| JavaScript | `Dynamsoft.DBR.EnumScaleUpMode` |
-| Python | `class EnumScaleUpMode(IntEnum)` |
-| Java / Android | `class EnumScaleUpMode` |
-| ObjC / Swift | `enum EnumScaleUpMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| SUM_SKIP | EnumScaleUpModeSkip | 0x00 | Skip the scale-up process. | `N/A` |
-| SUM_AUTO | EnumScaleUpModeAuto | 0x01 | The library chooses an interpolation method automatically to scale up. | `N/A` |
-| SUM_LINEAR_INTERPOLATION | EnumScaleUpModeLinearInterpolation | 0x02 | Scales up using the linear interpolation method. | [`AcuteAngleWithXThreshold`]({{ site.parameters_reference }}scale-up-modes.html#acuteanglewithxthreshold) [`ModuleSizeThreshold`]({{ site.parameters_reference }}scale-up-modes.html#modulesizethreshold) [`TargetModuleSize`]({{ site.parameters_reference }}scale-up-modes.html#targetmodulesize) |
-| SUM_NEAREST_NEIGHBOUR_INTERPOLATION | EnumScaleUpModeNearestNeighbourInterpolation | 0x04 | Scales up using the nearest-neighbour interpolation method. | [`AcuteAngleWithXThreshold`]({{ site.parameters_reference }}scale-up-modes.html#acuteanglewithxthreshold) [`ModuleSizeThreshold`]({{ site.parameters_reference }}scale-up-modes.html#modulesizethreshold) [`TargetModuleSize`]({{ site.parameters_reference }}scale-up-modes.html#targetmodulesize) |
-
-
-
-
-
-
-
-## TerminatePhase
-Describes the terminate phase.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum TerminatePhase` |
-| .Net | `enum Dynamsoft.EnumTerminatePhase` |
-| JavaScript | `Dynamsoft.DBR.EnumTerminatePhase` |
-| Python | `class EnumTerminatePhase(IntEnum)` |
-| Java / Android | `class EnumTerminatePhase` |
-| ObjC / Swift | `enum EnumTerminatePhase` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| TP_REGION_PREDETECTED | EnumTerminatePhasePredetected | 0x01 | Exits the barcode reading algorithm after the region predetection is done. |
-| TP_IMAGE_PREPROCESSED | EnumTerminatePhasePreprocecessed | 0x02 | Exits the barcode reading algorithm after the region predetection and image pre-processing is done. |
-| TP_IMAGE_BINARIZED | EnumTerminatePhaseBinarized | 0x04 | Exits the barcode reading algorithm after the region predetection, image pre-processing, and image binarization are done. |
-| TP_BARCODE_LOCALIZED | EnumTerminatePhasesLocalized | 0x08 | Exits the barcode reading algorithm after the region predetection, image pre-processing, image binarization, and barcode localization are done. |
-| TP_BARCODE_TYPE_DETERMINED | EnumTerminatePhaseDetermined | 0x10 | Exits the barcode reading algorithm after the region predetection, image pre-processing, image binarization, barcode localization, and barcode type determining are done. |
-| TP_BARCODE_RECOGNIZED | EnumTerminatePhaseRecognized | 0x20 | Exits the barcode reading algorithm after the region predetection, image pre-processing, image binarization, barcode localization, barcode type determining, and barcode recognition are done. |
-
-
-
-
-
-
-
-
-## TextFilterMode
-Describes the text filter mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum TextFilterMode` |
-| .Net | `enum Dynamsoft.DBR.EnumTextFilterMode` |
-| JavaScript | `Dynamsoft.DBR.EnumTextFilterMode` |
-| Python | `class EnumTextFilterMode(IntEnum)` |
-| Java / Android | `class EnumTextFilterMode` |
-| ObjC / Swift | `enum EnumTextFilterMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| TFM_SKIP | EnumTextFilterModeSkip | 0x00 | Skip the text filtering. | `N/A` |
-| TFM_AUTO | EnumTextFilterModeAuto | 0x01 | **Not supported yet.** | `N/A` |
-| TFM_GENERAL_CONTOUR | EnumTextFilterModeGeneralContour | 0x02 | Filters text using the general algorithm based on contour. | [`MinImageDimension`]({{ site.parameters_reference }}text-filter-modes.html#minimagedimension) [`Sensitivity`]({{ site.parameters_reference }}text-filter-modes.html#sensitivity) |
-
-
-
-
-
-
-
-## TextureDetectionMode
-Describes the texture detection mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum TextureDetectionMode` |
-| .Net | `enum Dynamsoft.DBR.EnumTextureDetectionMode` |
-| JavaScript | `Dynamsoft.DBR.EnumTextureDetectionMode` |
-| Python | `class EnumTextureDetectionMode(IntEnum)` |
-| Java / Android | `class EnumTextureDetectionMode` |
-| ObjC / Swift | `enum EnumTextureDetectionMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| TDM_SKIP | EnumTextureDetectionModeSkip | 0x00 | Skips texture detection. | `N/A` |
-| TDM_AUTO | EnumTextureDetectionModeAuto | 0x01 | Not supported yet. | `N/A` |
-| TDM_GENERAL_WIDTH_CONCENTRATION | EnumTextureDetectionModeGeneralWidthConcentration | 0x02 | Detects texture using the general algorithm. | [`Sensitivity`]({{ site.parameters_reference }}texture-detection-modes.html#sensitivity) |
-
-
diff --git a/parameters/enum/parameter-mode-enums-v8.6.0.md b/parameters/enum/parameter-mode-enums-v8.6.0.md
deleted file mode 100644
index 01494a5a..00000000
--- a/parameters/enum/parameter-mode-enums-v8.6.0.md
+++ /dev/null
@@ -1,594 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Parameter Mode Enumerations
-description: This article shows Parameter Mode Enumerations of Dynamsoft Barcode Reader v8.6.9.
-keywords: BarcodeColourMode, BarcodeComplementMode, BinarizationMode, ColourClusteringMode, ColourConversionMode, ConflictMode, DeblurMode, DeformationResistingMode, DPMCodeReadingMode, GrayscaleTransformationMode, ImagePreprocessingMode, LocalizationMode, PDFReadingMode, RegionPredetectionMode, ScaleUpMode, TerminatePhase, TextFilterMode, TextureDetectionMode, parameter mode enumeration, enumeration
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-permalink: /parameters/enum/parameter-mode-enums-v8.6.0.html
----
-
-# Parameter Mode Enumeration
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`BarcodeColourMode`](#barcodecolourmode) | Describes the barcode colour mode. |
- | [`BarcodeComplementMode`](#barcodecomplementmode) | Describes the barcode complement mode. |
- | [`BinarizationMode`](#binarizationmode) | Describes the binarization mode. |
- | [`ColourClusteringMode`](#colourclusteringmode) | Describes the colour clustering mode. |
- | [`ColourConversionMode`](#colourconversionmode) | Describes the colour conversion mode. |
- | [`ConflictMode`](#conflictmode) | Describes the conflict mode. |
- | [`DeblurMode`](#deblurmode) | Describes the deblur mode. |
- | [`DeformationResistingMode`](#deformationresistingmode) | Describes the deformation resisting mode. |
- | [`DPMCodeReadingMode`](#dpmcodereadingmode) | Describes the DPM code reading mode. |
- | [`GrayscaleTransformationMode`](#grayscaletransformationmode) | Describes the grayscale transformation mode. |
- | [`ImagePreprocessingMode`](#imagepreprocessingmode) | Describes the image preprocessing mode. |
- | [`LocalizationMode`](#localizationmode) | Describes the localization mode. |
- | [`PDFReadingMode`](#pdfreadingmode) | Describes the PDF reading mode. |
- | [`RegionPredetectionMode`](#regionpredetectionmode) | Describes the region predetection mode. |
- | [`ScaleUpMode`](#scaleupmode) | Describes the scale up mode. |
- | [`TerminatePhase`](#terminatephase) | Describes the terminate phase. |
- | [`TextFilterMode`](#textfiltermode) | Describes the text filter mode. |
- | [`TextureDetectionMode`](#texturedetectionmode) | Describes the texture detection mode. |
-
-
-## BarcodeColourMode
-Describes the barcode colour mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum BarcodeColourMode` |
-| .Net | `enum Dynamsoft.DBR.EnumBarcodeColourMode` |
-| JavaScript | `Dynamsoft.DBR.EnumBarcodeColourMode` |
-| Python | `class EnumBarcodeColourMode(IntEnum)` |
-| Java / Android | `class EnumBarcodeColourMode` |
-| ObjC / Swift | `enum EnumBarcodeColourMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| BICM_SKIP | EnumBarcodeColourModeSkip | 0x00 | Skips the barcode colour operation. | `N/A` |
-| BICM_DARK_ON_LIGHT | EnumBarcodeColourModeDarkOnLight | 0x01 | Dark items on a light background. | [`LightReflection`]({{ site.parameters_reference }}barcode-colour-modes.html#lightreflection) |
-| BICM_LIGHT_ON_DARK | EnumBarcodeColourModeLightOnDark | 0x02 | Light items on a dark background. **Not supported yet**. | `N/A` |
-| BICM_DARK_ON_DARK | EnumBarcodeColourModeDarkOnDark | 0x04 | Dark items on a dark background. **Not supported yet**. | `N/A` |
-| BICM_LIGHT_ON_LIGHT | EnumBarcodeColourModeLightOnLight | 0x08 | Light items on a light background. **Not supported yet**. | `N/A` |
-| BICM_DARK_LIGHT_MIXED | EnumBarcodeColourModeDarkLightMixed | 0x10 | The background is mixed by dark and light. **Not supported yet**. | `N/A` |
-| BICM_DARK_ON_LIGHT_DARK_SURROUNDING | EnumBarcodeColourModeDarkOnLightDarkSurrounding | 0x20 | Dark item on a light background surrounded by dark. | [`LightReflection`]({{ site.parameters_reference }}barcode-colour-modes.html#lightreflection) |
-
-
-
-
-
-
-
-## BarcodeComplementMode
-Describes the barcode complement mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum BarcodeComplementMode` |
-| .Net | `enum Dynamsoft.DBR.EnumBarcodeComplementMode` |
-| JavaScript | `Dynamsoft.DBR.EnumBarcodeComplementMode` |
-| Python | `class EnumBarcodeComplementMode(IntEnum)` |
-| Java / Android | `class EnumBarcodeComplementMode` |
-| ObjC / Swift | `enum EnumBarcodeComplementMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| BCM_SKIP | EnumBarcodeComplementModeSkip | 0x00 | Skips the barcode complement. |
-| BCM_AUTO | EnumBarcodeComplementModeAuto | 0x01 | **Not supported yet.** |
-| BCM_GENERAL | EnumBarcodeComplementModeGeneral | 0x02 | Complements the barcode using the general algorithm. |
-
-
-
-
-
-
-
-## BinarizationMode
-Describes the binarization mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum BinarizationMode` |
-| .Net | `enum Dynamsoft.DBR.EnumBinarizationMode` |
-| JavaScript | `Dynamsoft.DBR.EnumBinarizationMode` |
-| Python | `class EnumBinarizationMode(IntEnum)` |
-| Java / Android | `class EnumBinarizationMode` |
-| ObjC / Swift | `enum EnumBinarizationMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| BM_SKIP | EnumBinarizationModeSkip | 0x00 | Skips the binarization. | `N/A` |
-| BM_AUTO | EnumBinarizationModeAuto | 0x01 | **Not supported yet.** | `N/A` |
-| BM_LOCAL_BLOCK | EnumBinarizationModeLocalBlock | 0x02 | Binarizes the image based on the local block. | [`BlockSizeX`]({{ site.parameters_reference }}binarization-modes.html#blocksizex) [`BlockSizeY`]({{ site.parameters_reference }}binarization-modes.html#blocksizey) [`EnableFillBinaryVacancy`]({{ site.parameters_reference }}binarization-modes.html#enablefillbinaryvacancy) [`ImagePreprocessingModesIndex`]({{ site.parameters_reference }}binarization-modes.html#imagepreprocessingmodesindex) [`ThresholdCompensation`]({{ site.parameters_reference }}binarization-modes.html#thresholdcompensation) |
-| BM_THRESHOLD | EnumBinarizationModeThreshold | 0x04 | Performs image binarization based on the given threshold. | [`BinarizationThreshold`]({{ site.parameters_reference }}binarization-modes.html#binarizationthreshold) [`ImagePreprocessingModesIndex`]({{ site.parameters_reference }}binarization-modes.html#imagepreprocessingmodesindex) |
-
-
-
-
-
-
-
-## ColourClusteringMode
-Describes the colour clustering mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ColourClusteringMode` |
-| .Net | `enum Dynamsoft.DBR.EnumColourClusteringMode` |
-| JavaScript | `Dynamsoft.DBR.EnumColourClusteringMode` |
-| Python | `class EnumColourClusteringMode(IntEnum)` |
-| Java / Android | `class EnumColourClusteringMode` |
-| ObjC / Swift | `enum EnumColourClusteringMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| CCM_SKIP | EnumColourClusteringModeSkip | 0x00 | Skips the colour clustering. | `N/A` |
-| CCM_AUTO | EnumColourClusteringModeAuto | 0x01 | **Not supported yet.** | `N/A` |
-| CCM_GENERAL_HSV | EnumColourClusteringModeGeneralHSV | 0x02 | Clusters colours using the general algorithm based on HSV. | [`Sensitivity`]({{ site.parameters_reference }}colour-clustering-modes.html#sensitivity) |
-
-
-
-
-
-
-
-## ColourConversionMode
-Describes the colour conversion mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ColourConversionMode` |
-| .Net | `enum Dynamsoft.DBR.EnumColourConversionMode` |
-| JavaScript | `Dynamsoft.DBR.EnumColourConversionMode` |
-| Python | `class EnumColourConversionMode(IntEnum)` |
-| Java / Android | `class EnumColourConversionMode` |
-| ObjC / Swift | `enum EnumColourConversionMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| CICM_SKIP | EnumColourConversionModeSkip | 0x00 | Skip the colour conversion. | `N/A` |
-| CICM_GENERAL | EnumColourConversionModeGeneral | 0x01 | Converts a colour image to a grayscale image using the general algorithm. | [`BlueChannelWeight`]({{ site.parameters_reference }}colour-conversion-modes.html#bluechannelweight) [`GreenChannelWeight`]({{ site.parameters_reference }}colour-conversion-modes.html#greenchannelweight) [`RedChannelWeight`]({{ site.parameters_reference }}colour-conversion-modes.html#redchannelweight) |
-
-
-
-
-
-
-
-## ConflictMode
-Describes the conflict mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ConflictMode` |
-| .Net | `enum Dynamsoft.DBR.EnumConflictMode` |
-| JavaScript | `Dynamsoft.DBR.EnumConflictMode` |
-| Python | `class EnumConflictMode(IntEnum)` |
-| Java / Android | `class EnumConflictMode` |
-| ObjC / Swift | `enum EnumConflictMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| CM_IGNORE | EnumConflictModeIgnore | 0x01 | Ignores new settings and inherits the previous settings. |
-| CM_OVERWRITE | EnumConflictModeOverwrite | 0x02 | Overwrites the old settings with new settings. |
-
-
-
-
-
-
-
-## DeblurMode
-Describes the deblur mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DeblurMode` |
-| .Net | `enum Dynamsoft.DBR.EnumDeblurMode` |
-| JavaScript | `Dynamsoft.DBR.EnumDeblurMode` |
-| Python | `class EnumDeblurMode(IntEnum)` |
-| Java / Android | `class EnumDeblurMode` |
-| ObjC / Swift | `enum EnumDeblurMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| DM_SKIP | EnumDeblurModeSkip | 0x00 | Skips the deblur process. |
-| DM_DIRECT_BINARIZATION | EnumDeblurModeDirectBinarization | 0x01 | Performs deblur process using the direct binarization algorithm. |
-| DM_THRESHOLD_BINARIZATION | EnumDeblurModeThresholdBinarization | 0x02 | Performs deblur process using the threshold binarization algorithm. |
-| DM_GRAY_EQUALIZATION | EnumDeblurModeGrayEqualization | 0x04 | Performs deblur process using the gray equalization algorithm.|
-| DM_SMOOTHING | EnumDeblurModeSmoothing | 0x08 | Performs deblur process using the smoothing algorithm.|
-| DM_MORPHING | EnumDeblurModeMorphing | 0x10 | Performs deblur process using the morphing algorithm.|
-| DM_DEEP_ANALYSIS | EnumDeblurModeDeepAnalysis | 0x20 | Performs deblur process using the deep analysis algorithm. |
-| DM_SHARPENING | EnumDeblurModeSharpening | 0x40 | Performs deblur process using the sharpening algorithm. |
-| DM_BASED_ON_LOC_BIN | EnumDeblurModeBasedOnLocBin | 0x80 | Performs deblur process based on the binary image from the localization process. |
-| DM_SHARPENING_SMOOTHING | EnumDeblurModeSharpeningSmoothing | 0x100 | Performs deblur process using the sharpening and smoothing algorithm.|
-
-
-
-
-
-
-
-## DeformationResistingMode
-Describes the deformation resisting mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DeformationResistingMode` |
-| .Net | `enum Dynamsoft.DBR.EnumDeformationResistingMode` |
-| JavaScript | `Dynamsoft.DBR.EnumDeformationResistingMode` |
-| Python | `class EnumDeformationResistingMode(IntEnum)` |
-| Java / Android | `class EnumDeformationResistingMode` |
-| ObjC / Swift | `enum EnumDeformationResistingMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| DRM_SKIP | EnumDeformationResistingModeSkip | 0x00 | Skip the deformation resisting. | `N/A` |
-| DRM_AUTO | EnumDeformationResistingModeAuto | 0x01 | **Not supported yet.** | `N/A` |
-| DRM_GENERAL | EnumDeformationResistingModeGeneral | 0x02 | Resists deformation using the general algorithm. | [`Level`]({{ site.parameters_reference }}deformation-resisting-modes.html#level) |
-
-
-
-
-
-
-
-## DPMCodeReadingMode
-Describes the DPM code reading mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DPMCodeReadingMode` |
-| .Net | `enum Dynamsoft.DBR.EnumDPMCodeReadingMode` |
-| JavaScript | `Dynamsoft.DBR.EnumDPMCodeReadingMode` |
-| Python | `class EnumDPMCodeReadingMode(IntEnum)` |
-| Java / Android | `class EnumDPMCodeReadingMode` |
-| ObjC / Swift | `enum EnumDPMCodeReadingMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| DPMCRM_SKIP | EnumDPMCodeReadingModeSkip | 0x00 | Skip the DPM code reading. |
-| DPMCRM_AUTO | EnumDPMCodeReadingModeAuto | 0x01 | **Not supported yet.** |
-| DPMCRM_GENERAL | EnumDPMCodeReadingModeGeneral | 0x02 | Reads DPM code using the general algorithm. |
-
-
-
-
-
-
-
-## GrayscaleTransformationMode
-Describes the grayscale transformation mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum GrayscaleTransformationMode` |
-| .Net | `enum Dynamsoft.DBR.EnumGrayscaleTransformationMode` |
-| JavaScript | `Dynamsoft.DBR.EnumGrayscaleTransformationMode` |
-| Python | `class EnumGrayscaleTransformationMode(IntEnum)` |
-| Java / Android | `class EnumGrayscaleTransformationMode` |
-| ObjC / Swift | `enum EnumGrayscaleTransformationMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| GTM_SKIP | EnumGrayscaleTransformationModeSkip | 0x00 | Skips grayscale transformation. |
-| GTM_INVERTED | EnumGrayscaleTransformationModeInverted | 0x01 | Transforms to inverted grayscale. Recommended for light on dark images. |
-| GTM_ORIGINAL | EnumGrayscaleTransformationModeOriginal | 0x02 | Keeps the original grayscale. Recommended for dark on light images. |
-
-
-
-
-
-
-
-## ImagePreprocessingMode
-Describes the image preprocessing mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ImagePreprocessingMode` |
-| .Net | `enum Dynamsoft.DBR.EnumImagePreprocessingMode` |
-| JavaScript | `Dynamsoft.DBR.EnumImagePreprocessingMode` |
-| Python | `class EnumImagePreprocessingMode(IntEnum)` |
-| Java / Android | `class EnumImagePreprocessingMode` |
-| ObjC / Swift | `enum EnumImagePreprocessingMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| IPM_SKIP | EnumImagePreprocessingModeSkip | 0x00 | Skips image preprocessing. | `N/A` |
-| IPM_AUTO | EnumImagePreprocessingModeAuto | 0x01 | **Not supported yet.** | `N/A` |
-| IPM_GENERAL | EnumImagePreprocessingModeGeneral | 0x02 | Takes the unpreprocessed image for following operations. | `N/A` |
-| IPM_GRAY_EQUALIZE | EnumImagePreprocessingModeGrayEqualize | 0x04 | Preprocesses the image using the gray equalization algorithm. | [`Sensitivity`]({{ site.parameters_reference }}image-preprocessing-modes.html#sensitivity) |
-| IPM_GRAY_SMOOTH | EnumImagePreprocessingModeGraySmooth | 0x08 | Preprocesses the image using the gray smoothing algorithm. | [`SmoothBlockSizeX`]({{ site.parameters_reference }}image-preprocessing-modes.html#smoothblocksizex) [`SmoothBlockSizeY`]({{ site.parameters_reference }}image-preprocessing-modes.html#smoothblocksizey) |
-| IPM_SHARPEN_SMOOTH | EnumImagePreprocessingModeSharpenSmooth | 0x10 | Preprocesses the image using the sharpening and smoothing algorithm. | [`SmoothBlockSizeX`]({{ site.parameters_reference }}image-preprocessing-modes.html#smoothblocksizex) [`SmoothBlockSizeY`]({{ site.parameters_reference }}image-preprocessing-modes.html#smoothblocksizey) [`SharpenBlockSizeX`]({{ site.parameters_reference }}image-preprocessing-modes.html#sharpenblocksizex) [`SharpenBlockSizeY`]({{ site.parameters_reference }}image-preprocessing-modes.html#sharpenblocksizey) |
-| IPM_MORPHOLOGY | EnumImagePreprocessingModeMorphology | 0x20 | Preprocesses the image using the morphology algorithm. | [`MorphOperation`]({{ site.parameters_reference }}image-preprocessing-modes.html#morphoperation) [`MorphShape`]({{ site.parameters_reference }}image-preprocessing-modes.html#morphshape) [`MorphOperationKernelSizeX`]({{ site.parameters_reference }}image-preprocessing-modes.html#morphoperationkernelsizex) [`MorphOperationKernelSizeY`]({{ site.parameters_reference }}image-preprocessing-modes.html#morphoperationkernelsizey) |
-
-
-
-
-
-
-
-## LocalizationMode
-Describes the localization mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum LocalizationMode` |
-| .Net | `enum Dynamsoft.DBR.EnumLocalizationMode` |
-| JavaScript | `Dynamsoft.DBR.EnumLocalizationMode` |
-| Python | `class EnumLocalizationMode(IntEnum)` |
-| Java / Android | `class EnumLocalizationMode` |
-| ObjC / Swift | `enum EnumLocalizationMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| LM_SKIP | EnumLocalizationModeSkip | 0x00 | Skips localization. | `N/A` |
-| LM_AUTO | EnumLocalizationModeAuto | 0x01 | Not supported yet. | `N/A` |
-| LM_CONNECTED_BLOCKS | EnumLocalizationModeConnectedBlocks | 0x02 | Localizes barcodes by searching for connected blocks. This algorithm usually gives best result and it is recommended to set ConnectedBlocks to the highest priority. | `N/A` |
-| LM_STATISTICS | EnumLocalizationModeStatistics | 0x04 | Localizes barcodes by groups of contiguous black-white regions. This is optimized for QRCode and DataMatrix. | `N/A` |
-| LM_LINES | EnumLocalizationModeLines | 0x08 | Localizes barcodes by searching for groups of lines. This is optimized for 1D and PDF417 barcodes. | `N/A` |
-| LM_SCAN_DIRECTLY | EnumLocalizationModeScanDirectly | 0x10 | Localizes barcodes quickly. This mode is recommended in interactive scenario. | [`ScanStride`]({{ site.parameters_reference }}localization-modes.html#scanstride) [`ScanDirection`]({{ site.parameters_reference }}localization-modes.html#scandirection) |
-| LM_STATISTICS_MARKS | EnumLocalizationModeStatisticsMarks | 0x20 | Localizes barcodes by groups of marks.This is optimized for DPM codes. | `N/A` |
-| LM_STATISTICS_POSTAL_CODE | EnumLocalizationModeStatisticsPostalCode | 0x40 | Localizes barcodes by groups of connected blocks and lines.This is optimized for postal codes. | `N/A` |
-| LM_CENTRE | EnumLocalizationModeCentre | 0x80 | Localizes barcodes from the centre of the image. | `N/A` |
-
-
-
-
-
-
-
-## PDFReadingMode
-Describes the PDF reading mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum PDFReadingMode` |
-| .Net | `enum Dynamsoft.DBR.EnumPDFReadingMode` |
-| JavaScript | `Dynamsoft.DBR.EnumPDFReadingMode` |
-| Python | `class EnumPDFReadingMode(IntEnum)` |
-| Java / Android | `class EnumPDFReadingMode` |
-| ObjC / Swift | `enum EnumPDFReadingMode` |
-
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| PDFRM_AUTO | EnumPDFReadingModeAuto | 0x01 | Lets the library choose the reading mode automatically. |
-| PDFRM_VECTOR | EnumPDFReadingModeVector | 0x02 | Detects barcode from vector data in PDF file. |
-| PDFRM_RASTER | EnumPDFReadingModeRaster | 0x04 | Converts the PDF file to image(s) first, then perform barcode recognition. |
-
-
-
-
-
-
-## RegionPredetectionMode
-Describes the region predetection mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum RegionPredetectionMode` |
-| .Net | `enum Dynamsoft.DBR.EnumRegionPredetectionMode` |
-| JavaScript | `Dynamsoft.DBR.EnumRegionPredetectionMode` |
-| Python | `class EnumRegionPredetectionMode(IntEnum)` |
-| Java / Android | `class EnumRegionPredetectionMode` |
-| ObjC / Swift | `enum EnumRegionPredetectionMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| RPM_SKIP | EnumRegionPredetectionModeSkip | 0x00 | Skips region detection. | `N/A` |
-| RPM_AUTO | EnumRegionPredetectionModeAuto | 0x01 | Lets the library choose an algorithm automatically to detect region. | `N/A` |
-| RPM_GENERAL | EnumRegionPredetectionModeGeneral | 0x02 | Takes the whole image as a region. | `N/A` |
-| RPM_GENERAL_RGB_CONTRAST | EnumRegionPredetectionModeGeneralRGBContrast | 0x04 | Detects region using the general algorithm based on RGB colour contrast. | [`MinImageDimension`]({{ site.parameters_reference }}region-predetection-modes.html#minimagedimension) [`Sensitivity`]({{ site.parameters_reference }}region-predetection-modes.html#sensitivity) [`SpatialIndexBlockSize`]({{ site.parameters_reference }}region-predetection-modes.html#spatialindexblocksize) |
-| RPM_GENERAL_GRAY_CONTRAST | EnumRegionPredetectionModeGeneralGrayContrast | 0x08 | Detects region using the general algorithm based on gray contrast. | [`MinImageDimension`]({{ site.parameters_reference }}region-predetection-modes.html#minimagedimension) [`Sensitivity`]({{ site.parameters_reference }}region-predetection-modes.html#sensitivity) [`SpatialIndexBlockSize`]({{ site.parameters_reference }}region-predetection-modes.html#spatialindexblocksize) |
-| RPM_GENERAL_HSV_CONTRAST | EnumRegionPredetectionModeGeneralHSVContrast | 0x10 | Detects region using the general algorithm based on HSV colour contrast. | [`AspectRatioRange`]({{ site.parameters_reference }}region-predetection-modes.html#aspectratiorange) [`FindAccurateBoundary`]({{ site.parameters_reference }}region-predetection-modes.html#findaccurateboundary) [`ForeAndBackgroundColours`]({{ site.parameters_reference }}region-predetection-modes.html#foreandbackgroundcolours) [`HeightRange`]({{ site.parameters_reference }}region-predetection-modes.html#heightrange) [`MinImageDimension`]({{ site.parameters_reference }}region-predetection-modes.html#minimagedimension) [`RelativeBarcodeRegions`]({{ site.parameters_reference }}region-predetection-modes.html#relativebarcoderegions) [`Sensitivity`]({{ site.parameters_reference }}region-predetection-modes.html#sensitivity) [`SpatialIndexBlockSize`]({{ site.parameters_reference }}region-predetection-modes.html#spatialindexblocksize) [`WidthRange`]({{ site.parameters_reference }}region-predetection-modes.html#widthrange) |
-
-
-
-
-
-
-
-## ScaleUpMode
-Describes the scale up mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ScaleUpMode` |
-| .Net | `enum Dynamsoft.DBR.EnumScaleUpMode` |
-| JavaScript | `Dynamsoft.DBR.EnumScaleUpMode` |
-| Python | `class EnumScaleUpMode(IntEnum)` |
-| Java / Android | `class EnumScaleUpMode` |
-| ObjC / Swift | `enum EnumScaleUpMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| SUM_SKIP | EnumScaleUpModeSkip | 0x00 | Skip the scale-up process. | `N/A` |
-| SUM_AUTO | EnumScaleUpModeAuto | 0x01 | The library chooses an interpolation method automatically to scale up. | `N/A` |
-| SUM_LINEAR_INTERPOLATION | EnumScaleUpModeLinearInterpolation | 0x02 | Scales up using the linear interpolation method. | [`AcuteAngleWithXThreshold`]({{ site.parameters_reference }}scale-up-modes.html#acuteanglewithxthreshold) [`ModuleSizeThreshold`]({{ site.parameters_reference }}scale-up-modes.html#modulesizethreshold) [`TargetModuleSize`]({{ site.parameters_reference }}scale-up-modes.html#targetmodulesize) |
-| SUM_NEAREST_NEIGHBOUR_INTERPOLATION | EnumScaleUpModeNearestNeighbourInterpolation | 0x04 | Scales up using the nearest-neighbour interpolation method. | [`AcuteAngleWithXThreshold`]({{ site.parameters_reference }}scale-up-modes.html#acuteanglewithxthreshold) [`ModuleSizeThreshold`]({{ site.parameters_reference }}scale-up-modes.html#modulesizethreshold) [`TargetModuleSize`]({{ site.parameters_reference }}scale-up-modes.html#targetmodulesize) |
-
-
-
-
-
-
-
-## TerminatePhase
-Describes the terminate phase.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum TerminatePhase` |
-| .Net | `enum Dynamsoft.DBR.EnumTerminatePhase` |
-| JavaScript | `Dynamsoft.DBR.EnumTerminatePhase` |
-| Python | `class EnumTerminatePhase(IntEnum)` |
-| Java / Android | `class EnumTerminatePhase` |
-| ObjC / Swift | `enum EnumTerminatePhase` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| TP_REGION_PREDETECTED | EnumTerminatePhasePredetected | 0x01 | Exits the barcode reading algorithm after the region predetection is done. |
-| TP_IMAGE_PREPROCESSED | EnumTerminatePhasePreprocecessed | 0x02 | Exits the barcode reading algorithm after the region predetection and image pre-processing is done. |
-| TP_IMAGE_BINARIZED | EnumTerminatePhaseBinarized | 0x04 | Exits the barcode reading algorithm after the region predetection, image pre-processing, and image binarization are done. |
-| TP_BARCODE_LOCALIZED | EnumTerminatePhasesLocalized | 0x08 | Exits the barcode reading algorithm after the region predetection, image pre-processing, image binarization, and barcode localization are done. |
-| TP_BARCODE_TYPE_DETERMINED | EnumTerminatePhaseDetermined | 0x10 | Exits the barcode reading algorithm after the region predetection, image pre-processing, image binarization, barcode localization, and barcode type determining are done. |
-| TP_BARCODE_RECOGNIZED | EnumTerminatePhaseRecognized | 0x20 | Exits the barcode reading algorithm after the region predetection, image pre-processing, image binarization, barcode localization, barcode type determining, and barcode recognition are done. |
-
-
-
-
-
-
-
-
-## TextFilterMode
-Describes the text filter mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum TextFilterMode` |
-| .Net | `enum Dynamsoft.DBR.EnumTextFilterMode` |
-| JavaScript | `Dynamsoft.DBR.EnumTextFilterMode` |
-| Python | `class EnumTextFilterMode(IntEnum)` |
-| Java / Android | `class EnumTextFilterMode` |
-| ObjC / Swift | `enum EnumTextFilterMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| TFM_SKIP | EnumTextFilterModeSkip | 0x00 | Skip the text filtering. | `N/A` |
-| TFM_AUTO | EnumTextFilterModeAuto | 0x01 | **Not supported yet.** | `N/A` |
-| TFM_GENERAL_CONTOUR | EnumTextFilterModeGeneralContour | 0x02 | Filters text using the general algorithm based on contour. | [`MinImageDimension`]({{ site.parameters_reference }}text-filter-modes.html#minimagedimension) [`Sensitivity`]({{ site.parameters_reference }}text-filter-modes.html#sensitivity) |
-
-
-
-
-
-
-
-## TextureDetectionMode
-Describes the texture detection mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum TextureDetectionMode` |
-| .Net | `enum Dynamsoft.DBR.EnumTextureDetectionMode` |
-| JavaScript | `Dynamsoft.DBR.EnumTextureDetectionMode` |
-| Python | `class EnumTextureDetectionMode(IntEnum)` |
-| Java / Android | `class EnumTextureDetectionMode` |
-| ObjC / Swift | `enum EnumTextureDetectionMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| TDM_SKIP | EnumTextureDetectionModeSkip | 0x00 | Skips texture detection. | `N/A` |
-| TDM_AUTO | EnumTextureDetectionModeAuto | 0x01 | Not supported yet. | `N/A` |
-| TDM_GENERAL_WIDTH_CONCENTRATION | EnumTextureDetectionModeGeneralWidthConcentration | 0x02 | Detects texture using the general algorithm. | [`Sensitivity`]({{ site.parameters_reference }}texture-detection-modes.html#sensitivity) |
-
-
diff --git a/parameters/enum/parameter-mode-enums-v8.9.3.md b/parameters/enum/parameter-mode-enums-v8.9.3.md
deleted file mode 100644
index 2da75ede..00000000
--- a/parameters/enum/parameter-mode-enums-v8.9.3.md
+++ /dev/null
@@ -1,474 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Parameter Mode Enumerations
-description: This article shows Parameter Mode Enumerations of Dynamsoft Barcode Reader v8.9.3.
-keywords: BarcodeColourMode, BarcodeComplementMode, BinarizationMode, ColourClusteringMode, ColourConversionMode, ConflictMode, DeblurMode, DeformationResistingMode, DPMCodeReadingMode, GrayscaleTransformationMode, ImagePreprocessingMode, LocalizationMode, PDFReadingMode, RegionPredetectionMode, ScaleUpMode, TerminatePhase, TextFilterMode, TextureDetectionMode, parameter mode enumeration, enumeration
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-permalink: /parameters/enum/parameter-mode-enums-v8.9.3.html
----
-
-# Parameter Mode Enumeration
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`BarcodeColourMode`](#barcodecolourmode) | Describes the barcode colour mode. |
- | [`BarcodeComplementMode`](#barcodecomplementmode) | Describes the barcode complement mode. |
- | [`BinarizationMode`](#binarizationmode) | Describes the binarization mode. |
- | [`ColourClusteringMode`](#colourclusteringmode) | Describes the colour clustering mode. |
- | [`ColourConversionMode`](#colourconversionmode) | Describes the colour conversion mode. |
- | [`ConflictMode`](#conflictmode) | Describes the conflict mode. |
- | [`DeblurMode`](#deblurmode) | Describes the deblur mode. |
- | [`DeformationResistingMode`](#deformationresistingmode) | Describes the deformation resisting mode. |
- | [`DPMCodeReadingMode`](#dpmcodereadingmode) | Describes the DPM code reading mode. |
- | [`GrayscaleTransformationMode`](#grayscaletransformationmode) | Describes the grayscale transformation mode. |
- | [`ImagePreprocessingMode`](#imagepreprocessingmode) | Describes the image preprocessing mode. |
- | [`LocalizationMode`](#localizationmode) | Describes the localization mode. |
- | [`PDFReadingMode`](#pdfreadingmode) | Describes the PDF reading mode. |
- | [`RegionPredetectionMode`](#regionpredetectionmode) | Describes the region predetection mode. |
- | [`ScaleUpMode`](#scaleupmode) | Describes the scale up mode. |
- | [`TerminatePhase`](#terminatephase) | Describes the terminate phase. |
- | [`TextFilterMode`](#textfiltermode) | Describes the text filter mode. |
- | [`TextureDetectionMode`](#texturedetectionmode) | Describes the texture detection mode. |
-
-## BarcodeColourMode
-
-Describes the barcode colour mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum BarcodeColourMode` |
-| .Net | `enum Dynamsoft.DBR.EnumBarcodeColourMode` |
-| JavaScript | `Dynamsoft.DBR.EnumBarcodeColourMode` |
-| Python | `class EnumBarcodeColourMode(IntEnum)` |
-| Java / Android | `class EnumBarcodeColourMode` |
-| ObjC / Swift | `enum EnumBarcodeColourMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| BICM_SKIP | EnumBarcodeColourModeSkip | 0x00 | Skips the barcode colour operation. | `N/A` |
-| BICM_DARK_ON_LIGHT | EnumBarcodeColourModeDarkOnLight | 0x01 | Dark items on a light background. | [`LightReflection`]({{ site.parameters_reference }}barcode-colour-modes.html#lightreflection) |
-| BICM_LIGHT_ON_DARK | EnumBarcodeColourModeLightOnDark | 0x02 | Light items on a dark background. **Not supported yet**. | `N/A` |
-| BICM_DARK_ON_DARK | EnumBarcodeColourModeDarkOnDark | 0x04 | Dark items on a dark background. **Not supported yet**. | `N/A` |
-| BICM_LIGHT_ON_LIGHT | EnumBarcodeColourModeLightOnLight | 0x08 | Light items on a light background. **Not supported yet**. | `N/A` |
-| BICM_DARK_LIGHT_MIXED | EnumBarcodeColourModeDarkLightMixed | 0x10 | The background is mixed by dark and light. **Not supported yet**. | `N/A` |
-| BICM_DARK_ON_LIGHT_DARK_SURROUNDING | EnumBarcodeColourModeDarkOnLightDarkSurrounding | 0x20 | Dark item on a light background surrounded by dark. | [`LightReflection`]({{ site.parameters_reference }}barcode-colour-modes.html#lightreflection) |
-
-## BarcodeComplementMode
-
-Describes the barcode complement mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum BarcodeComplementMode` |
-| .Net | `enum Dynamsoft.DBR.EnumBarcodeComplementMode` |
-| JavaScript | `Dynamsoft.DBR.EnumBarcodeComplementMode` |
-| Python | `class EnumBarcodeComplementMode(IntEnum)` |
-| Java / Android | `class EnumBarcodeComplementMode` |
-| ObjC / Swift | `enum EnumBarcodeComplementMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| BCM_SKIP | EnumBarcodeComplementModeSkip | 0x00 | Skips the barcode complement. |
-| BCM_AUTO | EnumBarcodeComplementModeAuto | 0x01 | **Not supported yet.** |
-| BCM_GENERAL | EnumBarcodeComplementModeGeneral | 0x02 | Complements the barcode using the general algorithm. |
-
-## BinarizationMode
-
-Describes the binarization mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum BinarizationMode` |
-| .Net | `enum Dynamsoft.DBR.EnumBinarizationMode` |
-| JavaScript | `Dynamsoft.DBR.EnumBinarizationMode` |
-| Python | `class EnumBinarizationMode(IntEnum)` |
-| Java / Android | `class EnumBinarizationMode` |
-| ObjC / Swift | `enum EnumBinarizationMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| BM_SKIP | EnumBinarizationModeSkip | 0x00 | Skips the binarization. | `N/A` |
-| BM_AUTO | EnumBinarizationModeAuto | 0x01 | **Not supported yet.** | `N/A` |
-| BM_LOCAL_BLOCK | EnumBinarizationModeLocalBlock | 0x02 | Binarizes the image based on the local block. | [`BlockSizeX`]({{ site.parameters_reference }}binarization-modes.html#blocksizex) [`BlockSizeY`]({{ site.parameters_reference }}binarization-modes.html#blocksizey) [`EnableFillBinaryVacancy`]({{ site.parameters_reference }}binarization-modes.html#enablefillbinaryvacancy) [`ImagePreprocessingModesIndex`]({{ site.parameters_reference }}binarization-modes.html#imagepreprocessingmodesindex) [`ThresholdCompensation`]({{ site.parameters_reference }}binarization-modes.html#thresholdcompensation) |
-| BM_THRESHOLD | EnumBinarizationModeThreshold | 0x04 | Performs image binarization based on the given threshold. | [`BinarizationThreshold`]({{ site.parameters_reference }}binarization-modes.html#binarizationthreshold) [`ImagePreprocessingModesIndex`]({{ site.parameters_reference }}binarization-modes.html#imagepreprocessingmodesindex) |
-
-## ColourClusteringMode
-
-Describes the colour clustering mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ColourClusteringMode` |
-| .Net | `enum Dynamsoft.DBR.EnumColourClusteringMode` |
-| JavaScript | `Dynamsoft.DBR.EnumColourClusteringMode` |
-| Python | `class EnumColourClusteringMode(IntEnum)` |
-| Java / Android | `class EnumColourClusteringMode` |
-| ObjC / Swift | `enum EnumColourClusteringMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| CCM_SKIP | EnumColourClusteringModeSkip | 0x00 | Skips the colour clustering. | `N/A` |
-| CCM_AUTO | EnumColourClusteringModeAuto | 0x01 | **Not supported yet.** | `N/A` |
-| CCM_GENERAL_HSV | EnumColourClusteringModeGeneralHSV | 0x02 | Clusters colours using the general algorithm based on HSV. | [`Sensitivity`]({{ site.parameters_reference }}colour-clustering-modes.html#sensitivity) |
-
-## ColourConversionMode
-
-Describes the colour conversion mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ColourConversionMode` |
-| .Net | `enum Dynamsoft.DBR.EnumColourConversionMode` |
-| JavaScript | `Dynamsoft.DBR.EnumColourConversionMode` |
-| Python | `class EnumColourConversionMode(IntEnum)` |
-| Java / Android | `class EnumColourConversionMode` |
-| ObjC / Swift | `enum EnumColourConversionMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| CICM_SKIP | EnumColourConversionModeSkip | 0x00 | Skip the colour conversion. | `N/A` |
-| CICM_GENERAL | EnumColourConversionModeGeneral | 0x01 | Converts a colour image to a grayscale image using the general algorithm. | [`BlueChannelWeight`]({{ site.parameters_reference }}colour-conversion-modes.html#bluechannelweight) [`GreenChannelWeight`]({{ site.parameters_reference }}colour-conversion-modes.html#greenchannelweight) [`RedChannelWeight`]({{ site.parameters_reference }}colour-conversion-modes.html#redchannelweight) |
-
-## ConflictMode
-
-Describes the conflict mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ConflictMode` |
-| .Net | `enum Dynamsoft.DBR.EnumConflictMode` |
-| JavaScript | `Dynamsoft.DBR.EnumConflictMode` |
-| Python | `class EnumConflictMode(IntEnum)` |
-| Java / Android | `class EnumConflictMode` |
-| ObjC / Swift | `enum EnumConflictMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| CM_IGNORE | EnumConflictModeIgnore | 0x01 | Ignores new settings and inherits the previous settings. |
-| CM_OVERWRITE | EnumConflictModeOverwrite | 0x02 | Overwrites the old settings with new settings. |
-
-## DeblurMode
-
-Describes the deblur mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DeblurMode` |
-| .Net | `enum Dynamsoft.DBR.EnumDeblurMode` |
-| JavaScript | `Dynamsoft.DBR.EnumDeblurMode` |
-| Python | `class EnumDeblurMode(IntEnum)` |
-| Java / Android | `class EnumDeblurMode` |
-| ObjC / Swift | `enum EnumDeblurMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| DM_SKIP | EnumDeblurModeSkip | 0x00 | Skips the deblur process. |
-| DM_DIRECT_BINARIZATION | EnumDeblurModeDirectBinarization | 0x01 | Performs deblur process using the direct binarization algorithm. |
-| DM_THRESHOLD_BINARIZATION | EnumDeblurModeThresholdBinarization | 0x02 | Performs deblur process using the threshold binarization algorithm. |
-| DM_GRAY_EQUALIZATION | EnumDeblurModeGrayEqualization | 0x04 | Performs deblur process using the gray equalization algorithm.|
-| DM_SMOOTHING | EnumDeblurModeSmoothing | 0x08 | Performs deblur process using the smoothing algorithm.|
-| DM_MORPHING | EnumDeblurModeMorphing | 0x10 | Performs deblur process using the morphing algorithm.|
-| DM_DEEP_ANALYSIS | EnumDeblurModeDeepAnalysis | 0x20 | Performs deblur process using the deep analysis algorithm. |
-| DM_SHARPENING | EnumDeblurModeSharpening | 0x40 | Performs deblur process using the sharpening algorithm. |
-| DM_BASED_ON_LOC_BIN | EnumDeblurModeBasedOnLocBin | 0x80 | Performs deblur process based on the binary image from the localization process. |
-| DM_SHARPENING_SMOOTHING | EnumDeblurModeSharpeningSmoothing | 0x100 | Performs deblur process using the sharpening and smoothing algorithm.|
-
-## DeformationResistingMode
-
-Describes the deformation resisting mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DeformationResistingMode` |
-| .Net | `enum Dynamsoft.DBR.EnumDeformationResistingMode` |
-| JavaScript | `Dynamsoft.DBR.EnumDeformationResistingMode` |
-| Python | `class EnumDeformationResistingMode(IntEnum)` |
-| Java / Android | `class EnumDeformationResistingMode` |
-| ObjC / Swift | `enum EnumDeformationResistingMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| DRM_SKIP | EnumDeformationResistingModeSkip | 0x00 | Skip the deformation resisting. | `N/A` |
-| DRM_AUTO | EnumDeformationResistingModeAuto | 0x01 | **Not supported yet.** | `N/A` |
-| DRM_GENERAL | EnumDeformationResistingModeGeneral | 0x02 | Resists deformation using the general algorithm. | [`Level`]({{ site.parameters_reference }}deformation-resisting-modes.html#level) |
-
-## DPMCodeReadingMode
-
-Describes the DPM code reading mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DPMCodeReadingMode` |
-| .Net | `enum Dynamsoft.DBR.EnumDPMCodeReadingMode` |
-| JavaScript | `Dynamsoft.DBR.EnumDPMCodeReadingMode` |
-| Python | `class EnumDPMCodeReadingMode(IntEnum)` |
-| Java / Android | `class EnumDPMCodeReadingMode` |
-| ObjC / Swift | `enum EnumDPMCodeReadingMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| DPMCRM_SKIP | EnumDPMCodeReadingModeSkip | 0x00 | Skip the DPM code reading. |
-| DPMCRM_AUTO | EnumDPMCodeReadingModeAuto | 0x01 | **Not supported yet.** |
-| DPMCRM_GENERAL | EnumDPMCodeReadingModeGeneral | 0x02 | Reads DPM code using the general algorithm. |
-
-## GrayscaleTransformationMode
-
-Describes the grayscale transformation mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum GrayscaleTransformationMode` |
-| .Net | `enum Dynamsoft.DBR.EnumGrayscaleTransformationMode` |
-| JavaScript | `Dynamsoft.DBR.EnumGrayscaleTransformationMode` |
-| Python | `class EnumGrayscaleTransformationMode(IntEnum)` |
-| Java / Android | `class EnumGrayscaleTransformationMode` |
-| ObjC / Swift | `enum EnumGrayscaleTransformationMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| GTM_SKIP | EnumGrayscaleTransformationModeSkip | 0x00 | Skips grayscale transformation. |
-| GTM_INVERTED | EnumGrayscaleTransformationModeInverted | 0x01 | Transforms to inverted grayscale. Recommended for light on dark images. |
-| GTM_ORIGINAL | EnumGrayscaleTransformationModeOriginal | 0x02 | Keeps the original grayscale. Recommended for dark on light images. |
-
-## ImagePreprocessingMode
-
-Describes the image preprocessing mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ImagePreprocessingMode` |
-| .Net | `enum Dynamsoft.DBR.EnumImagePreprocessingMode` |
-| JavaScript | `Dynamsoft.DBR.EnumImagePreprocessingMode` |
-| Python | `class EnumImagePreprocessingMode(IntEnum)` |
-| Java / Android | `class EnumImagePreprocessingMode` |
-| ObjC / Swift | `enum EnumImagePreprocessingMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| IPM_SKIP | EnumImagePreprocessingModeSkip | 0x00 | Skips image preprocessing. | `N/A` |
-| IPM_AUTO | EnumImagePreprocessingModeAuto | 0x01 | **Not supported yet.** | `N/A` |
-| IPM_GENERAL | EnumImagePreprocessingModeGeneral | 0x02 | Takes the unpreprocessed image for following operations. | `N/A` |
-| IPM_GRAY_EQUALIZE | EnumImagePreprocessingModeGrayEqualize | 0x04 | Preprocesses the image using the gray equalization algorithm. | [`Sensitivity`]({{ site.parameters_reference }}image-preprocessing-modes.html#sensitivity) |
-| IPM_GRAY_SMOOTH | EnumImagePreprocessingModeGraySmooth | 0x08 | Preprocesses the image using the gray smoothing algorithm. | [`SmoothBlockSizeX`]({{ site.parameters_reference }}image-preprocessing-modes.html#smoothblocksizex) [`SmoothBlockSizeY`]({{ site.parameters_reference }}image-preprocessing-modes.html#smoothblocksizey) |
-| IPM_SHARPEN_SMOOTH | EnumImagePreprocessingModeSharpenSmooth | 0x10 | Preprocesses the image using the sharpening and smoothing algorithm. | [`SmoothBlockSizeX`]({{ site.parameters_reference }}image-preprocessing-modes.html#smoothblocksizex) [`SmoothBlockSizeY`]({{ site.parameters_reference }}image-preprocessing-modes.html#smoothblocksizey) [`SharpenBlockSizeX`]({{ site.parameters_reference }}image-preprocessing-modes.html#sharpenblocksizex) [`SharpenBlockSizeY`]({{ site.parameters_reference }}image-preprocessing-modes.html#sharpenblocksizey) |
-| IPM_MORPHOLOGY | EnumImagePreprocessingModeMorphology | 0x20 | Preprocesses the image using the morphology algorithm. | [`MorphOperation`]({{ site.parameters_reference }}image-preprocessing-modes.html#morphoperation) [`MorphShape`]({{ site.parameters_reference }}image-preprocessing-modes.html#morphshape) [`MorphOperationKernelSizeX`]({{ site.parameters_reference }}image-preprocessing-modes.html#morphoperationkernelsizex) [`MorphOperationKernelSizeY`]({{ site.parameters_reference }}image-preprocessing-modes.html#morphoperationkernelsizey) |
-
-## LocalizationMode
-
-Describes the localization mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum LocalizationMode` |
-| .Net | `enum Dynamsoft.DBR.EnumLocalizationMode` |
-| JavaScript | `Dynamsoft.DBR.EnumLocalizationMode` |
-| Python | `class EnumLocalizationMode(IntEnum)` |
-| Java / Android | `class EnumLocalizationMode` |
-| ObjC / Swift | `enum EnumLocalizationMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| LM_SKIP | EnumLocalizationModeSkip | 0x00 | Skips localization. | `N/A` |
-| LM_AUTO | EnumLocalizationModeAuto | 0x01 | Not supported yet. | `N/A` |
-| LM_CONNECTED_BLOCKS | EnumLocalizationModeConnectedBlocks | 0x02 | Localizes barcodes by searching for connected blocks. This algorithm usually gives best result and it is recommended to set ConnectedBlocks to the highest priority. | `N/A` |
-| LM_STATISTICS | EnumLocalizationModeStatistics | 0x04 | Localizes barcodes by groups of contiguous black-white regions. This is optimized for QRCode and DataMatrix. | `N/A` |
-| LM_LINES | EnumLocalizationModeLines | 0x08 | Localizes barcodes by searching for groups of lines. This is optimized for 1D and PDF417 barcodes. | `N/A` |
-| LM_SCAN_DIRECTLY | EnumLocalizationModeScanDirectly | 0x10 | Localizes barcodes quickly. This mode is recommended in interactive scenario. | [`ScanStride`]({{ site.parameters_reference }}localization-modes.html#scanstride) [`ScanDirection`]({{ site.parameters_reference }}localization-modes.html#scandirection) |
-| LM_STATISTICS_MARKS | EnumLocalizationModeStatisticsMarks | 0x20 | Localizes barcodes by groups of marks.This is optimized for DPM codes. | `N/A` |
-| LM_STATISTICS_POSTAL_CODE | EnumLocalizationModeStatisticsPostalCode | 0x40 | Localizes barcodes by groups of connected blocks and lines.This is optimized for postal codes. | `N/A` |
-| LM_CENTRE | EnumLocalizationModeCentre | 0x80 | Localizes barcodes from the centre of the image. | `N/A` |
-| LM_ONED_FAST_SCAN | EnumLocalizationModeOneDFastScan | 0x100 | Localizes 1D barcodes in a fast mode. | [`ScanStride`]({{ site.parameters_reference }}localization-modes.html#scanstride) [`ScanDirection`]({{ site.parameters_reference }}localization-modes.html#scandirection) |
-
-## PDFReadingMode
-
-Describes the PDF reading mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum PDFReadingMode` |
-| .Net | `enum Dynamsoft.DBR.EnumPDFReadingMode` |
-| JavaScript | `Dynamsoft.DBR.EnumPDFReadingMode` |
-| Python | `class EnumPDFReadingMode(IntEnum)` |
-| Java / Android | `class EnumPDFReadingMode` |
-| ObjC / Swift | `enum EnumPDFReadingMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| PDFRM_AUTO | EnumPDFReadingModeAuto | 0x01 | Lets the library choose the reading mode automatically. |
-| PDFRM_VECTOR | EnumPDFReadingModeVector | 0x02 | Detects barcode from vector data in PDF file. |
-| PDFRM_RASTER | EnumPDFReadingModeRaster | 0x04 | Converts the PDF file to image(s) first, then perform barcode recognition. |
-
-## RegionPredetectionMode
-
-Describes the region predetection mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum RegionPredetectionMode` |
-| .Net | `enum Dynamsoft.DBR.EnumRegionPredetectionMode` |
-| JavaScript | `Dynamsoft.DBR.EnumRegionPredetectionMode` |
-| Python | `class EnumRegionPredetectionMode(IntEnum)` |
-| Java / Android | `class EnumRegionPredetectionMode` |
-| ObjC / Swift | `enum EnumRegionPredetectionMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| RPM_SKIP | EnumRegionPredetectionModeSkip | 0x00 | Skips region detection. | `N/A` |
-| RPM_AUTO | EnumRegionPredetectionModeAuto | 0x01 | Lets the library choose an algorithm automatically to detect region. | `N/A` |
-| RPM_GENERAL | EnumRegionPredetectionModeGeneral | 0x02 | Takes the whole image as a region. | `N/A` |
-| RPM_GENERAL_RGB_CONTRAST | EnumRegionPredetectionModeGeneralRGBContrast | 0x04 | Detects region using the general algorithm based on RGB colour contrast. | [`MinImageDimension`]({{ site.parameters_reference }}region-predetection-modes.html#minimagedimension) [`Sensitivity`]({{ site.parameters_reference }}region-predetection-modes.html#sensitivity) [`SpatialIndexBlockSize`]({{ site.parameters_reference }}region-predetection-modes.html#spatialindexblocksize) |
-| RPM_GENERAL_GRAY_CONTRAST | EnumRegionPredetectionModeGeneralGrayContrast | 0x08 | Detects region using the general algorithm based on gray contrast. | [`MinImageDimension`]({{ site.parameters_reference }}region-predetection-modes.html#minimagedimension) [`Sensitivity`]({{ site.parameters_reference }}region-predetection-modes.html#sensitivity) [`SpatialIndexBlockSize`]({{ site.parameters_reference }}region-predetection-modes.html#spatialindexblocksize) |
-| RPM_GENERAL_HSV_CONTRAST | EnumRegionPredetectionModeGeneralHSVContrast | 0x10 | Detects region using the general algorithm based on HSV colour contrast. | [`AspectRatioRange`]({{ site.parameters_reference }}region-predetection-modes.html#aspectratiorange) [`FindAccurateBoundary`]({{ site.parameters_reference }}region-predetection-modes.html#findaccurateboundary) [`ForeAndBackgroundColours`]({{ site.parameters_reference }}region-predetection-modes.html#foreandbackgroundcolours) [`HeightRange`]({{ site.parameters_reference }}region-predetection-modes.html#heightrange) [`MinImageDimension`]({{ site.parameters_reference }}region-predetection-modes.html#minimagedimension) [`RelativeBarcodeRegions`]({{ site.parameters_reference }}region-predetection-modes.html#relativebarcoderegions) [`Sensitivity`]({{ site.parameters_reference }}region-predetection-modes.html#sensitivity) [`SpatialIndexBlockSize`]({{ site.parameters_reference }}region-predetection-modes.html#spatialindexblocksize) [`WidthRange`]({{ site.parameters_reference }}region-predetection-modes.html#widthrange) |
-
-## ScaleUpMode
-
-Describes the scale up mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ScaleUpMode` |
-| .Net | `enum Dynamsoft.DBR.EnumScaleUpMode` |
-| JavaScript | `Dynamsoft.DBR.EnumScaleUpMode` |
-| Python | `class EnumScaleUpMode(IntEnum)` |
-| Java / Android | `class EnumScaleUpMode` |
-| ObjC / Swift | `enum EnumScaleUpMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| SUM_SKIP | EnumScaleUpModeSkip | 0x00 | Skip the scale-up process. | `N/A` |
-| SUM_AUTO | EnumScaleUpModeAuto | 0x01 | The library chooses an interpolation method automatically to scale up. | `N/A` |
-| SUM_LINEAR_INTERPOLATION | EnumScaleUpModeLinearInterpolation | 0x02 | Scales up using the linear interpolation method. | [`AcuteAngleWithXThreshold`]({{ site.parameters_reference }}scale-up-modes.html#acuteanglewithxthreshold) [`ModuleSizeThreshold`]({{ site.parameters_reference }}scale-up-modes.html#modulesizethreshold) [`TargetModuleSize`]({{ site.parameters_reference }}scale-up-modes.html#targetmodulesize) |
-| SUM_NEAREST_NEIGHBOUR_INTERPOLATION | EnumScaleUpModeNearestNeighbourInterpolation | 0x04 | Scales up using the nearest-neighbour interpolation method. | [`AcuteAngleWithXThreshold`]({{ site.parameters_reference }}scale-up-modes.html#acuteanglewithxthreshold) [`ModuleSizeThreshold`]({{ site.parameters_reference }}scale-up-modes.html#modulesizethreshold) [`TargetModuleSize`]({{ site.parameters_reference }}scale-up-modes.html#targetmodulesize) |
-
-## TerminatePhase
-
-Describes the terminate phase.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum TerminatePhase` |
-| .Net | `enum Dynamsoft.DBR.EnumTerminatePhase` |
-| JavaScript | `Dynamsoft.DBR.EnumTerminatePhase` |
-| Python | `class EnumTerminatePhase(IntEnum)` |
-| Java / Android | `class EnumTerminatePhase` |
-| ObjC / Swift | `enum EnumTerminatePhase` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| TP_REGION_PREDETECTED | EnumTerminatePhasePredetected | 0x01 | Exits the barcode reading algorithm after the region predetection is done. |
-| TP_IMAGE_PREPROCESSED | EnumTerminatePhasePreprocecessed | 0x02 | Exits the barcode reading algorithm after the region predetection and image pre-processing is done. |
-| TP_IMAGE_BINARIZED | EnumTerminatePhaseBinarized | 0x04 | Exits the barcode reading algorithm after the region predetection, image pre-processing, and image binarization are done. |
-| TP_BARCODE_LOCALIZED | EnumTerminatePhasesLocalized | 0x08 | Exits the barcode reading algorithm after the region predetection, image pre-processing, image binarization, and barcode localization are done. |
-| TP_BARCODE_TYPE_DETERMINED | EnumTerminatePhaseDetermined | 0x10 | Exits the barcode reading algorithm after the region predetection, image pre-processing, image binarization, barcode localization, and barcode type determining are done. |
-| TP_BARCODE_RECOGNIZED | EnumTerminatePhaseRecognized | 0x20 | Exits the barcode reading algorithm after the region predetection, image pre-processing, image binarization, barcode localization, barcode type determining, and barcode recognition are done. |
-
-## TextFilterMode
-
-Describes the text filter mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum TextFilterMode` |
-| .Net | `enum Dynamsoft.DBR.EnumTextFilterMode` |
-| JavaScript | `Dynamsoft.DBR.EnumTextFilterMode` |
-| Python | `class EnumTextFilterMode(IntEnum)` |
-| Java / Android | `class EnumTextFilterMode` |
-| ObjC / Swift | `enum EnumTextFilterMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| TFM_SKIP | EnumTextFilterModeSkip | 0x00 | Skip the text filtering. | `N/A` |
-| TFM_AUTO | EnumTextFilterModeAuto | 0x01 | **Not supported yet.** | `N/A` |
-| TFM_GENERAL_CONTOUR | EnumTextFilterModeGeneralContour | 0x02 | Filters text using the general algorithm based on contour. | [`MinImageDimension`]({{ site.parameters_reference }}text-filter-modes.html#minimagedimension) [`Sensitivity`]({{ site.parameters_reference }}text-filter-modes.html#sensitivity) |
-
-## TextureDetectionMode
-
-Describes the texture detection mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum TextureDetectionMode` |
-| .Net | `enum Dynamsoft.DBR.EnumTextureDetectionMode` |
-| JavaScript | `Dynamsoft.DBR.EnumTextureDetectionMode` |
-| Python | `class EnumTextureDetectionMode(IntEnum)` |
-| Java / Android | `class EnumTextureDetectionMode` |
-| ObjC / Swift | `enum EnumTextureDetectionMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------------- | ----- | ----------- | ----------------- |
-| TDM_SKIP | EnumTextureDetectionModeSkip | 0x00 | Skips texture detection. | `N/A` |
-| TDM_AUTO | EnumTextureDetectionModeAuto | 0x01 | Not supported yet. | `N/A` |
-| TDM_GENERAL_WIDTH_CONCENTRATION | EnumTextureDetectionModeGeneralWidthConcentration | 0x02 | Detects texture using the general algorithm. | [`Sensitivity`]({{ site.parameters_reference }}texture-detection-modes.html#sensitivity) |
diff --git a/parameters/enum/parameter-mode-enums.md b/parameters/enum/parameter-mode-enums.md
deleted file mode 100644
index df412f37..00000000
--- a/parameters/enum/parameter-mode-enums.md
+++ /dev/null
@@ -1,482 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Parameter Mode Enumerations
-description: This article highlights the Parameter Mode Enumeration of Dynamsoft Barcode Reader such as BarcodeColourMode, BarcodeComplementMode and others.
-keywords: BarcodeColourMode, BarcodeComplementMode, BinarizationMode, ColourClusteringMode, ColourConversionMode, ConflictMode, DeblurMode, DeformationResistingMode, DPMCodeReadingMode, GrayscaleTransformationMode, ImagePreprocessingMode, LocalizationMode, PDFReadingMode, RegionPredetectionMode, ScaleUpMode, TerminatePhase, TextFilterMode, TextureDetectionMode, parameter mode enumeration, enumeration
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-permalink: /parameters/enum/parameter-mode-enums.html
----
-
-# Parameter Mode Enumeration
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`BarcodeColourMode`](#barcodecolourmode) | Describes the barcode colour mode. |
- | [`BarcodeComplementMode`](#barcodecomplementmode) | Describes the barcode complement mode. |
- | [`BinarizationMode`](#binarizationmode) | Describes the binarization mode. |
- | [`ColourClusteringMode`](#colourclusteringmode) | Describes the colour clustering mode. |
- | [`ColourConversionMode`](#colourconversionmode) | Describes the colour conversion mode. |
- | [`ConflictMode`](#conflictmode) | Describes the conflict mode. |
- | [`DeblurMode`](#deblurmode) | Describes the deblur mode. |
- | [`DeformationResistingMode`](#deformationresistingmode) | Describes the deformation resisting mode. |
- | [`DPMCodeReadingMode`](#dpmcodereadingmode) | Describes the DPM code reading mode. |
- | [`GrayscaleTransformationMode`](#grayscaletransformationmode) | Describes the grayscale transformation mode. |
- | [`ImagePreprocessingMode`](#imagepreprocessingmode) | Describes the image preprocessing mode. |
- | [`LocalizationMode`](#localizationmode) | Describes the localization mode. |
- | [`PDFReadingMode`](#pdfreadingmode) | Describes the PDF reading mode. |
- | [`RegionPredetectionMode`](#regionpredetectionmode) | Describes the region predetection mode. |
- | [`ScaleUpMode`](#scaleupmode) | Describes the scale up mode. |
- | [`TerminatePhase`](#terminatephase) | Describes the terminate phase. |
- | [`TextFilterMode`](#textfiltermode) | Describes the text filter mode. |
- | [`TextureDetectionMode`](#texturedetectionmode) | Describes the texture detection mode. |
-
-## BarcodeColourMode
-
-Describes the barcode colour mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum BarcodeColourMode` |
-| .Net | `enum Dynamsoft.DBR.EnumBarcodeColourMode` |
-| JavaScript | `Dynamsoft.DBR.EnumBarcodeColourMode` |
-| Python | `class EnumBarcodeColourMode(IntEnum)` |
-| Java / Android | `class EnumBarcodeColourMode` |
-| ObjC / Swift | `enum EnumBarcodeColourMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------- | --------------- | ----- | ----------- | ----------------- |
-| BICM_SKIP | EnumBarcodeColourModeSkip | skip | 0x00 | Skips the barcode colour operation. | `N/A` |
-| BICM_DARK_ON_LIGHT | EnumBarcodeColourModeDarkOnLight | darkOnLight | 0x01 | Dark items on a light background. | [`LightReflection`]({{ site.parameters_reference }}barcode-colour-modes.html#lightreflection) |
-| BICM_LIGHT_ON_DARK | EnumBarcodeColourModeLightOnDark | lightOnDark | 0x02 | Light items on a dark background. **Not supported yet**. | `N/A` |
-| BICM_DARK_ON_DARK | EnumBarcodeColourModeDarkOnDark | darkOnDark | 0x04 | Dark items on a dark background. **Not supported yet**. | `N/A` |
-| BICM_LIGHT_ON_LIGHT | EnumBarcodeColourModeLightOnLight | lightOnLight | 0x08 | Light items on a light background. **Not supported yet**. | `N/A` |
-| BICM_DARK_LIGHT_MIXED | EnumBarcodeColourModeDarkLightMixed | darkLightMixed | 0x10 | The background is mixed by dark and light. **Not supported yet**. | `N/A` |
-| BICM_DARK_ON_LIGHT_DARK_SURROUNDING | EnumBarcodeColourModeDarkOnLightDarkSurrounding | darkOnLightDarkSurrounding | 0x20 | Dark item on a light background surrounded by dark. | [`LightReflection`]({{ site.parameters_reference }}barcode-colour-modes.html#lightreflection) |
-
-## BarcodeComplementMode
-
-Describes the barcode complement mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum BarcodeComplementMode` |
-| .Net | `enum Dynamsoft.DBR.EnumBarcodeComplementMode` |
-| JavaScript | `Dynamsoft.DBR.EnumBarcodeComplementMode` |
-| Python | `class EnumBarcodeComplementMode(IntEnum)` |
-| Java / Android | `class EnumBarcodeComplementMode` |
-| ObjC / Swift | `enum EnumBarcodeComplementMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description |
-| -------------------------- | ------------- | --------------- | ----- | ----------- |
-| BCM_SKIP | EnumBarcodeComplementModeSkip | skip | 0x00 | Skips the barcode complement. |
-| BCM_AUTO | EnumBarcodeComplementModeAuto | auto | 0x01 | **Not supported yet.** |
-| BCM_GENERAL | EnumBarcodeComplementModeGeneral | general | 0x02 | Complements the barcode using the general algorithm. |
-
-## BinarizationMode
-
-Describes the binarization mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum BinarizationMode` |
-| .Net | `enum Dynamsoft.DBR.EnumBinarizationMode` |
-| JavaScript | `Dynamsoft.DBR.EnumBinarizationMode` |
-| Python | `class EnumBinarizationMode(IntEnum)` |
-| Java / Android | `class EnumBinarizationMode` |
-| ObjC / Swift | `enum EnumBinarizationMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------- | --------------- | ----- | ----------- | ----------------- |
-| BM_SKIP | EnumBinarizationModeSkip | skip | 0x00 | Skips the binarization. | `N/A` |
-| BM_AUTO | EnumBinarizationModeAuto | auto | 0x01 | **Not supported yet.** | `N/A` |
-| BM_LOCAL_BLOCK | EnumBinarizationModeLocalBlock | localBlock | 0x02 | Binarizes the image based on the local block. | [`BlockSizeX`]({{ site.parameters_reference }}binarization-modes.html#blocksizex) [`BlockSizeY`]({{ site.parameters_reference }}binarization-modes.html#blocksizey) [`EnableFillBinaryVacancy`]({{ site.parameters_reference }}binarization-modes.html#enablefillbinaryvacancy) [`ImagePreprocessingModesIndex`]({{ site.parameters_reference }}binarization-modes.html#imagepreprocessingmodesindex) [`ThresholdCompensation`]({{ site.parameters_reference }}binarization-modes.html#thresholdcompensation) |
-| BM_THRESHOLD | EnumBinarizationModeThreshold | threshold | 0x04 | Performs image binarization based on the given threshold. | [`BinarizationThreshold`]({{ site.parameters_reference }}binarization-modes.html#binarizationthreshold) [`ImagePreprocessingModesIndex`]({{ site.parameters_reference }}binarization-modes.html#imagepreprocessingmodesindex) |
-
-## ColourClusteringMode
-
-Describes the colour clustering mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ColourClusteringMode` |
-| .Net | `enum Dynamsoft.DBR.EnumColourClusteringMode` |
-| JavaScript | `Dynamsoft.DBR.EnumColourClusteringMode` |
-| Python | `class EnumColourClusteringMode(IntEnum)` |
-| Java / Android | `class EnumColourClusteringMode` |
-| ObjC / Swift | `enum EnumColourClusteringMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------- | --------------- | ----- | ----------- | ----------------- |
-| CCM_SKIP | EnumColourClusteringModeSkip | skip | 0x00 | Skips the colour clustering. | `N/A` |
-| CCM_AUTO | EnumColourClusteringModeAuto | auto | 0x01 | **Not supported yet.** | `N/A` |
-| CCM_GENERAL_HSV | EnumColourClusteringModeGeneralHSV | generalHSV | 0x02 | Clusters colours using the general algorithm based on HSV. | [`Sensitivity`]({{ site.parameters_reference }}colour-clustering-modes.html#sensitivity) |
-
-## ColourConversionMode
-
-Describes the colour conversion mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ColourConversionMode` |
-| .Net | `enum Dynamsoft.DBR.EnumColourConversionMode` |
-| JavaScript | `Dynamsoft.DBR.EnumColourConversionMode` |
-| Python | `class EnumColourConversionMode(IntEnum)` |
-| Java / Android | `class EnumColourConversionMode` |
-| ObjC / Swift | `enum EnumColourConversionMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------- | --------------- | ----- | ----------- | ----------------- |
-| CICM_SKIP | EnumColourConversionModeSkip | skip | 0x00 | Skip the colour conversion. | `N/A` |
-| CICM_GENERAL | EnumColourConversionModeGeneral | general | 0x01 | Converts a colour image to a grayscale image using the general algorithm. | [`BlueChannelWeight`]({{ site.parameters_reference }}colour-conversion-modes.html#bluechannelweight) [`GreenChannelWeight`]({{ site.parameters_reference }}colour-conversion-modes.html#greenchannelweight) [`RedChannelWeight`]({{ site.parameters_reference }}colour-conversion-modes.html#redchannelweight) |
-
-## ConflictMode
-
-Describes the conflict mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ConflictMode` |
-| .Net | `enum Dynamsoft.DBR.EnumConflictMode` |
-| JavaScript | `Dynamsoft.DBR.EnumConflictMode` |
-| Python | `class EnumConflictMode(IntEnum)` |
-| Java / Android | `class EnumConflictMode` |
-| ObjC / Swift | `enum EnumConflictMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description |
-| -------------------------- | ------------- | --------------- | ----- | ----------- |
-| CM_IGNORE | EnumConflictModeIgnore | ignore | 0x01 | Ignores new settings and inherits the previous settings. |
-| CM_OVERWRITE | EnumConflictModeOverwrite | overwrite | 0x02 | Overwrites the old settings with new settings. |
-
-## DeblurMode
-
-Describes the deblur mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DeblurMode` |
-| .Net | `enum Dynamsoft.DBR.EnumDeblurMode` |
-| JavaScript | `Dynamsoft.DBR.EnumDeblurMode` |
-| Python | `class EnumDeblurMode(IntEnum)` |
-| Java / Android | `class EnumDeblurMode` |
-| ObjC / Swift | `enum EnumDeblurMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description |
-| -------------------------- | ------------- | --------------- | ----- | ----------- |
-| DM_SKIP | EnumDeblurModeSkip | skip | 0x00 | Skips the deblur process. |
-| DM_DIRECT_BINARIZATION | EnumDeblurModeDirectBinarization | directBinarization | 0x01 | Performs deblur process using the direct binarization algorithm. |
-| DM_THRESHOLD_BINARIZATION | EnumDeblurModeThresholdBinarization | thresholdBinarization | 0x02 | Performs deblur process using the threshold binarization algorithm. |
-| DM_GRAY_EQUALIZATION | EnumDeblurModeGrayEqualization | grayEqualization | 0x04 | Performs deblur process using the gray equalization algorithm.|
-| DM_SMOOTHING | EnumDeblurModeSmoothing | smoothing | 0x08 | Performs deblur process using the smoothing algorithm.|
-| DM_MORPHING | EnumDeblurModeMorphing | morphing | 0x10 | Performs deblur process using the morphing algorithm.|
-| DM_DEEP_ANALYSIS | EnumDeblurModeDeepAnalysis | deepAnalysis | 0x20 | Performs deblur process using the deep analysis algorithm. |
-| DM_SHARPENING | EnumDeblurModeSharpening | sharpening | 0x40 | Performs deblur process using the sharpening algorithm. |
-| DM_BASED_ON_LOC_BIN | EnumDeblurModeBasedOnLocBin | basedOnLocBin | 0x80 | Performs deblur process based on the binary image from the localization process. |
-| DM_SHARPENING_SMOOTHING | EnumDeblurModeSharpeningSmoothing | sharpeningSmoothing | 0x100 | Performs deblur process using the sharpening and smoothing algorithm.|
-
-## DeformationResistingMode
-
-Describes the deformation resisting mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DeformationResistingMode` |
-| .Net | `enum Dynamsoft.DBR.EnumDeformationResistingMode` |
-| JavaScript | `Dynamsoft.DBR.EnumDeformationResistingMode` |
-| Python | `class EnumDeformationResistingMode(IntEnum)` |
-| Java / Android | `class EnumDeformationResistingMode` |
-| ObjC / Swift | `enum EnumDeformationResistingMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------- | --------------- | ----- | ----------- | ----------------- |
-| DRM_SKIP | EnumDeformationResistingModeSkip | skip | 0x00 | Skip the deformation resisting. | `N/A` |
-| DRM_AUTO | EnumDeformationResistingModeAuto | auto | 0x01 | **Not supported yet.** | `N/A` |
-| DRM_GENERAL | EnumDeformationResistingModeGeneral | general | 0x02 | Resists deformation using the general algorithm. | [`Level`]({{ site.parameters_reference }}deformation-resisting-modes.html#level) |
-| DRM_BROAD_WARP | EnumDeformationResistingModeBroadWarp | broadWarp | 0x04 | Resists deformation when the barcode is warped gently. | `N/A` |
-| DRM_LOCAL_REFERENCE | EnumDeformationResistingModeLocalReference | localReference | 0x08 | Resists deformation for barcodes with minor deformation in local modules. | `N/A` |
-| DRM_DEWRINKLE | EnumDeformationResistingModeDewrinkle | dewrinkle | 0x10 | Resists deformation for barcodes on a wrinkled surface. | `N/A` |
-
-## DPMCodeReadingMode
-
-Describes the DPM code reading mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum DPMCodeReadingMode` |
-| .Net | `enum Dynamsoft.DBR.EnumDPMCodeReadingMode` |
-| JavaScript | `Dynamsoft.DBR.EnumDPMCodeReadingMode` |
-| Python | `class EnumDPMCodeReadingMode(IntEnum)` |
-| Java / Android | `class EnumDPMCodeReadingMode` |
-| ObjC / Swift | `enum EnumDPMCodeReadingMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value |
-| -------------------------- | ------------- | --------------- | ----- |
-| DPMCRM_SKIP | EnumDPMCodeReadingModeSkip | skip | 0x00 | Skip the DPM code reading. |
-| DPMCRM_AUTO | EnumDPMCodeReadingModeAuto | auto | 0x01 | **Not supported yet.** |
-| DPMCRM_GENERAL | EnumDPMCodeReadingModeGeneral | general | 0x02 | Reads DPM code using the general algorithm. |
-
-## GrayscaleTransformationMode
-
-Describes the grayscale transformation mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum GrayscaleTransformationMode` |
-| .Net | `enum Dynamsoft.DBR.EnumGrayscaleTransformationMode` |
-| JavaScript | `Dynamsoft.DBR.EnumGrayscaleTransformationMode` |
-| Python | `class EnumGrayscaleTransformationMode(IntEnum)` |
-| Java / Android | `class EnumGrayscaleTransformationMode` |
-| ObjC / Swift | `enum EnumGrayscaleTransformationMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description |
-| -------------------------- | ------------- | --------------- | ----- | ----------- |
-| GTM_SKIP | EnumGrayscaleTransformationModeSkip | skip | 0x00 | Skips grayscale transformation. |
-| GTM_INVERTED | EnumGrayscaleTransformationModeInverted | inverted | 0x01 | Transforms to inverted grayscale. Recommended for light on dark images. |
-| GTM_ORIGINAL | EnumGrayscaleTransformationModeOriginal | original | 0x02 | Keeps the original grayscale. Recommended for dark on light images. |
-
-## ImagePreprocessingMode
-
-Describes the image preprocessing mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ImagePreprocessingMode` |
-| .Net | `enum Dynamsoft.DBR.EnumImagePreprocessingMode` |
-| JavaScript | `Dynamsoft.DBR.EnumImagePreprocessingMode` |
-| Python | `class EnumImagePreprocessingMode(IntEnum)` |
-| Java / Android | `class EnumImagePreprocessingMode` |
-| ObjC / Swift | `enum EnumImagePreprocessingMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------- | --------------- | ----- | ----------- | ----------------- |
-| IPM_SKIP | EnumImagePreprocessingModeSkip | skip | 0x00 | Skips image preprocessing. | `N/A` |
-| IPM_AUTO | EnumImagePreprocessingModeAuto | auto | 0x01 | **Not supported yet.** | `N/A` |
-| IPM_GENERAL | EnumImagePreprocessingModeGeneral | general | 0x02 | Takes the unpreprocessed image for following operations. | `N/A` |
-| IPM_GRAY_EQUALIZE | EnumImagePreprocessingModeGrayEqualize | grayEqualize | 0x04 | Preprocesses the image using the gray equalization algorithm. | [`Sensitivity`]({{ site.parameters_reference }}image-preprocessing-modes.html#sensitivity) |
-| IPM_GRAY_SMOOTH | EnumImagePreprocessingModeGraySmooth | graySmooth | 0x08 | Preprocesses the image using the gray smoothing algorithm. | [`SmoothBlockSizeX`]({{ site.parameters_reference }}image-preprocessing-modes.html#smoothblocksizex) [`SmoothBlockSizeY`]({{ site.parameters_reference }}image-preprocessing-modes.html#smoothblocksizey) |
-| IPM_SHARPEN_SMOOTH | EnumImagePreprocessingModeSharpenSmooth | sharpenSmooth | 0x10 | Preprocesses the image using the sharpening and smoothing algorithm. | [`SmoothBlockSizeX`]({{ site.parameters_reference }}image-preprocessing-modes.html#smoothblocksizex) [`SmoothBlockSizeY`]({{ site.parameters_reference }}image-preprocessing-modes.html#smoothblocksizey) [`SharpenBlockSizeX`]({{ site.parameters_reference }}image-preprocessing-modes.html#sharpenblocksizex) [`SharpenBlockSizeY`]({{ site.parameters_reference }}image-preprocessing-modes.html#sharpenblocksizey) |
-| IPM_MORPHOLOGY | EnumImagePreprocessingModeMorphology | morphology | 0x20 | Preprocesses the image using the morphology algorithm. | [`MorphOperation`]({{ site.parameters_reference }}image-preprocessing-modes.html#morphoperation) [`MorphShape`]({{ site.parameters_reference }}image-preprocessing-modes.html#morphshape) [`MorphOperationKernelSizeX`]({{ site.parameters_reference }}image-preprocessing-modes.html#morphoperationkernelsizex) [`MorphOperationKernelSizeY`]({{ site.parameters_reference }}image-preprocessing-modes.html#morphoperationkernelsizey) |
-
-## LocalizationMode
-
-Describes the localization mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum LocalizationMode` |
-| .Net | `enum Dynamsoft.DBR.EnumLocalizationMode` |
-| JavaScript | `Dynamsoft.DBR.EnumLocalizationMode` |
-| Python | `class EnumLocalizationMode(IntEnum)` |
-| Java / Android | `class EnumLocalizationMode` |
-| ObjC / Swift | `enum EnumLocalizationMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------- | --------------- | ----- | ----------- | ----------------- |
-| LM_SKIP | EnumLocalizationModeSkip | skip | 0x00 | Skips localization. | `N/A` |
-| LM_AUTO | EnumLocalizationModeAuto | auto | 0x01 | Not supported yet. | `N/A` |
-| LM_CONNECTED_BLOCKS | EnumLocalizationModeConnectedBlocks | connectedBlocks | 0x02 | Localizes barcodes by searching for connected blocks. This algorithm usually gives best result and it is recommended to set ConnectedBlocks to the highest priority. | `N/A` |
-| LM_STATISTICS | EnumLocalizationModeStatistics | statistics | 0x04 | Localizes barcodes by groups of contiguous black-white regions. This is optimized for QRCode and DataMatrix. | `N/A` |
-| LM_LINES | EnumLocalizationModeLines | lines | 0x08 | Localizes barcodes by searching for groups of lines. This is optimized for 1D and PDF417 barcodes. | `N/A` |
-| LM_SCAN_DIRECTLY | EnumLocalizationModeScanDirectly | scanDirectly | 0x10 | Localizes barcodes quickly. This mode is recommended in interactive scenario. | [`ScanStride`]({{ site.parameters_reference }}localization-modes.html#scanstride) [`ScanDirection`]({{ site.parameters_reference }}localization-modes.html#scandirection) |
-| LM_STATISTICS_MARKS | EnumLocalizationModeStatisticsMarks | statisticsMarks | 0x20 | Localizes barcodes by groups of marks.This is optimized for DPM codes. | `N/A` |
-| LM_STATISTICS_POSTAL_CODE | EnumLocalizationModeStatisticsPostalCode | statisticsPostalCode | 0x40 | Localizes barcodes by groups of connected blocks and lines.This is optimized for postal codes. | `N/A` |
-| LM_CENTRE | EnumLocalizationModeCentre | centre | 0x80 | Localizes barcodes from the centre of the image. | `N/A` |
-| LM_ONED_FAST_SCAN | EnumLocalizationModeOneDFastScan | oneDFastScan | 0x100 | Localizes 1D barcodes in a fast mode. | [`ScanStride`]({{ site.parameters_reference }}localization-modes.html#scanstride) [`ScanDirection`]({{ site.parameters_reference }}localization-modes.html#scandirection) [`ConfidenceThreshold`]({{ site.parameters_reference }}localization-modes.html#confidencethreshold) |
-
-## PDFReadingMode
-
-Describes the PDF reading mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum PDFReadingMode` |
-| .Net | `enum Dynamsoft.DBR.EnumPDFReadingMode` |
-| JavaScript | `Dynamsoft.DBR.EnumPDFReadingMode` |
-| Python | `class EnumPDFReadingMode(IntEnum)` |
-| Java / Android | `class EnumPDFReadingMode` |
-| ObjC / Swift | `enum EnumPDFReadingMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description |
-| -------------------------- | ------------- | --------------- | ----- | ----------- |
-| PDFRM_AUTO | EnumPDFReadingModeAuto | auto | 0x01 | Lets the library choose the reading mode automatically. |
-| PDFRM_VECTOR | EnumPDFReadingModeVector | vector | 0x02 | Detects barcode from vector data in PDF file. |
-| PDFRM_RASTER | EnumPDFReadingModeRaster | raster | 0x04 | Converts the PDF file to image(s) first, then perform barcode recognition. |
-
-## RegionPredetectionMode
-Describes the region predetection mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum RegionPredetectionMode` |
-| .Net | `enum Dynamsoft.DBR.EnumRegionPredetectionMode` |
-| JavaScript | `Dynamsoft.DBR.EnumRegionPredetectionMode` |
-| Python | `class EnumRegionPredetectionMode(IntEnum)` |
-| Java / Android | `class EnumRegionPredetectionMode` |
-| ObjC / Swift | `enum EnumRegionPredetectionMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------- | --------------- | ----- | ----------- | ----------------- |
-| RPM_SKIP | EnumRegionPredetectionModeSkip | skip | 0x00 | Skips region detection. | `N/A` |
-| RPM_AUTO | EnumRegionPredetectionModeAuto | auto | 0x01 | Lets the library choose an algorithm automatically to detect region. | `N/A` |
-| RPM_GENERAL | EnumRegionPredetectionModeGeneral | general | 0x02 | Takes the whole image as a region. | `N/A` |
-| RPM_GENERAL_RGB_CONTRAST | EnumRegionPredetectionModeGeneralRGBContrast | generalRGBContrast | 0x04 | Detects region using the general algorithm based on RGB colour contrast. | [`MinImageDimension`]({{ site.parameters_reference }}region-predetection-modes.html#minimagedimension) [`Sensitivity`]({{ site.parameters_reference }}region-predetection-modes.html#sensitivity) [`SpatialIndexBlockSize`]({{ site.parameters_reference }}region-predetection-modes.html#spatialindexblocksize) |
-| RPM_GENERAL_GRAY_CONTRAST | EnumRegionPredetectionModeGeneralGrayContrast | generalGrayContrast | 0x08 | Detects region using the general algorithm based on gray contrast. | [`MinImageDimension`]({{ site.parameters_reference }}region-predetection-modes.html#minimagedimension) [`Sensitivity`]({{ site.parameters_reference }}region-predetection-modes.html#sensitivity) [`SpatialIndexBlockSize`]({{ site.parameters_reference }}region-predetection-modes.html#spatialindexblocksize) |
-| RPM_GENERAL_HSV_CONTRAST | EnumRegionPredetectionModeGeneralHSVContrast | generalHSVContrast | 0x10 | Detects region using the general algorithm based on HSV colour contrast. | [`AspectRatioRange`]({{ site.parameters_reference }}region-predetection-modes.html#aspectratiorange) [`FindAccurateBoundary`]({{ site.parameters_reference }}region-predetection-modes.html#findaccurateboundary) [`ForeAndBackgroundColours`]({{ site.parameters_reference }}region-predetection-modes.html#foreandbackgroundcolours) [`HeightRange`]({{ site.parameters_reference }}region-predetection-modes.html#heightrange) [`MinImageDimension`]({{ site.parameters_reference }}region-predetection-modes.html#minimagedimension) [`RelativeBarcodeRegions`]({{ site.parameters_reference }}region-predetection-modes.html#relativebarcoderegions) [`Sensitivity`]({{ site.parameters_reference }}region-predetection-modes.html#sensitivity) [`SpatialIndexBlockSize`]({{ site.parameters_reference }}region-predetection-modes.html#spatialindexblocksize) [`WidthRange`]({{ site.parameters_reference }}region-predetection-modes.html#widthrange) |
-
-## ScaleUpMode
-
-Describes the scale up mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ScaleUpMode` |
-| .Net | `enum Dynamsoft.DBR.EnumScaleUpMode` |
-| JavaScript | `Dynamsoft.DBR.EnumScaleUpMode` |
-| Python | `class EnumScaleUpMode(IntEnum)` |
-| Java / Android | `class EnumScaleUpMode` |
-| ObjC / Swift | `enum EnumScaleUpMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------- | --------------- | ----- | ----------- | ----------------- |
-| SUM_SKIP | EnumScaleUpModeSkip | skip | 0x00 | Skip the scale-up process. | `N/A` |
-| SUM_AUTO | EnumScaleUpModeAuto | auto | 0x01 | The library chooses an interpolation method automatically to scale up. | `N/A` |
-| SUM_LINEAR_INTERPOLATION | EnumScaleUpModeLinearInterpolation | linearInterpolation | 0x02 | Scales up using the linear interpolation method. | [`AcuteAngleWithXThreshold`]({{ site.parameters_reference }}scale-up-modes.html#acuteanglewithxthreshold) [`ModuleSizeThreshold`]({{ site.parameters_reference }}scale-up-modes.html#modulesizethreshold) [`TargetModuleSize`]({{ site.parameters_reference }}scale-up-modes.html#targetmodulesize) |
-| SUM_NEAREST_NEIGHBOUR_INTERPOLATION | EnumScaleUpModeNearestNeighbourInterpolation | nearestNeighbourInterpolation | 0x04 | Scales up using the nearest-neighbour interpolation method. | [`AcuteAngleWithXThreshold`]({{ site.parameters_reference }}scale-up-modes.html#acuteanglewithxthreshold) [`ModuleSizeThreshold`]({{ site.parameters_reference }}scale-up-modes.html#modulesizethreshold) [`TargetModuleSize`]({{ site.parameters_reference }}scale-up-modes.html#targetmodulesize) |
-
-## TerminatePhase
-
-Describes the terminate phase.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum TerminatePhase` |
-| .Net | `enum Dynamsoft.DBR.EnumTerminatePhase` |
-| JavaScript | `Dynamsoft.DBR.EnumTerminatePhase` |
-| Python | `class EnumTerminatePhase(IntEnum)` |
-| Java / Android | `class EnumTerminatePhase` |
-| ObjC / Swift | `enum EnumTerminatePhase` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description |
-| -------------------------- | ------------- | -------------- | ----- | ----------- |
-| TP_REGION_PREDETECTED | EnumTerminatePhasePredetected | predetected | 0x01 | Exits the barcode reading algorithm after the region predetection is done. |
-| TP_IMAGE_PREPROCESSED | EnumTerminatePhasePreprocecessed | preprocecessed | 0x02 | Exits the barcode reading algorithm after the region predetection and image pre-processing is done. |
-| TP_IMAGE_BINARIZED | EnumTerminatePhaseBinarized | binarized | 0x04 | Exits the barcode reading algorithm after the region predetection, image pre-processing, and image binarization are done. |
-| TP_BARCODE_LOCALIZED | EnumTerminatePhaseLocalized | localized | 0x08 | Exits the barcode reading algorithm after the region predetection, image pre-processing, image binarization, and barcode localization are done. |
-| TP_BARCODE_TYPE_DETERMINED | EnumTerminatePhaseDetermined | determined | 0x10 | Exits the barcode reading algorithm after the region predetection, image pre-processing, image binarization, barcode localization, and barcode type determining are done. |
-| TP_BARCODE_RECOGNIZED | EnumTerminatePhaseRecognized | recognized | 0x20 | Exits the barcode reading algorithm after the region predetection, image pre-processing, image binarization, barcode localization, barcode type determining, and barcode recognition are done. |
-
-
-
-
-
-
-
-## TextFilterMode
-
-Describes the text filter mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum TextFilterMode` |
-| .Net | `enum Dynamsoft.DBR.EnumTextFilterMode` |
-| JavaScript | `Dynamsoft.DBR.EnumTextFilterMode` |
-| Python | `class EnumTextFilterMode(IntEnum)` |
-| Java / Android | `class EnumTextFilterMode` |
-| ObjC / Swift | `enum EnumTextFilterMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------- | --------------- | ----- | ----------- | ----------------- |
-| TFM_SKIP | EnumTextFilterModeSkip | skip | 0x00 | Skip the text filtering. | `N/A` |
-| TFM_AUTO | EnumTextFilterModeAuto | auto | 0x01 | **Not supported yet.** | `N/A` |
-| TFM_GENERAL_CONTOUR | EnumTextFilterModeGeneralContour | generalContour | 0x02 | Filters text using the general algorithm based on contour. | [`MinImageDimension`]({{ site.parameters_reference }}text-filter-modes.html#minimagedimension) [`Sensitivity`]({{ site.parameters_reference }}text-filter-modes.html#sensitivity) |
-
-## TextureDetectionMode
-
-Describes the texture detection mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum TextureDetectionMode` |
-| .Net | `enum Dynamsoft.DBR.EnumTextureDetectionMode` |
-| JavaScript | `Dynamsoft.DBR.EnumTextureDetectionMode` |
-| Python | `class EnumTextureDetectionMode(IntEnum)` |
-| Java / Android | `class EnumTextureDetectionMode` |
-| ObjC / Swift | `enum EnumTextureDetectionMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------- | --------------- | ----- | ----------- | ----------------- |
-| TDM_SKIP | EnumTextureDetectionModeSkip | skip | 0x00 | Skips texture detection. | `N/A` |
-| TDM_AUTO | EnumTextureDetectionModeAuto | auto | 0x01 | Not supported yet. | `N/A` |
-| TDM_GENERAL_WIDTH_CONCENTRATION | EnumTextureDetectionModeGeneralWidthConcentration | generalWidthConcentration | 0x02 | Detects texture using the general algorithm. | [`Sensitivity`]({{ site.parameters_reference }}texture-detection-modes.html#sensitivity) |
diff --git a/parameters/enum/result-enums-v7.6.0.md b/parameters/enum/result-enums-v7.6.0.md
deleted file mode 100644
index 20cea6d6..00000000
--- a/parameters/enum/result-enums-v7.6.0.md
+++ /dev/null
@@ -1,200 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Result Enumerations
-description: This article shows Result Enumerations of Dynamsoft Barcode Reader.
-keywords: IMResultDataType, IntermediateResultSavingMode, IntermediateResultType, ResultCoordinateType, ResultType, TextResultOrderMode, result enumeration, enumeration
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-permalink: /parameters/enum/result-enums-v7.6.0.html
----
-
-# Result Enumeration
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`IMResultDataType`](#imresultdatatype) | Describes the intermediate result data type. |
- | [`IntermediateResultSavingMode`](#intermediateresultsavingmode) | Describes the intermediate result saving mode. |
- | [`IntermediateResultType`](#intermediateresulttype) | Describes the intermediate result type. |
- | [`ResultCoordinateType`](#resultcoordinatetype) | Describes the result coordinate type. |
- | [`ResultType`](#resulttype) | Describes the extended result type. |
- | [`TextResultOrderMode`](#textresultordermode) | Describes the text result order mode. |
-
-
-
-## IMResultDataType
-Describes the intermediate result data type.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum IMResultDataType` |
-| .Net | `enum Dynamsoft.Barcode.EnumIMResultDataType` |
-| JavaScript | `Dynamsoft.EnumIMResultDataType` |
-| Python | `class EnumIMResultDataType(IntEnum)` |
-| Java / Android | `class EnumIMResultDataType` |
-| ObjC / Swift | `enum EnumIMResultDataType` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| IMRDT_IMAGE | EnumIMResultDataTypeImage | 0x01 | Specifies the `ImageData`. |
-| IMRDT_CONTOUR | EnumIMResultDataTypeContour | 0x02 | Specifies the `Contour`. |
-| IMRDT_LINESEGMENT | EnumIMResultDataTypeLineSegment | 0x04 | Specifies the `LineSegment`. |
-| IMRDT_LOCALIZATIONRESULT | EnumIMResultDataTypeLocalizationResult | 0x08 | Specifies the `LocalizationResult`. |
-| IMRDT_REGIONOFINTEREST | EnumIMResultDataTypeRegionOfInterest | 0x10 | Specifies the `RegionOfInterest`. |
-| IMRDT_QUADRILATERAL | EnumIMResultDataTypeQuadrilateral | 0x20 | Specifies the `Quadrilateral`. |
-
-
-
-## IntermediateResultSavingMode
-Describes the intermediate result saving mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum IntermediateResultSavingMode` |
-| .Net | `enum Dynamsoft.Barcode.EnumIntermediateResultSavingMode` |
-| JavaScript | `Dynamsoft.EnumIntermediateResultSavingMode` |
-| Python | `class EnumIntermediateResultSavingMode(IntEnum)` |
-| Java / Android | `class EnumIntermediateResultSavingMode` |
-| ObjC / Swift | `enum EnumIntermediateResultSavingMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| IRSM_MEMORY | EnumIntermediateResultSavingModeMemory | 0x01 | Saves intermediate results in memory. |
-| IRSM_FILESYSTEM | EnumIntermediateResultSavingModeFileSystem | 0x02 | Saves intermediate results in file system. Check arguments of [`IntermediateResultSavingMode`]({{ site.parameters_reference }}intermediate-result-saving-mode.html) for available argument settings. |
-| IRSM_BOTH | EnumIntermediateResultSavingModeBoth | 0x04 | Saves intermediate results in both memory and file system. Check arguments of [`IntermediateResultSavingMode`]({{ site.parameters_reference }}intermediate-result-saving-mode.html) for available argument settings. |
-
-
-
-
-
-## IntermediateResultType
-Describes the intermediate result type.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum IntermediateResultType` |
-| .Net | `enum Dynamsoft.Barcode.EnumIntermediateResultType` |
-| JavaScript | `Dynamsoft.EnumIntermediateResultType` |
-| Python | `class EnumIntermediateResultType(IntEnum)` |
-| Java / Android | `class EnumIntermediateResultType` |
-| ObjC / Swift | `enum EnumIntermediateResultType` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| IRT_NO_RESULT | EnumIntermediateResultTypeNoResult | 0x00 | No intermediate result |
-| IRT_ORIGINAL_IMAGE | EnumIntermediateResultTypeOriginalImage | 0x01 | Original image |
-| IRT_COLOUR_CLUSTERED_IMAGE | EnumIntermediateResultTypeColourClusteredImage | 0x02 | Colour clustered image **(not supported yet)** |
-| IRT_COLOUR_CONVERTED_GRAYSCALE_IMAGE | EnumIntermediateResultTypeColourConvertedGrayScaleImage | 0x04 | Colour image converted to grayscale |
-| IRT_TRANSFORMED_GRAYSCALE_IMAGE | EnumIntermediateResultTypeTransformedGrayScaleImage | 0x08 | Transformed grayscale image |
-| IRT_PREDETECTED_REGION | EnumIntermediateResultTypePredetectedRegion | 0x10 | Predetected region |
-| IRT_PREPROCESSED_IMAGE | EnumIntermediateResultTypePreprocessedImage | 0x20 | Preprocessed image |
-| IRT_BINARIZED_IMAGE | EnumIntermediateResultTypeBinarizedImage | 0x40 | Binarized image |
-| IRT_TEXT_ZONE | EnumIntermediateResultTypeTextZone | 0x80 | Text zone |
-| IRT_CONTOUR | EnumIntermediateResultTypeContour | 0x100 | Contour |
-| IRT_LINE_SEGMENT | EnumIntermediateResultTypeLineSegment | 0x200 | Line segment |
-| IRT_FORM | EnumIntermediateResultTypeForm | 0x400 | Form **(not supported yet)** |
-| IRT_SEGMENTATION_BLOCK | EnumIntermediateResultTypeSegmentationBlock | 0x800 | Segmentation block **(not supported yet)** |
-| IRT_TYPED_BARCODE_ZONE | EnumIntermediateResultTypeTypedBarcodeZone | 0x1000 | Typed barcode zone |
-| IRT_PREDETECTED_QUADRILATERAL | EnumIntermediateResultTypePredetectedQuadrilateral | 0x2000 | Predetected quadrilateral |
-
-
-
-
-
-## ResultCoordinateType
-Describes the result coordinate type.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ResultCoordinateType` |
-| .Net | `enum Dynamsoft.Barcode.EnumResultCoordinateType` |
-| JavaScript | `Dynamsoft.EnumResultCoordinateType` |
-| Python | `class EnumResultCoordinateType(IntEnum)` |
-| Java / Android | `class EnumResultCoordinateType` |
-| ObjC / Swift | `enum EnumResultCoordinateType` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| RCT_PIXEL | EnumResultCoordinateTypePixel | 0x01 | Returns the coordinate in pixel value. |
-| RCT_PERCENTAGE | EnumResultCoordinateTypePercentage | 0x02 | Returns the coordinate as a percentage. |
-
-
-
-
-
-
-## ResultType
-Describes the extended result type.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ResultType` |
-| .Net | `enum Dynamsoft.Barcode.EnumResultType` |
-| JavaScript | `Dynamsoft.EnumResultType` |
-| Python | `class EnumResultType(IntEnum)` |
-| Java / Android | `class EnumResultType` |
-| ObjC / Swift | `enum EnumResultType` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| RT_STANDARD_TEXT | EnumResultTypeStandardText | 0 | Specifies the standard text. This means the barcode value. |
-| RT_RAW_TEXT | EnumResultTypeRawText | 1 | Specifies the raw text. This means the text that includes start/stop characters, check digits, etc. |
-| RT_CANDIDATE_TEXT | EnumResultTypeCandidateText | 2 | Specifies all the candidate text. This means all the standard text results decoded from the barcode. |
-| RT_PARTIAL_TEXT | EnumResultTypePartialText | 3 | Specifies the partial text. This means part of the text result decoded from the barcode. |
-
-
-
-
-
-## TextResultOrderMode
-Describes the text result order mode.
-
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum TextResultOrderMode` |
-| .Net | `enum Dynamsoft.Barcode.EnumTextResultOrderMode` |
-| JavaScript | `Dynamsoft.EnumTextResultOrderMode` |
-| Python | `class EnumTextResultOrderMode(IntEnum)` |
-| Java / Android | `class EnumTextResultOrderMode` |
-| ObjC / Swift | `enum EnumTextResultOrderMode` |
-
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC/Swift) | Value | Description |
-| -------------------------- | ------------------- | ----- | ----------- |
-| TROM_SKIP | EnumTextResultOrderModeSkip | 0x00 | Skips the result ordering operation. |
-| TROM_CONFIDENCE | EnumTextResultOrderModeConfidence | 0x01 | Returns the text results in descending order by confidence. |
-| TROM_POSITION | EnumTextResultOrderModePosition | 0x02 | Returns the text results in position order, from top to bottom, then left to right. |
-| TROM_FORMAT | EnumTextResultOrderModeFormat | 0x04 | Returns the text results in alphabetical and numerical order by barcode format string. |
diff --git a/parameters/enum/result-enums.md b/parameters/enum/result-enums.md
deleted file mode 100644
index a4be8d48..00000000
--- a/parameters/enum/result-enums.md
+++ /dev/null
@@ -1,176 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Enumerations - Result Enumerations
-description: This article shows Result Enumerations of Dynamsoft Barcode Reader such as IMResultDataType, IntermediateResultSavingMode and others
-keywords: IMResultDataType, IntermediateResultSavingMode, IntermediateResultType, ResultCoordinateType, ResultType, TextResultOrderMode, result enumeration, enumeration
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-permalink: /parameters/enum/result-enums.html
----
-
-# Result Enumeration
-
- | Enumeration | Description |
- |-------------|-------------|
- | [`IMResultDataType`](#imresultdatatype) | Describes the intermediate result data type. |
- | [`IntermediateResultSavingMode`](#intermediateresultsavingmode) | Describes the intermediate result saving mode. |
- | [`IntermediateResultType`](#intermediateresulttype) | Describes the intermediate result type. |
- | [`ResultCoordinateType`](#resultcoordinatetype) | Describes the result coordinate type. |
- | [`ResultType`](#resulttype) | Describes the extended result type. |
- | [`TextResultOrderMode`](#textresultordermode) | Describes the text result order mode. |
-
-## IMResultDataType
-
-Describes the intermediate result data type.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum IMResultDataType` |
-| .Net | `enum Dynamsoft.DBR.EnumIMResultDataType` |
-| JavaScript | `Dynamsoft.EnumIMResultDataType` |
-| Python | `class EnumIMResultDataType(IntEnum)` |
-| Java / Android | `class EnumIMResultDataType` |
-| ObjC / Swift | `enum EnumIMResultDataType` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description |
-| -------------------------- | ------------- | --------------- | ----- | ----------- |
-| IMRDT_IMAGE | EnumIMResultDataTypeImage | image | 0x01 | Specifies the `ImageData`. |
-| IMRDT_CONTOUR | EnumIMResultDataTypeContour | contour | 0x02 | Specifies the `Contour`. |
-| IMRDT_LINESEGMENT | EnumIMResultDataTypeLineSegment | lineSegment | 0x04 | Specifies the `LineSegment`. |
-| IMRDT_LOCALIZATIONRESULT | EnumIMResultDataTypeLocalizationResult | localizationResult | 0x08 | Specifies the `LocalizationResult`. |
-| IMRDT_REGIONOFINTEREST | EnumIMResultDataTypeRegionOfInterest | regionOfInterest | 0x10 | Specifies the `RegionOfInterest`. |
-| IMRDT_QUADRILATERAL | EnumIMResultDataTypeQuadrilateral | quadrilateral | 0x20 | Specifies the `Quadrilateral`. |
-| IMRDT_REFERENCE | EnumIMResultDataTypeReference | reference | 0x40 | Specifies the internal data format for using other Dynamsoft products, such as Dynamic Web TWAIN. |
-
-## IntermediateResultSavingMode
-
-Describes the intermediate result saving mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum IntermediateResultSavingMode` |
-| .Net | `enum Dynamsoft.DBR.EnumIntermediateResultSavingMode` |
-| JavaScript | `Dynamsoft.EnumIntermediateResultSavingMode` |
-| Python | `class EnumIntermediateResultSavingMode(IntEnum)` |
-| Java / Android | `class EnumIntermediateResultSavingMode` |
-| ObjC / Swift | `enum EnumIntermediateResultSavingMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description | Valid Argument(s) |
-| -------------------------- | ------------- | --------------- | ----- | ----------- | ----------------- |
-| IRSM_MEMORY | EnumIntermediateResultSavingModeMemory | memory | 0x01 | Saves intermediate results in memory with public data format. | `N/A` |
-| IRSM_FILESYSTEM | EnumIntermediateResultSavingModeFileSystem | fileSystem | 0x02 | Saves intermediate results in file system. | [`FolderPath`]({{ site.parameters_reference }}intermediate-result-saving-mode.html#folderpath) [`RecordsetSizeOfLatestImages`]({{ site.parameters_reference }}intermediate-result-saving-mode.html#recordsetsizeoflatestimages) |
-| IRSM_BOTH | EnumIntermediateResultSavingModeBoth | both | 0x04 | Saves intermediate results using IRSM_MEMORY and IRSM_FILESYSTEM. | [`FolderPath`]({{ site.parameters_reference }}intermediate-result-saving-mode.html#folderpath) |
-| IRSM_REFERENCE_MEMORY | EnumIntermediateResultSavingModeReferenceMemory | referenceMemory | 0x08 | Saves intermediate results in memory with internal data format. | [`FolderPath`]({{ site.parameters_reference }}intermediate-result-saving-mode.html#folderpath) [`RecordsetSizeOfLatestImages`]({{ site.parameters_reference }}intermediate-result-saving-mode.html#recordsetsizeoflatestimages) |
-
-## IntermediateResultType
-
-Describes the intermediate result type.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum IntermediateResultType` |
-| .Net | `enum Dynamsoft.DBR.EnumIntermediateResultType` |
-| JavaScript | `Dynamsoft.EnumIntermediateResultType` |
-| Python | `class EnumIntermediateResultType(IntEnum)` |
-| Java / Android | `class EnumIntermediateResultType` |
-| ObjC / Swift | `enum EnumIntermediateResultType` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description |
-| -------------------------- | ------------- | --------------- | ----- | ----------- |
-| IRT_NO_RESULT | EnumIntermediateResultTypeNoResult | noResult | 0x00 | No intermediate result |
-| IRT_ORIGINAL_IMAGE | EnumIntermediateResultTypeOriginalImage | originalImage | 0x01 | Original image |
-| IRT_COLOUR_CLUSTERED_IMAGE | EnumIntermediateResultTypeColourClusteredImage | colourClusteredImage | 0x02 | Colour clustered image **(not supported yet)** |
-| IRT_COLOUR_CONVERTED_GRAYSCALE_IMAGE | EnumIntermediateResultTypeColourConvertedGrayScaleImage | colourConvertedGrayScaleImage | 0x04 | Colour image converted to grayscale |
-| IRT_TRANSFORMED_GRAYSCALE_IMAGE | EnumIntermediateResultTypeTransformedGrayScaleImage | transformedGrayScaleImage | 0x08 | Transformed grayscale image |
-| IRT_PREDETECTED_REGION | EnumIntermediateResultTypePredetectedRegion | predetectedRegion | 0x10 | Predetected region |
-| IRT_PREPROCESSED_IMAGE | EnumIntermediateResultTypePreprocessedImage | preprocessedImage | 0x20 | Preprocessed image |
-| IRT_BINARIZED_IMAGE | EnumIntermediateResultTypeBinarizedImage | binarizedImage | 0x40 | Binarized image |
-| IRT_TEXT_ZONE | EnumIntermediateResultTypeTextZone | textZone | 0x80 | Text zone |
-| IRT_CONTOUR | EnumIntermediateResultTypeContour | contour | 0x100 | Contour |
-| IRT_LINE_SEGMENT | EnumIntermediateResultTypeLineSegment | lineSegment | 0x200 | Line segment |
-| IRT_FORM | EnumIntermediateResultTypeForm | form | 0x400 | Form **(not supported yet)** |
-| IRT_SEGMENTATION_BLOCK | EnumIntermediateResultTypeSegmentationBlock | segmentationBlock | 0x800 | Segmentation block **(not supported yet)** |
-| IRT_TYPED_BARCODE_ZONE | EnumIntermediateResultTypeTypedBarcodeZone | barcodeZone | 0x1000 | Typed barcode zone |
-| IRT_PREDETECTED_QUADRILATERAL | EnumIntermediateResultTypePredetectedQuadrilateral | predetectedQuadrilateral | 0x2000 | Predetected quadrilateral |
-
-## ResultCoordinateType
-
-Describes the result coordinate type.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ResultCoordinateType` |
-| .Net | `enum Dynamsoft.EnumResultCoordinateType` |
-| JavaScript | `Dynamsoft.EnumResultCoordinateType` |
-| Python | `class EnumResultCoordinateType(IntEnum)` |
-| Java / Android | `class EnumResultCoordinateType` |
-| ObjC / Swift | `enum EnumResultCoordinateType` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description |
-| -------------------------- | ------------- | --------------- | ----- | ----------- |
-| RCT_PIXEL | EnumResultCoordinateTypePixel | pixel | 0x01 | Returns the coordinate in pixel value. |
-| RCT_PERCENTAGE | EnumResultCoordinateTypePercentage | percentage | 0x02 | Returns the coordinate as a percentage. |
-
-## ResultType
-
-Describes the extended result type.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum ResultType` |
-| .Net | `enum Dynamsoft.EnumResultType` |
-| JavaScript | `Dynamsoft.EnumResultType` |
-| Python | `class EnumResultType(IntEnum)` |
-| Java / Android | `class EnumResultType` |
-| ObjC / Swift | `enum EnumResultType` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description |
-| -------------------------- | ------------- | --------------- | ----- | ----------- |
-| RT_STANDARD_TEXT | EnumResultTypeStandardText | standardText | 0 | Specifies the standard text. This means the barcode value. |
-| RT_RAW_TEXT | EnumResultTypeRawText | rawText | 1 | Specifies the raw text. This means the text that includes start/stop characters, check digits, etc. |
-| RT_CANDIDATE_TEXT | EnumResultTypeCandidateText | candidateText | 2 | Specifies all the candidate text. This means all the standard text results decoded from the barcode. |
-| RT_PARTIAL_TEXT | EnumResultTypePartialText | partialText | 3 | Specifies the partial text. This means part of the text result decoded from the barcode. |
-
-## TextResultOrderMode
-
-Describes the text result order mode.
-
-### Declarations
-
-| Language | Declaration |
-| -------- | ----------- |
-| C / C++ | `enum TextResultOrderMode` |
-| .Net | `enum Dynamsoft.DBR.EnumTextResultOrderMode` |
-| JavaScript | `Dynamsoft.EnumTextResultOrderMode` |
-| Python | `class EnumTextResultOrderMode(IntEnum)` |
-| Java / Android | `class EnumTextResultOrderMode` |
-| ObjC / Swift | `enum EnumTextResultOrderMode` |
-
-### Members
-
-| Member (except ObjC/Swift) | Member (ObjC) | Member (Swift) | Value | Description |
-| -------------------------- | ------------- | --------------- | ----- | ----------- |
-| TROM_SKIP | EnumTextResultOrderModeSkip | skip | 0x00 | Skips the result ordering operation. |
-| TROM_CONFIDENCE | EnumTextResultOrderModeConfidence | confidence | 0x01 | Returns the text results in descending order by confidence. |
-| TROM_POSITION | EnumTextResultOrderModePosition | position | 0x02 | Returns the text results in position order, from top to bottom, then left to right. |
-| TROM_FORMAT | EnumTextResultOrderModeFormat | format | 0x04 | Returns the text results in alphabetical and numerical order by barcode format string. |
diff --git a/parameters/reference/accompanying-text-recognition-modes.md b/parameters/reference/accompanying-text-recognition-modes.md
deleted file mode 100644
index 5ea24dd7..00000000
--- a/parameters/reference/accompanying-text-recognition-modes.md
+++ /dev/null
@@ -1,111 +0,0 @@
----
-layout: default-layout
-title: ImageParameter Object - AccompanyingTextRecognitionModes - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for ImageParameter Object - AccompanyingTextRecognitionModes.
-keywords: AccompanyingTextRecognitionModes, ImageParameter, image process control parameters, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/accompanying-text-recognition-modes.html
----
-
-# ImageParameter Object - Image Process Control Parameters
-
-## AccompanyingTextRecognitionModes
-
-### Mode Properties
-
-`AccompanyingTextRecognitionModes` is a parameter for setting the mode to recognize accompanying text. It consists of one or more `AccompanyingTextRecognitionMode` items and each item has its own arguments. The array index represents the priority of the item. The smaller index is, the higher priority is.
-
-| Value Type | Value Range | Default Value |
-| ---------- | ----------- | ------------- |
-| *string array* or *[`AccompanyingTextRecognitionMode`]({{ site.enumerations }}parameter-mode-enums.html#accompanyingtextrecognitionmode) array* | "ATRM_SKIP" "ATRM_GENERAL" | ["ATRM_SKIP", "ATRM_SKIP", "ATRM_SKIP", "ATRM_SKIP", "ATRM_SKIP", "ATRM_SKIP", "ATRM_SKIP", "ATRM_SKIP"] |
-
-- **See also**:
- [`AccompanyingTextRecognitionMode` Enumeration]({{ site.enumerations }}parameter-mode-enums.html#accompanyingtextrecognitionmode)
-
-#### Mode Arguments
-
-- [RegionBottom](#regionbottom)
-- [RegionLeft](#regionleft)
-- [RegionRight](#regionright)
-- [RegionTop](#regiontop)
-
-If [RegionBottom](#regionbottom), [RegionLeft](#regionleft), [RegionRight](#regionright) and [RegionTop](#regiontop) are all equal to 0, the accompanying text zone will be detected automatically by the SDK.
-
-##### RegionBottom
-
-Specifies the y-coordinate of the bottom-right corner of the region in percentage. This value is relative to the top-left corner of the barcode.
-
-| Value Type | Value Range | Default Value | Valid Mode(s) |
-| ---------- | ----------- | ------------- | ----------- |
-| *int* | [-255, 255] | 0 | "ATRM_GENERAL" |
-
-##### RegionLeft
-
-Specifies the x-coordinate of the top-left corner of the region in percentage. This value is relative to the top-left corner of the barcode.
-
-| Value Type | Value Range | Default Value | Valid Mode(s) |
-| ---------- | ----------- | ------------- | ----------- |
-| *int* | [-255, 255] | 0 | "ATRM_GENERAL" |
-
-##### RegionRight
-
-Specifies the x-coordinate of the bottom-right corner of the region in percentage. This value is relative to the top-left corner of the barcode.
-
-| Value Type | Value Range | Default Value | Valid Mode(s) |
-| ---------- | ----------- | ------------- | ----------- |
-| *int* | [-255, 255] | 0 | "ATRM_GENERAL" |
-
-##### RegionTop
-
-Specifies the y-coordinate of the top-left corner of the region in percentage. This value is relative to the top-left corner of the barcode.
-
-| Value Type | Value Range | Default Value | Valid Mode(s) |
-| ---------- | ----------- | ------------- | ----------- |
-| *int* | [-255, 255] | 0 | "ATRM_GENERAL" |
-
-### Setting Methods
-
-#### As JSON Parameter
-
-`AccompanyingTextRecognitionModes` as a JSON parameter is a JSON Object array. Each JSON Object has several keys for setting the mode and the value of arguments. The array order decides the priority order the modes are applied. Default values will be used if there is no manual setting.
-
-| Json Object | Json Parameter Name | Value Type |
-| ----------- | ------------------- | ---------- |
-| ImageParameter | AccompanyingTextRecognitionModes | *JSON Object Array* |
-
-**JSON Parameter Example**
-
-```json
-{
- "AccompanyingTextRecognitionModes": [
- {
- "Mode": "ATRM_GENERAL",
- "RegionBottom": 50,
- "RegionLeft": 50,
- "RegionRight": 50,
- "RegionTop": 50
- }
-]
-}
-```
-
-
-
-#### As `PublicRuntimeSettings` Member
-
-`AccompanyingTextRecognitionModes` is a [`AccompanyingTextRecognitionMode`]({{ site.enumerations }}parameter-mode-enums.html#accompanyingtextrecognitionmode) array defines in `furtherModes` which is a struct member of `PublicRuntimeSettings`. It is used for setting the modes and the priority to recognize accompanying text. Default value will be used if there is no manual setting.
-
-| Struct | Struct Member Name | Value Type |
-| ------ | ------------------ | ---------- |
-| [`PublicRuntimeSettings`]({{ site.structs }}PublicRuntimeSettings.html)->[`furtherModes`]({{ site.structs }}PublicRuntimeSettings.html#furthermodes) | [`accompanyingTextRecognitionModes`]({{ site.structs }}FurtherModes.html#accompanyingtextrecognitionmodes) | [`AccompanyingTextRecognitionMode`]({{ site.enumerations }}parameter-mode-enums.html#accompanyingtextrecognitionmode)[8] |
-
-**Remark**
-
-[`GetModeArgument`]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#getmodeargument) and [`SetModeArgument`]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#setmodeargument) need to be called for getting or setting the value of [arguments](#mode-arguments).
-
-**See Also**
-
-- [`PublicRuntimeSettings` Struct]({{ site.structs }}PublicRuntimeSettings.html)
-- [`FurtherModes` Struct]({{ site.structs }}FurtherModes.html)
-- [`AccompanyingTextRecognitionMode` Enumeration]({{ site.enumerations }}parameter-mode-enums.html#accompanyingtextrecognitionmode)
diff --git a/parameters/reference/all-module-deviation.md b/parameters/reference/all-module-deviation.md
deleted file mode 100644
index efdc0209..00000000
--- a/parameters/reference/all-module-deviation.md
+++ /dev/null
@@ -1,58 +0,0 @@
----
-layout: default-layout
-title: AllModuleDeviation - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for AllModuleDeviation.
-keywords: AllModuleDeviation, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/all-module-deviation.html
----
-
-# AllModuleDeviation
-
-`AllModuleDeviation` specifies the width deviation value (in moduleSize) of a non-standard 1D barcode type relative to the standard barcode width. It is defined as below:
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *int* | [0, 0x7fffffff] | 0 | `FormatSpecification` |
-
-
-**Remarks**
-The unit is barcode module size. For example, if the standard barcode module size is 2px and AllModuleDeviation is 1, then the non-standard barcode module size is 4px.
-
-
-
-## Setting Methods
-`AllModuleDeviation` can be set via JSON template.
-
-### As JSON Parameter
-`AllModuleDeviation` as a JSON parameter is a number value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| AllModuleDeviation | A number from [0, 0x7fffffff] |
-
-
-**JSON Example**
-```
-{
- "AllModuleDeviation": 1
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [Configure parameters for a certain barcode format]({{ site.scenario_settings }}format-specification.html#allmoduledeviation)
diff --git a/parameters/reference/australian-post-encoding-table.md b/parameters/reference/australian-post-encoding-table.md
deleted file mode 100644
index a34bd38e..00000000
--- a/parameters/reference/australian-post-encoding-table.md
+++ /dev/null
@@ -1,55 +0,0 @@
----
-layout: default-layout
-title: AustralianPostEncodingTable - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for AustralianPostEncodingTable.
-keywords: AustralianPostEncodingTable, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/australian-post-encoding-table.html
----
-
-
-# AustralianPostEncodingTable
-
-`AustralianPostEncodingTable` helps specify the encoding table used to code the Customer Information Field of Australian Post Customer Barcode. It is defined as below:
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *string* | "C" "N" | "C" | `FormatSpecification` |
-
-
-
-## Setting Methods
-`AustralianPostEncodingTable` can be set via JSON template.
-
-### As JSON Parameter
-`AustralianPostEncodingTable` as a JSON parameter is a number value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| AustralianPostEncodingTable | "C" or "N" as a string |
-
-
-**JSON Example**
-```
-{
- "AustralianPostEncodingTable": "N"
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [Configure parameters for a certain barcode format]({{ site.scenario_settings }}format-specification.html#australianpostencodingtable)
diff --git a/parameters/reference/barcode-angle-range-array.md b/parameters/reference/barcode-angle-range-array.md
deleted file mode 100644
index 7cb7f4a5..00000000
--- a/parameters/reference/barcode-angle-range-array.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-layout: default-layout
-title: BarcodeAngleRangeArray - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for BarcodeAngleRangeArray.
-keywords: BarcodeAngleRangeArray, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/barcode-angle-range-array.html
----
-
-
-# BarcodeAngleRangeArray
-
-`BarcodeAngleRangeArray` defines the range of angles (in degrees) for barcodes searching and result filtering. It is not set by default which means there is no limitation on the barcode angles.
-
-## Setting Methods
-`BarcodeAngleRangeArray` can be set via JSON template.
-
-### As JSON Parameter
-`BarcodeAngleRangeArray` as a JSON parameter is defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| BarcodeAngleRangeArray | A JSON Object array while each Object is defined as below. |
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| MinValue | A number from [0, 360] | Sets the minimum barcode angle. |
-| MaxValue | A number from [0, 360] | Sets the maximum barcode angle . |
-
-
-**JSON Example**
-```
-{
- "BarcodeAngleRangeArray": [
- {
- "MinValue": 100,
- "MaxValue": 200
- }
- ]
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to filter out results]({{ site.scenario_settings }}decode-result.html)
diff --git a/parameters/reference/barcode-bytes-length-range-array.md b/parameters/reference/barcode-bytes-length-range-array.md
deleted file mode 100644
index 6c11fc9a..00000000
--- a/parameters/reference/barcode-bytes-length-range-array.md
+++ /dev/null
@@ -1,60 +0,0 @@
----
-layout: default-layout
-title: BarcodeBytesLengthRangeArray - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for BarcodeBytesLengthRangeArray.
-keywords: BarcodeBytesLengthRangeArray, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/barcode-bytes-length-range-array.html
----
-
-
-# BarcodeBytesLengthRangeArray
-
-`BarcodeBytesLengthRangeArray` defines the range of barcode bytes length for barcodes searching and result filtering. It is not set by default which means there is no limitation on the barcode byte length.
-
-
-## Setting Methods
-`BarcodeBytesLengthRangeArray` can be set via JSON template.
-
-### As JSON Parameter
-`BarcodeBytesLengthRangeArray` as a JSON parameter is defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| BarcodeBytesLengthRangeArray | A JSON Object array while each Object is defined as below. |
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| MinValue | A number from [0, 0x7fffffff] | Sets the minimum barcode bytes length. |
-| MaxValue | A number from [0, 0x7fffffff] | Sets the maximum barcode bytes length. |
-
-
-**JSON Example**
-```
-{
- "BarcodeBytesLengthRangeArray": [
- {
- "MinValue": 100,
- "MaxValue": 200
- }
- ]
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to filter out results]({{ site.scenario_settings }}decode-result.html)
diff --git a/parameters/reference/barcode-bytes-regex-pattern.md b/parameters/reference/barcode-bytes-regex-pattern.md
deleted file mode 100644
index 138d7461..00000000
--- a/parameters/reference/barcode-bytes-regex-pattern.md
+++ /dev/null
@@ -1,54 +0,0 @@
----
-layout: default-layout
-title: BarcodeBytesRegExPattern - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for BarcodeBytesRegExPattern.
-keywords: BarcodeBytesRegExPattern, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/barcode-bytes-regex-pattern.html
----
-
-
-# BarcodeBytesRegExPattern
-
-`BarcodeBytesRegExPattern` defines the regular expression pattern of barcode byte characters for barcode searching and result filtering. It is set to an empty string by default which means there is no limitation on the barcode byte characters.
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *string* | N/A | `""` | `FormatSpecification` |
-
-
-## Setting Methods
-`BarcodeBytesRegExPattern` can be set via JSON template.
-
-### As JSON Parameter
-`BarcodeBytesRegExPattern` as a JSON parameter is defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| BarcodeBytesRegExPattern | a string representing regular expression pattern |
-
-
-**JSON Example**
-```
-{
- "BarcodeBytesRegExPattern": " ^([*].+[*]|[+].+[+])$"
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to filter out results]({{ site.scenario_settings }}decode-result.html)
diff --git a/parameters/reference/barcode-colour-modes.md b/parameters/reference/barcode-colour-modes.md
deleted file mode 100644
index 1b547f89..00000000
--- a/parameters/reference/barcode-colour-modes.md
+++ /dev/null
@@ -1,173 +0,0 @@
----
-layout: default-layout
-title: BarcodeColourModes - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for BarcodeColourModes.
-keywords: BarcodeColourModes, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/barcode-colour-modes.html
----
-
-
-# BarcodeColourModes
-
-`BarcodeColourModes` defines the barcode colour modes. It consists of one or more modes, with each representing a different colour environment.
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *int* / *EnumBarcodeColourMode* | N/A | `BICM_DARK_ON_LIGHT` | `ImageParameter` |
-
-
-## Candidate Mode List
-- BICM_DARK_ON_LIGHT
-- BICM_LIGHT_ON_DARK
-- BICM_DARK_ON_DARK
-- BICM_LIGHT_ON_LIGHT
-- BICM_DARK_LIGHT_MIXED
-- BICM_DARK_ON_LIGHT_DARK_SURROUNDING
-
-### BICM_DARK_ON_LIGHT
-The target barcode is a dark item on a light background. This mode has the following arguments for further customizing.
-
-- [LightReflection](#lightreflection)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-
-
-### BICM_DARK_ON_LIGHT_DARK_SURROUNDING
-The target barcode is a dark item on a light background surrounded by dark. This mode has the following arguments for further customizing.
-
-- [LightReflection](#lightreflection)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-
-### BICM_LIGHT_ON_DARK
-The target barcode is a light item on a dark background. Not supported yet.
-
-### BICM_DARK_ON_DARK
-The target barcode is a dark item on a dark background. Not supported yet.
-
-### BICM_LIGHT_ON_LIGHT
-The target barcode is a light item on a light background. Not supported yet.
-
-### BICM_DARK_LIGHT_MIXED
-The target barcode is on background which is mixed by dark and light. Not supported yet.
-
-
-
-## Setting Methods
-
-### As `PublicRuntimeSettings` Member
-`BarcodeColourModes` can be set dynamically during runtime as a member of `FurtherModes`, which is a member of `PublicRuntimeSettings` struct, it is an array with 8 `BarcodeColourMode` Enumeration items.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->barcodeColourModes[0] = BICM_DARK_ON_LIGHT;
-reader->UpdateRuntimeSettings(pSettings);
-reader->SetModeArgument("BarcodeColourModes", 0, "LightReflection", "1");
-delete pSettings;
-//...other codes
-```
-
-
-**Remarks**
-`GetModeArgument` and `SetModeArgument` need to be called for getting and setting [`Arguments`](#candidate-argument-list).
-
-
-**See Also**
-- `FurtherModes:` [C]({{ site.structs }}FurtherModes.html?src=c) \| [C++]({{ site.structs }}FurtherModes.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/FurtherModes.html) \| [Java]({{ site.java_api }}class/FurtherModes.html) \| [Java-Android]({{ site.android_api }}auxiliary-FurtherModes.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iFurtherModes.html)
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- `BarcodeColourMode:` [JavaScript]({{ site.js_enumerations }}EnumBarcodeColourMode.html) \| [C]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=c#barcodecolourmode) \| [C++]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=cpp#barcodecolourmode) \| [.NET]({{ site.dotnet_enumerations }}parameter-mode-enums.html#barcodecolourmode) \| [Python]({{ site.python_enumerations }}parameter-mode-enums.html#barcodecolourmode) \| [Java]({{ site.java_enumerations }}parameter-mode-enums.html#barcodecolourmode) \| [Java-Android]({{ site.mobile_enumerations }}barcode-colour-mode.html?lang=android) \| [Objective-C & Swift]({{ site.mobile_enumerations }}barcode-colour-mode.html?lang=objc,swift)
-- `GetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#getmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_getmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#getmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#get_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument)
-- `SetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#setmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_setmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#setmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#set_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument)
-
-
-### As JSON Parameter
-`BarcodeColourModes` as a JSON parameter is a JSON Object array. Each JSON object is defined as below.
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| Mode | Any one in Candidate Mode List as string | (Required) Specifies a target barcode colour mode. |
-| LightReflection | A number from value range of LightReflection | (Optional) Sets the Argument [LightReflection](#lightreflection). |
-| LibraryFileName | A string from value range of LibraryFileName | (Optional) Sets the Argument [LibraryFileName](#libraryfilename). |
-| LibraryParameters | A string from value range of LibraryParameters | (Optional) Sets the Argument [LibraryParameters](#libraryparameters). |
-
-
-
-**JSON Parameter Example**
-```
-{
- "BarcodeColourModes": [
- {
- "Mode": "BICM_DARK_ON_LIGHT",
- "LightReflection": 1
- },
- {
- "Mode": "BICM_DARK_ON_LIGHT",
- "LightReflection": 0
- }
- ]
-}
-```
-
-
-
-
-
-
-## Candidate Argument List
-- [LightReflection](#lightreflection)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### LightReflection
-Sets if there is light reflection on the barcode zone.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [0, 1] | 1 | BICM_DARK_ON_LIGHT BICM_DARK_ON_LIGHT_DARK_SURROUNDING |
-
-**Remarks**
- - 0: no light reflection.
- - 1: has light reflection.
-
-
-### LibraryFileName
-Sets the file name of the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing file name. | "" | All modes |
-
-
-**Remarks**
- The library must be in the same place with Dynamsoft Barcode Reader Library.
-
-
-### LibraryParameters
-Sets the parameters passed to the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | ----------- |
-| *string* | A string value representing parameters. | "" | All modes |
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
diff --git a/parameters/reference/barcode-complement-modes.md b/parameters/reference/barcode-complement-modes.md
deleted file mode 100644
index 8cced97e..00000000
--- a/parameters/reference/barcode-complement-modes.md
+++ /dev/null
@@ -1,131 +0,0 @@
----
-layout: default-layout
-title: BarcodeComplementModes - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for BarcodeComplementModes.
-keywords: BarcodeComplementModes, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/barcode-complement-modes.html
----
-
-
-# BarcodeComplementModes
-
-`BarcodeComplementModes` determines how to complement the missing parts of a barcode. It consists of one or more modes, each mode is an implement to complement the barcode.
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *int* / *EnumBarcodeComplementMode* | N/A | `BCM_SKIP` | `ImageParameter`/`FormatSpecification` |
-
-## Candidate Mode List
-- BCM_GENERAL
-- BCM_AUTO
-
-### BCM_GENERAL
-Complements the barcode using the general algorithm. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-
-### BCM_AUTO
-Lets the library choose a mode automatically. Not supported yet.
-
-
-
-## Setting Methods
-
-### As `PublicRuntimeSettings` Member
-`BarcodeComplementModes` can be set dynamically during runtime as a member of `FurtherModes`, which is a member of `PublicRuntimeSettings` struct, it is an array with 8 `BarcodeComplementMode` Enumeration items.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->barcodeComplementModes[0] = BCM_GENERAL;
-reader->UpdateRuntimeSettings(pSettings);
-delete pSettings;
-//...other codes
-```
-
-
-**Remarks**
-`GetModeArgument` and `SetModeArgument` need to be called for getting and setting [`Arguments`](#candidate-argument-list).
-
-
-**See Also**
-- `FurtherModes:` [C]({{ site.structs }}FurtherModes.html?src=c) \| [C++]({{ site.structs }}FurtherModes.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/FurtherModes.html) \| [Java]({{ site.java_api }}class/FurtherModes.html) \| [Java-Android]({{ site.android_api }}auxiliary-FurtherModes.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iFurtherModes.html)
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- `BarcodeComplementMode:` [JavaScript]({{ site.js_enumerations }}EnumBarcodeComplementMode.html) \| [C]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=c#barcodecomplementmode) \| [C++]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=cpp#barcodecomplementmode) \| [.NET]({{ site.dotnet_enumerations }}parameter-mode-enums.html#barcodecomplementmode) \| [Python]({{ site.python_enumerations }}parameter-mode-enums.html#barcodecomplementmode) \| [Java]({{ site.java_enumerations }}parameter-mode-enums.html#barcodecomplementmode) \| [Java-Android]({{ site.mobile_enumerations }}barcode-complement-mode.html?lang=android) \| [Objective-C & Swift]({{ site.mobile_enumerations }}barcode-complement-mode.html?lang=objc,swift)
-- `GetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#getmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_getmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#getmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#get_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument)
-- `SetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#setmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_setmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#setmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#set_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument)
-
-
-### As JSON Parameter
-`BarcodeComplementModes` as a JSON parameter is a JSON Object array. Each JSON object is defined as below.
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| Mode | Any one in Candidate Mode List as string | (Required) Specifies a barcode complement mode. |
-| LibraryFileName | A string from value range of LibraryFileName | (Optional) Sets the Argument [LibraryFileName](#libraryfilename). |
-| LibraryParameters | A string from value range of LibraryParameters | (Optional) Sets the Argument [LibraryParameters](#libraryparameters). |
-
-
-
-**JSON Parameter Example**
-```
-{
- "BarcodeComplementModes": [
- {
- "Mode": "BCM_GENERAL"
- }
- ]
-}
-```
-
-
-
-
-
-
-## Candidate Argument List
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-
-### LibraryFileName
-Sets the file name of the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing file name. | "" | All modes |
-
-
-**Remarks**
- The library must be in the same place with Dynamsoft Barcode Reader Library.
-
-
-### LibraryParameters
-Sets the parameters passed to the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | ----------- |
-| *string* | A string value representing parameters. | "" | All modes |
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to decode incomplete barcodes]({{ site.scenario_settings }}how-to-set-barcode-complement-modes.html)
diff --git a/parameters/reference/barcode-format-ids-2.md b/parameters/reference/barcode-format-ids-2.md
deleted file mode 100644
index 4f62ee68..00000000
--- a/parameters/reference/barcode-format-ids-2.md
+++ /dev/null
@@ -1,79 +0,0 @@
----
-layout: default-layout
-title: BarcodeFormatIds_2 - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for BarcodeFormatIds_2.
-keywords: BarcodeFormatIds_2, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/barcode-format-ids-2.html
----
-
-
-# BarcodeFormatIds_2
-
-`BarcodeFormatIds_2` defines the formats of the barcode in `BarcodeFormat group 2` to be read. It is a combined value of `BarcodeFormat_2` Enumeration items.
-
-**Remarks**
-
-- The default value is all supported barcode formats in `BarcodeFormat group 2`.
-- The barcode format our library will search for is composed of [`BarcodeFormat group 1`](barcode-format-ids.md) and `BarcodeFormat group 2`, so you need to specify the barcode format in group 1 and group 2 individually.
-
-
-## Setting Methods
-`BarcodeFormatIds_2` can be set through `RuntimeSetting` or JSON template.
-
-### As `PublicRuntimeSettings` Member
-`BarcodeFormatIds_2` can be set dynamically during runtime as a member of `PublicRuntimeSettings` struct.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->barcodeFormatIds = BF_ALL;
-pSettings->barcodeFormatIds_2 = BF2_POSTALCODE | BF2_DOTCODE;
-reader->UpdateRuntimeSettings(pSettings);
-delete pSettings;
-//...other codes
-```
-
-
-
-**See Also**
-
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- `BarcodeFormat:` [JavaScript]({{ site.js_enumerations }}EnumBarcodeFormat.html) \| [C]({{ site.c_cpp_enumerations }}format-enums.html?src=c#barcodeformat) \| [C++]({{ site.c_cpp_enumerations }}format-enums.html?src=cpp#barcodeformat) \| [.NET]({{ site.dotnet_enumerations }}format-enums.html#barcodeformat) \| [Python]({{ site.python_enumerations }}format-enums.html#barcodeformat) \| [Java]({{ site.java_enumerations }}format-enums.html#barcodeformat) \| [Java-Android]({{ site.mobile_enumerations }}barcode-format.html?lang=android) \| [Objective-C & Swift]({{ site.mobile_enumerations }}barcode-format.html?lang=objc,swift)
-- `BarcodeFormat_2:` [JavaScript]({{ site.js_enumerations }}EnumBarcodeFormat_2.html) \| [C]({{ site.c_cpp_enumerations }}format-enums.html?src=c#barcodeformat_2) \| [C++]({{ site.c_cpp_enumerations }}format-enums.html?src=cpp#barcodeformat_2) \| [.NET]({{ site.dotnet_enumerations }}format-enums.html#barcodeformat_2) \| [Python]({{ site.python_enumerations }}format-enums.html#barcodeformat_2) \| [Java]({{ site.java_enumerations }}format-enums.html#barcodeformat_2) \| [Java-Android]({{ site.mobile_enumerations }}barcode-format2.html?lang=android) \| [Objective-C & Swift]({{ site.mobile_enumerations }}barcode-format2.html?lang=objc,swift)
-
-
-### As JSON Parameter
-`BarcodeFormatIds_2` as a JSON parameter is a string Array defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| BarcodeFormatIds_2 | A string array while each array item is one of the [`BarcodeFormat_2` Enumeration]({{ site.c_cpp_enumerations }}format-enums.html?src=cpp#barcodeformat_2) items. |
-
-
-**JSON Example**
-```
-{
- "BarcodeFormatIds_2": ["BF2_POSTALCODE", "BF2_DOTCODE"]
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
diff --git a/parameters/reference/barcode-format-ids.md b/parameters/reference/barcode-format-ids.md
deleted file mode 100644
index 647cbd2d..00000000
--- a/parameters/reference/barcode-format-ids.md
+++ /dev/null
@@ -1,78 +0,0 @@
----
-layout: default-layout
-title: BarcodeFormatIds - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for BarcodeFormatIds.
-keywords: BarcodeFormatIds, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/barcode-format-ids.html
----
-
-
-# BarcodeFormatIds
-
-`BarcodeFormatIds` defines the formats of the barcode in `BarcodeFormat group 1` to be read. It is a combined value of `BarcodeFormat` Enumeration items.
-
-**Remarks**
-
-- The default value is all supported barcode formats in `BarcodeFormat group 1`.
-- The barcode format our library will search for is composed of `BarcodeFormat group 1` and [`BarcodeFormat group 2`](barcode-format-ids-2.md), so you need to specify the barcode format in group 1 and group 2 individually.
-
-## Setting Methods
-`BarcodeFormatIds` can be set through `RuntimeSetting` or JSON template.
-
-### As `PublicRuntimeSettings` Member
-`BarcodeFormatIds` can be set dynamically during runtime as a member of `PublicRuntimeSettings` struct.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->barcodeFormatIds = BF_ALL;
-pSettings->barcodeFormatIds_2 = BF2_POSTALCODE | BF2_DOTCODE;
-reader->UpdateRuntimeSettings(pSettings);
-delete pSettings;
-//...other codes
-```
-
-
-
-**See Also**
-
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- `BarcodeFormat:` [JavaScript]({{ site.js_enumerations }}EnumBarcodeFormat.html) \| [C]({{ site.c_cpp_enumerations }}format-enums.html?src=c#barcodeformat) \| [C++]({{ site.c_cpp_enumerations }}format-enums.html?src=cpp#barcodeformat) \| [.NET]({{ site.dotnet_enumerations }}format-enums.html#barcodeformat) \| [Python]({{ site.python_enumerations }}format-enums.html#barcodeformat) \| [Java]({{ site.java_enumerations }}format-enums.html#barcodeformat) \| [Java-Android]({{ site.mobile_enumerations }}barcode-format.html?lang=android) \| [Objective-C & Swift]({{ site.mobile_enumerations }}barcode-format.html?lang=objc,swift)
-- `BarcodeFormat_2:` [JavaScript]({{ site.js_enumerations }}EnumBarcodeFormat_2.html) \| [C]({{ site.c_cpp_enumerations }}format-enums.html?src=c#barcodeformat_2) \| [C++]({{ site.c_cpp_enumerations }}format-enums.html?src=cpp#barcodeformat_2) \| [.NET]({{ site.dotnet_enumerations }}format-enums.html#barcodeformat_2) \| [Python]({{ site.python_enumerations }}format-enums.html#barcodeformat_2) \| [Java]({{ site.java_enumerations }}format-enums.html#barcodeformat_2) \| [Java-Android]({{ site.mobile_enumerations }}barcode-format2.html?lang=android) \| [Objective-C & Swift]({{ site.mobile_enumerations }}barcode-format2.html?lang=objc,swift)
-
-
-### As JSON Parameter
-`BarcodeFormatIds` as a JSON parameter is a string Array defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| BarcodeFormatIds | A string array while each array item is one of the [`BarcodeFormat` Enumeration]({{ site.c_cpp_enumerations }}format-enums.html?src=cpp#barcodeformat) items. |
-
-
-**JSON Example**
-```
-{
- "BarcodeFormatIds": ["BF_ONED", "BF_DATAMATRIX"]
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
diff --git a/parameters/reference/barcode-height-range-array.md b/parameters/reference/barcode-height-range-array.md
deleted file mode 100644
index 02dbd64e..00000000
--- a/parameters/reference/barcode-height-range-array.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-layout: default-layout
-title: BarcodeHeightRangeArray - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for BarcodeHeightRangeArray.
-keywords: BarcodeHeightRangeArray, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/barcode-height-range-array.html
----
-
-
-# BarcodeHeightRangeArray
-
-`BarcodeHeightRangeArray` defines the range of heights (in pixels) for barcodes searching and result filtering. It is not set by default which means there is no limitation on the barcode heights.
-
-## Setting Methods
-`BarcodeHeightRangeArray` can be set via JSON template.
-
-### As JSON Parameter
-`BarcodeHeightRangeArray` as a JSON parameter is defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| BarcodeHeightRangeArray | A JSON Object array while each Object is defined as below. |
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| MinValue | A number from [0, 0x7fffffff] | Sets the minimum barcode height. |
-| MaxValue | A number from [0, 0x7fffffff] | Sets the maximum barcode height. |
-
-
-**JSON Example**
-```
-{
- "BarcodeHeightRangeArray": [
- {
- "MinValue": 100,
- "MaxValue": 200
- }
- ]
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to filter out results]({{ site.scenario_settings }}decode-result.html)
diff --git a/parameters/reference/barcode-text-length-range-array.md b/parameters/reference/barcode-text-length-range-array.md
deleted file mode 100644
index 46941c4b..00000000
--- a/parameters/reference/barcode-text-length-range-array.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-layout: default-layout
-title: BarcodeTextLengthRangeArray - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for BarcodeTextLengthRangeArray.
-keywords: BarcodeTextLengthRangeArray, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/barcode-text-length-range-array.html
----
-
-
-# BarcodeTextLengthRangeArray
-
-`BarcodeTextLengthRangeArray` defines the range of barcode text length for barcodes searching and result filtering. It is not set by default which means there is no limitation on the barcode text length.
-
-## Setting Methods
-`BarcodeTextLengthRangeArray` can be set via JSON template.
-
-### As JSON Parameter
-`BarcodeTextLengthRangeArray` as a JSON parameter is defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| BarcodeTextLengthRangeArray | A JSON Object array while each Object is defined as below. |
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| MinValue | A number from [0, 0x7fffffff] | Sets the minimum barcode text length. |
-| MaxValue | A number from [0, 0x7fffffff] | Sets the maximum barcode text length. |
-
-
-**JSON Example**
-```
-{
- "BarcodeTextLengthRangeArray": [
- {
- "MinValue": 100,
- "MaxValue": 200
- }
- ]
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to filter out results]({{ site.scenario_settings }}decode-result.html)
diff --git a/parameters/reference/barcode-text-regex-pattern.md b/parameters/reference/barcode-text-regex-pattern.md
deleted file mode 100644
index 946faa37..00000000
--- a/parameters/reference/barcode-text-regex-pattern.md
+++ /dev/null
@@ -1,52 +0,0 @@
----
-layout: default-layout
-title: BarcodeTextRegExPattern - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for BarcodeTextRegExPattern.
-keywords: BarcodeTextRegExPattern, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/barcode-text-regex-pattern.html
----
-
-
-# BarcodeTextRegExPattern
-
-`BarcodeTextRegExPattern` defines the regular expression pattern of barcode text characters for barcodes searching and result filtering. It set to an empty string by default which means there is no limitation on the barcode text characters.
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *string* | N/A | `""` | `FormatSpecification` |
-
-## Setting Methods
-`BarcodeTextRegExPattern` can be set via JSON template.
-
-### As JSON Parameter
-`BarcodeTextRegExPattern` as a JSON parameter is defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| BarcodeTextRegExPattern | a string representing regular express pattern |
-
-**JSON Example**
-```
-{
- "BarcodeTextRegExPattern": " ^([*].+[*]|[+].+[+])$"
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to filter out results]({{ site.scenario_settings }}decode-result.html)
diff --git a/parameters/reference/barcode-width-range-array.md b/parameters/reference/barcode-width-range-array.md
deleted file mode 100644
index 95725aef..00000000
--- a/parameters/reference/barcode-width-range-array.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-layout: default-layout
-title: BarcodeWidthRangeArray - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for BarcodeWidthRangeArray.
-keywords: BarcodeWidthRangeArray, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/barcode-width-range-array.html
----
-
-
-# BarcodeWidthRangeArray
-
-`BarcodeWidthRangeArray` defines the range of widths (in pixels) for barcodes searching and result filtering. It is not set by default which means there is no limitation on the barcode widths.
-
-## Setting Methods
-`BarcodeWidthRangeArray` can be set via JSON template.
-
-### As JSON Parameter
-`BarcodeWidthRangeArray` as a JSON parameter is defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| BarcodeWidthRangeArray | A JSON Object array while each Object is defined as below. |
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| MinValue | A number from [0, 0x7fffffff] | Sets the minimum barcode width. |
-| MaxValue | A number from [0, 0x7fffffff] | Sets the maximum barcode width. |
-
-
-**JSON Example**
-```
-{
- "BarcodeWidthRangeArray": [
- {
- "MinValue": 100,
- "MaxValue": 200
- }
- ]
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to filter out results]({{ site.scenario_settings }}decode-result.html)
diff --git a/parameters/reference/barcode-zone-bar-count-range-array.md b/parameters/reference/barcode-zone-bar-count-range-array.md
deleted file mode 100644
index c7dfc0e8..00000000
--- a/parameters/reference/barcode-zone-bar-count-range-array.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-layout: default-layout
-title: BarcodeZoneBarCountRangeArray - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for BarcodeZoneBarCountRangeArray.
-keywords: BarcodeZoneBarCountRangeArray, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/barcode-zone-bar-count-range-array.html
----
-
-
-# BarcodeZoneBarCountRangeArray
-
-`BarcodeZoneBarCountRangeArray` defines the range of bar count of the barcode zone for barcodes searching. By default, the minimum bar count is 1 and the maximum bar count is 128.
-
-## Setting Methods
-`BarcodeZoneBarCountRangeArray` can be set via JSON template.
-
-### As JSON Parameter
-`BarcodeZoneBarCountRangeArray` as a JSON parameter is defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| BarcodeZoneBarCountRangeArray | A JSON Object array while each Object is defined as below. |
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| MinValue | A number from [1, 0x7fffffff] | Sets the minimum bar count. |
-| MaxValue | A number from [1, 0x7fffffff] | Sets the maximum bar count. |
-
-
-**JSON Example**
-```
-{
- "BarcodeZoneBarCountRangeArray": [
- {
- "MinValue": 1,
- "MaxValue": 128
- }
- ]
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to filter out results]({{ site.scenario_settings }}decode-result.html)
diff --git a/parameters/reference/barcode-zone-min-distance-to-image-borders.md b/parameters/reference/barcode-zone-min-distance-to-image-borders.md
deleted file mode 100644
index 034e0562..00000000
--- a/parameters/reference/barcode-zone-min-distance-to-image-borders.md
+++ /dev/null
@@ -1,79 +0,0 @@
----
-layout: default-layout
-title: BarcodeZoneMinDistanceToImageBorders - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for BarcodeZoneMinDistanceToImageBorders.
-keywords: BarcodeZoneMinDistanceToImageBorders, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/barcode-zone-min-distance-to-image-borders.html
----
-
-
-# BarcodeZoneMinDistanceToImageBorders
-
-`BarcodeZoneMinDistanceToImageBorders` defines the minimum distance (in pixels) between the barcode zone and image borders. It is defined as below:
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *int* | [0, 0x7fffffff] | 0 | `FormatSpecification` |
-
-
-**Remarks**
-- If a barcode region has been set, this parameter should not be used.
-
-
-
-## Setting Methods
-`BarcodeZoneMinDistanceToImageBorders` is supported to be set through `RuntimeSetting` or JSON template.
-
-### As `PublicRuntimeSettings` Member
-`BarcodeZoneMinDistanceToImageBorders` can be set dynamically during runtime as a member of `PublicRuntimeSettings` struct.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->barcodeZoneMinDistanceToImageBorders = 1;
-reader->UpdateRuntimeSettings(pSettings);
-delete pSettings;
-//...other codes
-```
-
-
-
-**See Also**
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-
-
-### As JSON Parameter
-`BarcodeZoneMinDistanceToImageBorders` as a JSON parameter is a number value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| BarcodeZoneMinDistanceToImageBorders | A number from [0, 0x7fffffff] |
-
-
-**JSON Example**
-```
-{
- "BarcodeZoneMinDistanceToImageBorders": 1
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
diff --git a/parameters/reference/binarization-modes-v8.2.5.md b/parameters/reference/binarization-modes-v8.2.5.md
deleted file mode 100644
index 90e79b57..00000000
--- a/parameters/reference/binarization-modes-v8.2.5.md
+++ /dev/null
@@ -1,220 +0,0 @@
----
-layout: default-layout
-title: BinarizationModes - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for BinarizationModes.
-keywords: BinarizationModes, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
----
-
-# BinarizationModes
-
-This parameter helps control the process of binarization, i.e., converting grayscale image to binary image. A better binary image helps a lot for barcode reading. During the binarization, as we know, the threshold is the key criteria. If the pixel value is smaller than the threshold, it is set to 0, otherwise, it is set to a maximum value (255 in the library). By default, the library automatically calculates the adaptive size of the neighbourhood area and then binarizes the grayscale image with the adaptive threshold based on a small neighbourhood area with an adaptive size around it. Assume this field is in your wheelhouse, this parameter may help specify the appropriate settings for getting a better binary image.
-
-It consists of one or more modes, each mode is a way to implement the binarization.
-
-## Candidate Mode List
-
-- BM_LOCAL_BLOCK
-- BM_THRESHOLD
-
-### BM_LOCAL_BLOCK
-
-Binarizes the image for each pixel based on a threshold which is calculated based on a small region around it. This mode has the following arguments for further customizing.
-
-- [BlockSizeX](#blocksizex)
-- [BlockSizeY](#blocksizey)
-- [EnableFillBinaryVacancy](#enablefillbinaryvacancy)
-- [ImagePreprocessingModesIndex](#imagepreprocessingmodesindex)
-- [ThreshValueCoefficient](#threshvaluecoefficient)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### BM_THRESHOLD
-Binarizes the image for each pixel based on a unified threshold. If the gray value of the pixel is less than the threshold, it will be black in the binary image, otherwise it will be white. This mode has the following arguments for further customizing.
-
-- [ImagePreprocessingModesIndex](#imagepreprocessingmodesindex)
-- [BinarizationThreshold](#binarizationthreshold)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-## Setting Methods
-
-### As `PublicRuntimeSettings` Member
-`BinarizationModes` can be set dynamically during runtime as a member of `PublicRuntimeSettings` struct, it is an array with 8 [`BinarizationMode`]({{ site.enumerations }}parameter-mode-enums.html#binarizationmode) Enumeration items.
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->binarizationModes[0] = BM_LOCAL_BLOCK;
-pSettings->binarizationModes[1] = BM_THRESHOLD;
-reader->UpdateRuntimeSettings(pSettings);
-reader->SetModeArgument("BinarizationModes", 0, "EnableFillBinaryVacancy", "0");
-reader->SetModeArgument("BinarizationModes", 1, "BinarizationThreshold", "125");
-delete pSettings;
-//...other codes
-```
-
-**Remarks**
-`GetModeArgument` and `SetModeArgument` need to be called for getting and setting [`Arguments`](#candidate-argument-list).
-
-**See Also**
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- [`BinarizationMode` Enumeration]({{ site.enumerations }}parameter-mode-enums.html#binarizationmode)
-- `GetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#getmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_getmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#getmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#get_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument)
-- `SetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#setmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_setmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#setmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#set_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument)
-
-### As JSON Parameter
-`BinarizationModes` as a JSON parameter is a JSON Object array. Each JSON object is defined as below.
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| Mode | Any one in Candidate Mode List as string | (Required) Sets a binarization mode. |
-| BinarizationThreshold | A number from value range of BinarizationThreshold | (Optional) Sets the Argument [BinarizationThreshold](#binarizationthreshold). |
-| BlockSizeX | A number from value range of BlockSizeX | (Optional) Sets the Argument [BlockSizeX](#blocksizex). |
-| BlockSizeY | A number from value range of BlockSizeY | (Optional) Sets the Argument [BlockSizeY](#blocksizey). |
-| EnableFillBinaryVacancy | A number from value range of EnableFillBinaryVacancy | (Optional) Sets the Argument [EnableFillBinaryVacancy](#enablefillbinaryvacancy). |
-| ImagePreprocessingModesIndex | A number from value range of ImagePreprocessingModesIndex | (Optional) Sets the Argument [ImagePreprocessingModesIndex](#imagepreprocessingmodesindex). |
-| ThreshValueCoefficient | A number from value range of ThreshValueCoefficient | (Optional) Sets the Argument [ThreshValueCoefficient](#threshvaluecoefficient). |
-| LibraryFileName | A string from value range of LibraryFileName | (Optional) Sets the Argument [LibraryFileName](#libraryfilename). |
-| LibraryParameters | A string from value range of LibraryParameters | (Optional) Sets the Argument [LibraryParameters](#libraryparameters). |
-
-**JSON Parameter Example**
-```
-{
- "BinarizationModes": [
- {
- "Mode": "BM_LOCAL_BLOCK",
- "BlockSizeX": 5,
- "BlockSizeY": 5
- },
- {
- "Mode": "BM_THRESHOLD",
- "BinarizationThreshold": 125
- }
- ]
-}
-```
-
-
-## Candidate Argument List
-- [BlockSizeX](#blocksizex)
-- [BlockSizeY](#blocksizey)
-- [EnableFillBinaryVacancy](#enablefillbinaryvacancy)
-- [ImagePreprocessingModesIndex](#imagepreprocessingmodesindex)
-- [ThreshValueCoefficient](#threshvaluecoefficient)
-- [ThreshValueCoefficient](#threshvaluecoefficient)
-- [BinarizationThreshold](#binarizationthreshold)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### BlockSizeX
-Sets the horizontal block size for the binarization process.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [0, 1000] | 0 | BM_LOCAL_BLOCK |
-
-**Remarks**
- Block size refers to the size of a pixel neighborhood used to calculate a threshold value for the pixel.
-
- - 0: the block size used for binarization will be set to a value which is calculated automatically.
- - N:
- - 1 <= N <= 3: the block size used for binarization will be set to 3.
- - N > 3: the block size used for binarization will be set to N.
-
-**Performance Adaptability**
-Setting this to an appropriate value ( 5 - 8 times module size is recommended ) may improve the Read Rate.
-
-### BlockSizeY
-Sets the vertical block size for the binarization process.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [0, 1000] | 0 | BM_LOCAL_BLOCK |
-
-**Remarks**
- Block size refers to the size of a pixel neighborhood used to calculate a threshold value for the pixel.
-
- - 0: the block size used for binarization will be set to a value which is calculated automatically.
- - N:
- - 1 <= N <= 3: the block size used for binarization will be set to 3.
- - N > 3: the block size used for binarization will be set to N.
-
-**Performance Adaptability**
-Setting this to an appropriate value ( 5 - 8 times module size is recommended ) may improve the Read Rate.
-
-### EnableFillBinaryVacancy
-Sets whether to enable binary vacancy filling.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [0, 1] | 1 | BM_LOCAL_BLOCK |
-
-**Remarks**
- - 0: disable.
- - 1: enable.
-
- For barcodes with a large module size, there might be a vacant area in the position detection pattern after binarization. The vacant area may result in decoding failure. Setting this to True will fill in the vacant area with black and may help improve the decoding success rate.
-
-**Performance Adaptability**
-Enabling this may improve the Read Rate but slowdown the Speed.
-
-### ImagePreprocessingModesIndex
-The index of a specific image preprocessing mode in the [ImagePreprocessingModes](image-preprocessing-modes.md#imagepreprocessingmodes) parameter which the current binarization mode is applied to.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [-1, 0x7fffffff] | -1 | BM_LOCAL_BLOCK BM_THRESHOLD |
-
-**Remarks**
- -1: The current binarization mode is applied to all modes in parameter [ImagePreprocessingModes](image-preprocessing-modes.md#imagepreprocessingmodes).
-
-### ThreshValueCoefficient
-Constant subtracted from the mean or weighted mean used for calculating the threshold. Normally, it is positive but may be zero or negative as well.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [-255, 255] | 10 | BM_LOCAL_BLOCK |
-
-### ThreshValueCoefficient
-Deprecated. Use [ThreshValueCoefficient](#threshvaluecoefficient) instead.
-
-### BinarizationThreshold
-Sets the binarization threshold.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [-1, 255] | -1 | BM_THRESHOLD |
-
-### LibraryFileName
-Sets the file name of the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing file name. | "" | All modes |
-
-**Remarks**
- The library must be in the same place with Dynamsoft Barcode Reader Library.
-
-### LibraryParameters
-Sets the parameters passed to the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | ----------- |
-| *string* | A string value representing parameters. | "" | All modes |
-
-## Related Articles
-- [How to configure the binarization parameters]({{ site.scenario_settings }}how-to-set-binarization-modes.html)
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-
\ No newline at end of file
diff --git a/parameters/reference/binarization-modes.md b/parameters/reference/binarization-modes.md
deleted file mode 100644
index a0fb559c..00000000
--- a/parameters/reference/binarization-modes.md
+++ /dev/null
@@ -1,237 +0,0 @@
----
-layout: default-layout
-title: BinarizationModes - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for BinarizationModes.
-keywords: BinarizationModes, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/binarization-modes.html
----
-
-
-# BinarizationModes
-
-This parameter helps control the process of binarization, i.e., converting a grayscale image to a binary image. A better binary image greatly helps the process of barcode reading. During binarization, the threshold is the key criteria. If the pixel value is smaller than the threshold, it is set to 0, otherwise, it is set to a maximum value (255 in the library). By default, the library automatically calculates the adaptive size of the neighbourhood area and then binarizes the grayscale image with the adaptive threshold based on a small neighbourhood area with an adaptive size around it.
-
-The array consists of one or more modes, each mode representing a different way to implement the binarization.
-
-## Candidate Mode List
-- BM_LOCAL_BLOCK
-- BM_THRESHOLD
-
-### BM_LOCAL_BLOCK
-Binarizes the image for each pixel based on a threshold which is calculated based on a small region around it. This mode has the following arguments for further customizing.
-- [BlockSizeX](#blocksizex)
-- [BlockSizeY](#blocksizey)
-- [EnableFillBinaryVacancy](#enablefillbinaryvacancy)
-- [ImagePreprocessingModesIndex](#imagepreprocessingmodesindex)
-- [ThresholdCompensation](#thresholdcompensation)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### BM_THRESHOLD
-Binarizes the image for each pixel based on a unified threshold. If the gray value of the pixel is less than the threshold, it will be black in the binary image, otherwise it will be white. This mode has the following arguments for further customizing.
-- [ImagePreprocessingModesIndex](#imagepreprocessingmodesindex)
-- [BinarizationThreshold](#binarizationthreshold)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-## Setting Methods
-
-### As `PublicRuntimeSettings` Member
-`BinarizationModes` can be set dynamically during runtime as a member of `PublicRuntimeSettings` struct, it is an array with 8 `BinarizationMode` Enumeration items.
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->binarizationModes[0] = BM_LOCAL_BLOCK;
-pSettings->binarizationModes[1] = BM_THRESHOLD;
-reader->UpdateRuntimeSettings(pSettings);
-reader->SetModeArgument("BinarizationModes", 0, "EnableFillBinaryVacancy", "0");
-reader->SetModeArgument("BinarizationModes", 1, "BinarizationThreshold", "125");
-delete pSettings;
-//...other codes
-```
-
-**Remarks**
-`GetModeArgument` and `SetModeArgument` need to be called for getting and setting [`Arguments`](#candidate-argument-list).
-
-
-**See Also**
-
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- `BinarizationMode:` [JavaScript]({{ site.js_enumerations }}EnumBinarizationMode.html) \| [C]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=c#binarizationmode) \| [C++]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=cpp#binarizationmode) \| [.NET]({{ site.dotnet_enumerations }}parameter-mode-enums.html#binarizationmode) \| [Python]({{ site.python_enumerations }}parameter-mode-enums.html#binarizationmode) \| [Java]({{ site.java_enumerations }}parameter-mode-enums.html#binarizationmode) \| [Java-Android]({{ site.mobile_enumerations }}binarization-mode.html?lang=android) \| [Objective-C & Swift]({{ site.mobile_enumerations }}binarization-mode.html?lang=objc,swift)
-- `GetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#getmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_getmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#getmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#get_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument)
-- `SetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#setmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_setmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#setmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#set_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument)
-
-
-
-### As JSON Parameter
-`BinarizationModes` as a JSON parameter is a JSON Object array. Each JSON object is defined as below.
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| Mode | Any one in Candidate Mode List as string | (Required) Sets a binarization mode. |
-| BinarizationThreshold | A number from value range of BinarizationThreshold | (Optional) Sets the Argument [BinarizationThreshold](#binarizationthreshold). |
-| BlockSizeX | A number from value range of BlockSizeX | (Optional) Sets the Argument [BlockSizeX](#blocksizex). |
-| BlockSizeY | A number from value range of BlockSizeY | (Optional) Sets the Argument [BlockSizeY](#blocksizey). |
-| EnableFillBinaryVacancy | A number from value range of EnableFillBinaryVacancy | (Optional) Sets the Argument [EnableFillBinaryVacancy](#enablefillbinaryvacancy). |
-| ImagePreprocessingModesIndex | A number from value range of ImagePreprocessingModesIndex | (Optional) Sets the Argument [ImagePreprocessingModesIndex](#imagepreprocessingmodesindex). |
-| ThresholdCompensation | A number from value range of ThresholdCompensation | (Optional) Sets the Argument [ThresholdCompensation](#thresholdcompensation). |
-| LibraryFileName | A string from value range of LibraryFileName | (Optional) Sets the Argument [LibraryFileName](#libraryfilename). |
-| LibraryParameters | A string from value range of LibraryParameters | (Optional) Sets the Argument [LibraryParameters](#libraryparameters). |
-
-
-
-**JSON Parameter Example**
-```
-{
- "BinarizationModes": [
- {
- "Mode": "BM_LOCAL_BLOCK",
- "BlockSizeX": 5,
- "BlockSizeY": 5
- },
- {
- "Mode": "BM_THRESHOLD",
- "BinarizationThreshold": 125
- }
- ]
-}
-```
-
-
-
-
-
-
-## Candidate Argument List
-- [BlockSizeX](#blocksizex)
-- [BlockSizeY](#blocksizey)
-- [EnableFillBinaryVacancy](#enablefillbinaryvacancy)
-- [ImagePreprocessingModesIndex](#imagepreprocessingmodesindex)
-- [ThresholdCompensation](#thresholdcompensation)
-- [ThreshValueCoefficient](#threshvaluecoefficient)
-- [BinarizationThreshold](#binarizationthreshold)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### BlockSizeX
-Sets the horizontal block size for the binarization process.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [0, 1000] | 0 | BM_LOCAL_BLOCK |
-
-**Remarks**
- Block size refers to the size of a pixel neighborhood used to calculate a threshold value for the pixel.
-
- - 0: the block size used for binarization will be set to a value which is calculated automatically.
- - N:
- - 1 <= N <= 3: the block size used for binarization will be set to 3.
- - N > 3: the block size used for binarization will be set to N.
-
-**Performance Adaptability**
-Setting this to an appropriate value ( 5 - 8 times module size is recommended ) may improve the Read Rate.
-
-
-### BlockSizeY
-Sets the vertical block size for the binarization process.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [0, 1000] | 0 | BM_LOCAL_BLOCK |
-
-**Remarks**
- Block size refers to the size of a pixel neighborhood used to calculate a threshold value for the pixel.
-
- - 0: the block size used for binarization will be set to a value which is calculated automatically.
- - N:
- - 1 <= N <= 3: the block size used for binarization will be set to 3.
- - N > 3: the block size used for binarization will be set to N.
-
-**Performance Adaptability**
-Setting this to an appropriate value ( 5 - 8 times module size is recommended ) may improve the Read Rate.
-
-
-### EnableFillBinaryVacancy
-Sets whether to enable binary vacancy filling.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [0, 1] | 1 | BM_LOCAL_BLOCK |
-
-**Remarks**
- - 0: disable.
- - 1: enable.
-
- For barcodes with a large module size, there might be a vacant area in the position detection pattern after binarization. The vacant area may result in decoding failure. Setting this to True will fill in the vacant area with black and may help improve the decoding success rate.
-
-**Performance Adaptability**
-Enabling this may improve the Read Rate but slowdown the Speed.
-
-
-### ImagePreprocessingModesIndex
-The index of a specific image preprocessing mode in the [ImagePreprocessingModes](image-preprocessing-modes.md#imagepreprocessingmodes) parameter which the current binarization mode is applied to.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [-1, 0x7fffffff] | -1 | BM_LOCAL_BLOCK BM_THRESHOLD |
-
-**Remarks**
- -1: The current binarization mode is applied to all modes in parameter [ImagePreprocessingModes](image-preprocessing-modes.md#imagepreprocessingmodes).
-
-
-### ThresholdCompensation
-Constant subtracted from the mean or weighted mean used for calculating the threshold. Normally, it is positive but may be zero or negative as well.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [-255, 255] | 10 | BM_LOCAL_BLOCK |
-
-### ThreshValueCoefficient
-Deprecated. Use [ThresholdCompensation](#thresholdcompensation) instead.
-
-### BinarizationThreshold
-Sets the binarization threshold.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [-1, 255] | -1 | BM_THRESHOLD |
-
-### LibraryFileName
-Sets the file name of the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing file name. | "" | All modes |
-
-
-**Remarks**
- The library must be in the same place with Dynamsoft Barcode Reader Library.
-
-
-### LibraryParameters
-Sets the parameters passed to the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | ----------- |
-| *string* | A string value representing parameters. | "" | All modes |
-
-
-## Related Articles
-- [How to configure the binarization parameters]({{ site.scenario_settings }}how-to-set-binarization-modes.html)
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
diff --git a/parameters/reference/code128-subset.md b/parameters/reference/code128-subset.md
deleted file mode 100644
index 527e9974..00000000
--- a/parameters/reference/code128-subset.md
+++ /dev/null
@@ -1,55 +0,0 @@
----
-layout: default-layout
-title: Code128Subset - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for Code128Subset.
-keywords: Code128Subset, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/code128-subset.html
----
-
-
-# Code128Subset
-
-`Code128Subset` defines the subset of Code 128. It is defined as below:
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *string* | "A" "B" "C" | "" | `FormatSpecification` |
-
-
-
-## Setting Methods
-`Code128Subset` can be set via JSON template.
-
-### As JSON Parameter
-`Code128Subset` as a JSON parameter is a string value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| Code128Subset | "A", "B" or "C" as a string |
-
-
-**JSON Example**
-```
-{
- "Code128Subset": "A"
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [Configure parameters for a certain barcode format]({{ site.scenario_settings }}format-specification.html)
diff --git a/parameters/reference/colour-clustering-modes.md b/parameters/reference/colour-clustering-modes.md
deleted file mode 100644
index d0968866..00000000
--- a/parameters/reference/colour-clustering-modes.md
+++ /dev/null
@@ -1,145 +0,0 @@
----
-layout: default-layout
-title: ColourClusteringModes - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for ColourClusteringModes.
-keywords: ColourClusteringModes, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/colour-clustering-modes.html
----
-
-
-# ColourClusteringModes
-
-`ColourClusteringModes` controls the process of colour categorization. It consists of one or more modes, each mode representing a different way to implement the categorization.
-
-
-## Candidate Mode List
-- CCM_GENERAL_HSV
-- CCM_AUTO
-
-### CCM_GENERAL_HSV
-This mode clusters the colours using the general algorithm based on HSV (hue, saturation, value). This mode has the following arguments for further customization.
-
-- [Sensitivity](#sensitivity)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-
-### CCM_AUTO
-Lets the library choose a mode automatically. Not supported yet.
-
-
-
-## Setting Methods
-
-### As `PublicRuntimeSettings` Member
-`ColourClusteringModes` can be set dynamically during runtime as a member of `FurtherModes`, which is a member of `PublicRuntimeSettings` struct, it is an array with 8 `ColourClusteringMode` Enumeration items.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->colourClusteringModes[0] = CCM_GENERAL_HSV;
-reader->UpdateRuntimeSettings(pSettings);
-reader->SetModeArgument("ColourClusteringModes", 0, "Sensitivity", "1");
-delete pSettings;
-//...other codes
-```
-
-
-**Remarks**
-`GetModeArgument` and `SetModeArgument` need to be called for getting and setting [`Arguments`](#candidate-argument-list).
-
-
-**See Also**
-
-- `FurtherModes:` [C]({{ site.structs }}FurtherModes.html?src=c) \| [C++]({{ site.structs }}FurtherModes.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/FurtherModes.html) \| [Java]({{ site.java_api }}class/FurtherModes.html) \| [Java-Android]({{ site.android_api }}auxiliary-FurtherModes.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iFurtherModes.html)
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- `ColourClusteringMode:` [JavaScript]({{ site.js_enumerations }}EnumColourClusteringMode.html) \| [C]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=c#colourclusteringmode) \| [C++]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=cpp#colourclusteringmode) \| [.NET]({{ site.dotnet_enumerations }}parameter-mode-enums.html#colourclusteringmode) \| [Python]({{ site.python_enumerations }}parameter-mode-enums.html#colourclusteringmode) \| [Java]({{ site.java_enumerations }}parameter-mode-enums.html#colourclusteringmode) \| [Java-Android]({{ site.mobile_enumerations }}colour-clustering-mode.html?lang=android) \| [Objective-C & Swift]({{ site.mobile_enumerations }}colour-clustering-mode.html?lang=objc,swift)
-- `GetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#getmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_getmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#getmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#get_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument)
-- `SetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#setmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_setmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#setmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#set_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument)
-
-
-### As JSON Parameter
-`ColourClusteringModes` as a JSON parameter is a JSON Object array. Each JSON object is defined as below.
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| Mode | Any one in Candidate Mode List as string | (Required) Specifies a mode for colour categorization. |
-| Sensitivity | A number from value range of Sensitivity | (Optional) Sets the Argument [Sensitivity](#sensitivity). |
-| LibraryFileName | A string from value range of LibraryFileName | (Optional) Sets the Argument [LibraryFileName](#libraryfilename). |
-| LibraryParameters | A string from value range of LibraryParameters | (Optional) Sets the Argument [LibraryParameters](#libraryparameters). |
-
-
-
-**JSON Parameter Example**
-```
-{
- "ColourClusteringModes": [
- {
- "Mode": "CCM_GENERAL_HSV",
- "Sensitivity": 1
- },
- {
- "Mode": "CCM_GENERAL_HSV",
- "Sensitivity": 9
- }
- ]
-}
-```
-
-
-
-
-
-
-## Candidate Argument List
-- [Sensitivity](#sensitivity)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### Sensitivity
-Sets the sensitivity used for colour categorization. A bigger value means less colours will be clustered as the same colour.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [1, 9] | 5 | CCM_GENERAL_HSV |
-
-
-
-### LibraryFileName
-Sets the file name of the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing file name. | "" | All modes |
-
-
-**Remarks**
- The library must be in the same place with Dynamsoft Barcode Reader Library.
-
-
-### LibraryParameters
-Sets the parameters passed to the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | ----------- |
-| *string* | A string value representing parameters. | "" | All modes |
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
diff --git a/parameters/reference/colour-conversion-modes.md b/parameters/reference/colour-conversion-modes.md
deleted file mode 100644
index 65416544..00000000
--- a/parameters/reference/colour-conversion-modes.md
+++ /dev/null
@@ -1,175 +0,0 @@
----
-layout: default-layout
-title: ColourConversionModes - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for ColourConversionModes.
-keywords: ColourConversionModes, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/colour-conversion-modes.html
----
-
-
-# ColourConversionModes
-
-This parameter helps control the process of colour conversion, i.e., converting a colour image to a grayscale image. If you input a colour image, the library will convert it to the grayscale image first for further processes. By default, the conversion will base on the RGB channels with the default weights of three channels. This parameter allows you to specify the referred colour channel (RGB or HSV) and the weight of each channel during the colour conversion. Assume your image has a significant contrast of one colour channel between the barcode area and background, this parameter may help specify the appropriate settings for getting a higher quality grayscale image.
-
-It currently can consist of only a single mode, `CICM_GENERAL`.
-
-
-## Candidate Mode List
-- CICM_GENERAL
-
-### CICM_GENERAL
-Converts a colour image to a grayscale image using the general algorithm. This mode has the following arguments for further customizing.
-
-- [BlueChannelWeight](#bluechannelweight)
-- [GreenChannelWeight](#greenchannelweight)
-- [RedChannelWeight](#redchannelweight)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-
-
-## Setting Methods
-
-### As `PublicRuntimeSettings` Member
-`ColourConversionModes` can be set dynamically during runtime as a member of `FurtherModes`, which is a member of `PublicRuntimeSettings` struct, it is an array with 8 `ColourConversionMode` Enumeration items.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->colourConversionModes[0] = CICM_GENERAL;
-reader->UpdateRuntimeSettings(pSettings);
-reader->SetModeArgument("ColourConversionModes", 0, "BlueChannelWeight", "1000");
-delete pSettings;
-//...other codes
-```
-
-
-**Remarks**
-`GetModeArgument` and `SetModeArgument` need to be called for getting and setting [`Arguments`](#candidate-argument-list).
-
-
-**See Also**
-- `FurtherModes:` [C]({{ site.structs }}FurtherModes.html?src=c) \| [C++]({{ site.structs }}FurtherModes.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/FurtherModes.html) \| [Java]({{ site.java_api }}class/FurtherModes.html) \| [Java-Android]({{ site.android_api }}auxiliary-FurtherModes.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iFurtherModes.html)
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- `ColourConversionMode:` [JavaScript]({{ site.js_enumerations }}EnumColourConversionMode.html) \| [C]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=c#colourconversionmode) \| [C++]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=cpp#colourconversionmode) \| [.NET]({{ site.dotnet_enumerations }}parameter-mode-enums.html#colourconversionmode) \| [Python]({{ site.python_enumerations }}parameter-mode-enums.html#colourconversionmode) \| [Java]({{ site.java_enumerations }}parameter-mode-enums.html#colourconversionmode) \| [Java-Android]({{ site.mobile_enumerations }}colour-conversion-mode.html?lang=android) \| [Objective-C & Swift]({{ site.mobile_enumerations }}colour-conversion-mode.html?lang=objc,swift)
-- `GetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#getmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_getmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#getmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#get_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument)
-- `SetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#setmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_setmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#setmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#set_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument)
-
-
-### As JSON Parameter
-`ColourConversionModes` as a JSON parameter is a JSON Object array. Each JSON object is defined as below.
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| Mode | Any one in Candidate Mode List as string | (Required) Specifies a mode for colour convertion. |
-| BlueChannelWeight | A number from value range of BlueChannelWeight | (Optional) Sets the Argument [BlueChannelWeight](#bluechannelweight). |
-| GreenChannelWeight | A number from value range of GreenChannelWeight | (Optional) Sets the Argument [GreenChannelWeight](#greenchannelweight). |
-| RedChannelWeight | A number from value range of RedChannelWeight | (Optional) Sets the Argument [RedChannelWeight](#redchannelweight). |
-| LibraryFileName | A string from value range of LibraryFileName | (Optional) Sets the Argument [LibraryFileName](#libraryfilename). |
-| LibraryParameters | A string from value range of LibraryParameters | (Optional) Sets the Argument [LibraryParameters](#libraryparameters). |
-
-
-
-**JSON Parameter Example**
-```
-{
- "ColourConversionModes": [
- {
- "Mode": "CICM_GENERAL",
- "BlueChannelWeight": 1000,
- "GreenChannelWeight": 0,
- "RedChannelWeight": 0
- },
- {
- "Mode": "CICM_GENERAL",
- "BlueChannelWeight": 0,
- "GreenChannelWeight": 500,
- "RedChannelWeight": 500
- }
- ]
-}
-```
-
-
-
-## Candidate Argument List
-- [BlueChannelWeight](#bluechannelweight)
-- [GreenChannelWeight](#greenchannelweight)
-- [RedChannelWeight](#redchannelweight)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### BlueChannelWeight
-Sets the weight value of Blue Colour Channel used for converting a colour image to a grayscale image.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [-1, 1000] | -1 | CICM_GENERAL |
-
-**Remarks**
-- -1: The weight value will be set automatically by the SDK.
-- -1 will be used if the sum of BlueChannelWeight, GreenChannelWeight and RedChannelWeight is not 1000.
-
-### GreenChannelWeight
-Sets the weight value of Green Colour Channel used for converting a colour image to a grayscale image.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [-1, 1000] | -1 | CICM_GENERAL |
-
-**Remarks**
-- -1: The weight value will be set automatically by the SDK.
-- -1 will be used if the sum of BlueChannelWeight, GreenChannelWeight and RedChannelWeight is not 1000.
-
-
-### RedChannelWeight
-Sets the weight value of Red Colour Channel used for converting a colour image to a grayscale image.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [-1, 1000] | -1 | CICM_GENERAL |
-
-**Remarks**
-- -1: The weight value will be set automatically by the SDK.
-- -1 will be used if the sum of BlueChannelWeight, GreenChannelWeight and RedChannelWeight is not 1000.
-
-
-### LibraryFileName
-Sets the file name of the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing file name. | "" | All modes |
-
-
-**Remarks**
- The library must be in the same place with Dynamsoft Barcode Reader Library.
-
-
-### LibraryParameters
-Sets the parameters passed to the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | ----------- |
-| *string* | A string value representing parameters. | "" | All modes |
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to configure ColourConversionModes]({{ site.scenario_settings }}image-scale-and-colour-conversion.html#convert-colour-image-to-grayscale)
diff --git a/parameters/reference/deblur-level.md b/parameters/reference/deblur-level.md
deleted file mode 100644
index 2ab6400e..00000000
--- a/parameters/reference/deblur-level.md
+++ /dev/null
@@ -1,110 +0,0 @@
----
-layout: default-layout
-title: DeblurLevel - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for DeblurLevel.
-keywords: DeblurLevel, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/deblur-level.html
----
-
-
-# DeblurLevel
-
-`DeblurLevel` determines the efforts used to process the blurriness of the barcode. It is defined as below:
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *int* | [0, 9] | 9 | `ImageParameter`/`FormatSpecification` |
-
-
-**Remarks**
-If you have a blurry image, you can set this property to a larger value. The higher the value set, the more effort the library will spend to decode images, but it may also slow down the recognition process.
-DeblurLevel is now deprecated. It still works in the current version but could be removed in the near future. We recommend using [`DeblurModes`](deblur-modes.md#deblurmodes) instead. Migration mapping:
-
-- For Barcode Format PDF417
-
-| DeblurLevel | DeblurModes |
-| ----------- | ------------------- |
-| 0 | [DM_BASED_ON_LOC_BIN,DM_THRESHOLD_BINARIZATION] |
-| 1-3 | [DM_BASED_ON_LOC_BIN,DM_THRESHOLD_BINARIZATION,DM_DIRECT_BINARIZATION] |
-| 4-6 | [DM_BASED_ON_LOC_BIN,DM_THRESHOLD_BINARIZATION,DM_DIRECT_BINARIZATION,DM_SMOOTHING] |
-| 7-8 | [DM_BASED_ON_LOC_BIN,DM_THRESHOLD_BINARIZATION,DM_DIRECT_BINARIZATION,DM_SMOOTHING,DM_GRAY_EQUALIZATION] |
-| 9 | [DM_BASED_ON_LOC_BIN,DM_THRESHOLD_BINARIZATION,DM_DIRECT_BINARIZATION,DM_SMOOTHING,DM_GRAY_EQUALIZATION,DM_MORPHING,DM_DEEP_ANALYSIS] |
-
-- For Barcode Format OneD
-
-| DeblurLevel | DeblurModes |
-| ----------- | ------------------- |
-| 0 | [DM_BASED_ON_LOC_BIN,DM_THRESHOLD_BINARIZATION,DM_THRESHOLD_BINARIZATION] |
-| 1-3 | [DM_BASED_ON_LOC_BIN,DM_THRESHOLD_BINARIZATION,DM_THRESHOLD_BINARIZATION,DM_DIRECT_BINARIZATION] |
-| 4-6 | [DM_BASED_ON_LOC_BIN,DM_THRESHOLD_BINARIZATION,DM_THRESHOLD_BINARIZATION,DM_DIRECT_BINARIZATION,DM_SMOOTHING] |
-| 7-8 | [DM_BASED_ON_LOC_BIN,DM_THRESHOLD_BINARIZATION,DM_THRESHOLD_BINARIZATION,DM_DIRECT_BINARIZATION,DM_SMOOTHING,DM_GRAY_EQUALIZATION] |
-| 9 | [DM_BASED_ON_LOC_BIN,DM_THRESHOLD_BINARIZATION,DM_THRESHOLD_BINARIZATION,DM_DIRECT_BINARIZATION,DM_DEEP_ANALYSIS,DM_SMOOTHING,DM_GRAY_EQUALIZATION,DM_MORPHING] |
-
-- For other formats
-
-| DeblurLevel | DeblurModes |
-| ----------- | ------------------- |
-| 0 | [DM_BASED_ON_LOC_BIN,DM_THRESHOLD_BINARIZATION] |
-| 1-3 | [DM_BASED_ON_LOC_BIN,DM_THRESHOLD_BINARIZATION,DM_DIRECT_BINARIZATION] |
-| 4-6 | [DM_BASED_ON_LOC_BIN,DM_THRESHOLD_BINARIZATION,DM_DIRECT_BINARIZATION,DM_SMOOTHING] |
-| 7-8 | [DM_BASED_ON_LOC_BIN,DM_THRESHOLD_BINARIZATION,DM_DIRECT_BINARIZATION,DM_SMOOTHING,DM_GRAY_EQUALIZATION] |
-| 9 | [DM_BASED_ON_LOC_BIN,DM_THRESHOLD_BINARIZATION,DM_DIRECT_BINARIZATION,DM_DEEP_ANALYSIS,DM_SMOOTHING,DM_GRAY_EQUALIZATION,DM_MORPHING] |
-
-
-
-## Setting Methods
-`DeblurLevel` is supported to be set through `RuntimeSetting` or JSON template.
-
-### As `PublicRuntimeSettings` Member
-`DeblurLevel` can be set dynamically during runtime as a member of `PublicRuntimeSettings` struct.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->deblurLevel = 1;
-reader->UpdateRuntimeSettings(pSettings);
-delete pSettings;
-//...other codes
-```
-
-
-
-**See Also**
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-
-
-### As JSON Parameter
-`DeblurLevel` as a JSON parameter is a number value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| DeblurLevel | A number from [0, 9] |
-
-
-**JSON Example**
-```
-{
- "DeblurLevel": 0
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
diff --git a/parameters/reference/deblur-modes.md b/parameters/reference/deblur-modes.md
deleted file mode 100644
index 4ad71f38..00000000
--- a/parameters/reference/deblur-modes.md
+++ /dev/null
@@ -1,179 +0,0 @@
----
-layout: default-layout
-title: DeblurModes - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for DeblurModes.
-keywords: DeblurModes, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/deblur-modes.html
----
-
-
-# DeblurModes
-
-Sets the mode and priority for deblurring.
-
-It consists of one or more modes, each mode representing a different way to apply the deblur algorithm.
-
-
-## Candidate Mode List
-- DM_DIRECT_BINARIZATION
-- DM_THRESHOLD_BINARIZATION
-- DM_GRAY_EQUALIZATION
-- DM_SMOOTHING
-- DM_MORPHING
-- DM_DEEP_ANALYSIS
-- DM_SHARPENING
-- DM_BASED_ON_LOC_BIN
-- DM_SHARPENING_SMOOTHING
-
-### DM_DIRECT_BINARIZATION
-Performs deblur process using the binarization algorithm. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### DM_THRESHOLD_BINARIZATION
-Performs deblur process using the threshold binarization algorithm. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### DM_GRAY_EQUALIZATION
-Performs deblur process using the gray equalization algorithm. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### DM_SMOOTHING
-Performs deblur process using the smoothing algorithm. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### DM_MORPHING
-Performs deblur process using the morphing algorithm. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### DM_DEEP_ANALYSIS
-Performs deblur process using the deep analysis algorithm. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### DM_SHARPENING
-Performs deblur process using the sharpening algorithm. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### DM_BASED_ON_LOC_BIN
-Performs deblur process based on the binary image from the localization process. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### DM_SHARPENING_SMOOTHING
-Performs deblur process using the sharpening and smoothing algorithm. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-
-## Setting Methods
-
-### As `PublicRuntimeSettings` Member
-`DeblurModes` can be set dynamically during runtime as a member of `PublicRuntimeSettings` struct, it is an array with 10 `DeblurMode` Enumeration items.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->deblurModes[0] = DM_BASED_ON_LOC_BIN;
-reader->UpdateRuntimeSettings(pSettings);
-delete pSettings;
-//...other codes
-```
-
-
-**Remarks**
-`GetModeArgument` and `SetModeArgument` need to be called for getting and setting [`Arguments`](#candidate-argument-list).
-
-
-**See Also**
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- `DeblurMode:` [JavaScript]({{ site.js_enumerations }}EnumDeblurMode.html) \| [C]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=c#deblurmode) \| [C++]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=cpp#deblurmode) \| [.NET]({{ site.dotnet_enumerations }}parameter-mode-enums.html#deblurmode) \| [Python]({{ site.python_enumerations }}parameter-mode-enums.html#deblurmode) \| [Java]({{ site.java_enumerations }}parameter-mode-enums.html#deblurmode) \| [Java-Android]({{ site.mobile_enumerations }}deblur-mode.html?lang=android) \| [Objective-C & Swift]({{ site.mobile_enumerations }}deblur-mode.html?lang=objc,swift)
-- `GetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#getmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_getmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#getmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#get_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument)
-- `SetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#setmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_setmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#setmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#set_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument)
-
-
-### As JSON Parameter
-`DeblurModes` as a JSON parameter is a JSON Object array. Each JSON object is defined as below.
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| Mode | Any one in Candidate Mode List as string | (Required) Specifies a mode for deblurring. |
-| LibraryFileName | A string from value range of LibraryFileName | (Optional) Sets the Argument [LibraryFileName](#libraryfilename). |
-| LibraryParameters | A string from value range of LibraryParameters | (Optional) Sets the Argument [LibraryParameters](#libraryparameters). |
-
-
-
-**JSON Parameter Example**
-```
-{
- "DeblurModes": [
- {
- "Mode": "DM_BASED_ON_LOC_BIN"
- },
- {
- "Mode": "DM_THRESHOLD_BINARIZATION"
- }
- ]
-}
-```
-
-
-
-## Candidate Argument List
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-
-
-### LibraryFileName
-Sets the file name of the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing file name. | "" | All modes |
-
-
-**Remarks**
- The library must be in the same place with Dynamsoft Barcode Reader Library.
-
-
-### LibraryParameters
-Sets the parameters passed to the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | ----------- |
-| *string* | A string value representing parameters. | "" | All modes |
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
diff --git a/parameters/reference/deformation-resisting-modes-v8.9.3.md b/parameters/reference/deformation-resisting-modes-v8.9.3.md
deleted file mode 100644
index 58e7d573..00000000
--- a/parameters/reference/deformation-resisting-modes-v8.9.3.md
+++ /dev/null
@@ -1,140 +0,0 @@
----
-layout: default-layout
-title: DeformationResistingModes - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for DeformationResistingModes.
-keywords: DeformationResistingModes, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
----
-
-
-# DeformationResistingModes
-
-`DeformationResistingModes` is a parameter to control how to handle distorted and deformed barcodes. It consists of one or more modes, each mode represents a way to implement the deformation resisting.
-
-
-## Candidate Mode List
-- DRM_GENERAL
-- DRM_AUTO
-
-### DRM_GENERAL
-Resists deformation using the general algorithm. This mode has the following arguments for further customizing.
-
-- [Level](#level)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-
-### DRM_AUTO
-Lets the library choose a mode automatically. Not supported yet.
-
-
-
-## Setting Methods
-
-### As `PublicRuntimeSettings` Member
-`DeformationResistingModes` can be set dynamically during runtime as a member of `FurtherModes`, which is a member of `PublicRuntimeSettings` struct, it is an array with 8 [`DeformationResistingMode`]({{ site.enumerations }}parameter-mode-enums.html#deformationresistingmode) Enumeration items.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->deformationResistingModes[0] = DRM_GENERAL;
-reader->UpdateRuntimeSettings(pSettings);
-reader->SetModeArgument("DeformationResistingModes", 0, "Level", "1");
-delete pSettings;
-//...other codes
-```
-
-
-**Remarks**
-`GetModeArgument` and `SetModeArgument` need to be called for getting and setting [`Arguments`](#candidate-argument-list).
-
-
-**See Also**
-- `FurtherModes:` [C]({{ site.structs }}FurtherModes.html?src=c) \| [C++]({{ site.structs }}FurtherModes.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/FurtherModes.html) \| [Java]({{ site.java_api }}class/FurtherModes.html) \| [Java-Android]({{ site.android_api }}auxiliary-FurtherModes.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iFurtherModes.html)
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- [`DeformationResistingMode` Enumeration]({{ site.enumerations }}parameter-mode-enums.html#deformationresistingmode)
-- `GetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#getmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_getmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#getmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#get_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument)
-- `SetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#setmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_setmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#setmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#set_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument)
-
-
-### As JSON Parameter
-`DeformationResistingModes` as a JSON parameter is a JSON Object array. Each JSON object is defined as below.
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| Mode | Any one in Candidate Mode List as string | (Required) Specifies a mode for deformation resisting. |
-| Level | A number from value range of Level | (Optional) Sets the Argument [Level](#level). |
-| LibraryFileName | A string from value range of LibraryFileName | (Optional) Sets the Argument [LibraryFileName](#libraryfilename). |
-| LibraryParameters | A string from value range of LibraryParameters | (Optional) Sets the Argument [LibraryParameters](#libraryparameters). |
-
-
-
-**JSON Parameter Example**
-```
-{
- "DeformationResistingModes": [
- {
- "Mode": "DRM_GENERAL",
- "Level": 1
- },
- {
- "Mode": "DRM_GENERAL",
- "Level": 9
- }
- ]
-}
-```
-
-
-
-## Candidate Argument List
-- [Level](#level)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### Level
-Sets the effort level used for deformation resisting. Not supported yet.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [1, 9] | 5 | DRM_GENERAL |
-
-**Performance Adaptability**
-A larger value may improve the Read Rate but slowdown the Speed.
-
-
-### LibraryFileName
-Sets the file name of the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing file name. | "" | All modes |
-
-
-**Remarks**
-The library must be in the same place with Dynamsoft Barcode Reader Library.
-
-
-### LibraryParameters
-Sets the parameters passed to the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | ----------- |
-| *string* | A string value representing parameters. | "" | All modes |
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to deal with deformed barcodes]({{ site.scenario_settings }}resist-deformation.html)
diff --git a/parameters/reference/deformation-resisting-modes-v9.4.0.md b/parameters/reference/deformation-resisting-modes-v9.4.0.md
deleted file mode 100644
index ff9b0789..00000000
--- a/parameters/reference/deformation-resisting-modes-v9.4.0.md
+++ /dev/null
@@ -1,161 +0,0 @@
----
-layout: default-layout
-title: DeformationResistingModes - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for DeformationResistingModes.
-keywords: DeformationResistingModes, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/deformation-resisting-modes-v9.4.0.html
----
-
-
-# DeformationResistingModes
-
-`DeformationResistingModes` describes how to handle distorted and deformed barcodes. It consists of one or more modes, each mode representing a different way to implement the deformation resistance algorithm.
-
-
-## Candidate Mode List
-
-- DRM_GENERAL
-- DRM_BROAD_WARP
-- DRM_LOCAL_REFERENCE
-- DRM_DEWRINKLE
-- DRM_AUTO
-
-### DRM_GENERAL
-
-Resists deformation using the general algorithm. This mode has the following arguments for further customizing.
-
-- [Level](#level)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-
-### DRM_BROAD_WARP
-
-Resists deformation when the barcode is warped gently.
-
-### DRM_LOCAL_REFERENCE
-
-Resists deformation for barcodes with minor deformation in local modules.
-
-### DRM_DEWRINKLE
-
-Resists deformation for barcodes on a wrinkled surface.
-
-### DRM_AUTO
-
-Lets the library choose a mode automatically. Not supported yet.
-
-
-
-## Setting Methods
-
-### As `PublicRuntimeSettings` Member
-`DeformationResistingModes` can be set dynamically during runtime as a member of `FurtherModes`, which is a member of `PublicRuntimeSettings` struct, it is an array with 8 [`DeformationResistingMode`]({{ site.enumerations }}parameter-mode-enums.html#deformationresistingmode) Enumeration items.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->deformationResistingModes[0] = DRM_GENERAL;
-reader->UpdateRuntimeSettings(pSettings);
-reader->SetModeArgument("DeformationResistingModes", 0, "Level", "1");
-delete pSettings;
-//...other codes
-```
-
-
-**Remarks**
-`GetModeArgument` and `SetModeArgument` need to be called for getting and setting [`Arguments`](#candidate-argument-list).
-
-
-**See Also**
-- `FurtherModes:` [C]({{ site.structs }}FurtherModes.html?src=c) \| [C++]({{ site.structs }}FurtherModes.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/FurtherModes.html) \| [Java]({{ site.java_api }}class/FurtherModes.html) \| [Java-Android]({{ site.android_api }}auxiliary-FurtherModes.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iFurtherModes.html)
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- [`DeformationResistingMode` Enumeration]({{ site.enumerations }}parameter-mode-enums.html#deformationresistingmode)
-- `GetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#getmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_getmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#getmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#get_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument)
-- `SetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#setmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_setmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#setmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#set_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument)
-
-
-### As JSON Parameter
-`DeformationResistingModes` as a JSON parameter is a JSON Object array. Each JSON object is defined as below.
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| Mode | Any one in Candidate Mode List as string | (Required) Specifies a mode for deformation resisting. |
-| Level | A number from value range of Level | (Optional) Sets the Argument [Level](#level). |
-| LibraryFileName | A string from value range of LibraryFileName | (Optional) Sets the Argument [LibraryFileName](#libraryfilename). |
-| LibraryParameters | A string from value range of LibraryParameters | (Optional) Sets the Argument [LibraryParameters](#libraryparameters). |
-
-
-
-**JSON Parameter Example**
-```
-{
- "DeformationResistingModes": [
- {
- "Mode": "DRM_GENERAL",
- "Level": 1
- },
- {
- "Mode": "DRM_DEWRINKLE"
- }
- ]
-}
-```
-
-
-
-## Candidate Argument List
-- [Level](#level)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### Level
-Sets the effort level used for deformation resisting. Not supported yet.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [1, 9] | 5 | DRM_GENERAL |
-
-**Performance Adaptability**
-A larger value may improve the Read Rate but slowdown the Speed.
-
-
-### LibraryFileName
-Sets the file name of the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing file name. | "" | All modes |
-
-
-**Remarks**
-The library must be in the same place with Dynamsoft Barcode Reader Library.
-
-
-### LibraryParameters
-Sets the parameters passed to the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | ----------- |
-| *string* | A string value representing parameters. | "" | All modes |
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to deal with deformed barcodes]({{ site.scenario_settings }}resist-deformation.html)
diff --git a/parameters/reference/deformation-resisting-modes.md b/parameters/reference/deformation-resisting-modes.md
deleted file mode 100644
index a785164b..00000000
--- a/parameters/reference/deformation-resisting-modes.md
+++ /dev/null
@@ -1,211 +0,0 @@
----
-layout: default-layout
-title: DeformationResistingModes - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for DeformationResistingModes.
-keywords: DeformationResistingModes, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/deformation-resisting-modes.html
----
-
-
-# DeformationResistingModes
-
-`DeformationResistingModes` describes how to handle distorted and deformed barcodes. It consists of one or more modes, each mode representing a different way to implement the deformation resistance algorithm.
-
-## Candidate Mode List
-
-- DRM_GENERAL
-- DRM_BROAD_WARP
-- DRM_LOCAL_REFERENCE
-- DRM_DEWRINKLE
-- DRM_AUTO
-
-### DRM_GENERAL
-
-Resists deformation using the general algorithm. This mode has the following arguments for further customizing.
-
-- [Level](#level)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### DRM_BROAD_WARP
-
-Resists deformation when the barcode is warped gently. This mode has the following arguments for further customizing.
-
-- [BinarizationMode](#binarizationmode)
-- [GrayscaleEnhancementMode](#grayscaleenhancementmode)
-
-### DRM_LOCAL_REFERENCE
-
-Resists deformation for barcodes with minor deformation in local modules. This mode has the following arguments for further customizing.
-
-- [BinarizationMode](#binarizationmode)
-- [GrayscaleEnhancementMode](#grayscaleenhancementmode)
-
-### DRM_DEWRINKLE
-
-Resists deformation for barcodes on a wrinkled surface. This mode has the following arguments for further customizing.
-
-- [BinarizationMode](#binarizationmode)
-- [GrayscaleEnhancementMode](#grayscaleenhancementmode)
-
-### DRM_AUTO
-
-Lets the library choose a mode automatically.
-
-## Setting Methods
-
-### As `PublicRuntimeSettings` Member
-
-`DeformationResistingModes` can be set dynamically during runtime as a member of `FurtherModes`, which is a member of `PublicRuntimeSettings` struct, it is an array with 8 `DeformationResistingMode` Enumeration items.
-
-**Code Snippet in C++**
-
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->deformationResistingModes[0] = DRM_GENERAL;
-reader->UpdateRuntimeSettings(pSettings);
-reader->SetModeArgument("DeformationResistingModes", 0, "Level", "1");
-delete pSettings;
-//...other codes
-```
-
-**Remarks**
-`GetModeArgument` and `SetModeArgument` need to be called for getting and setting [`Arguments`](#candidate-argument-list).
-
-**See Also**
-
-- `FurtherModes:` [C]({{ site.structs }}FurtherModes.html?src=c) \| [C++]({{ site.structs }}FurtherModes.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/FurtherModes.html) \| [Java]({{ site.java_api }}class/FurtherModes.html) \| [Java-Android]({{ site.android_api }}auxiliary-FurtherModes.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iFurtherModes.html)
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- `DeformationResistingMode:` [JavaScript]({{ site.js_enumerations }}EnumDeformationResistingMode.html) \| [C]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=c#deformationresistingmode) \| [C++]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=cpp#deformationresistingmode) \| [.NET]({{ site.dotnet_enumerations }}parameter-mode-enums.html#deformationresistingmode) \| [Python]({{ site.python_enumerations }}parameter-mode-enums.html#deformationresistingmode) \| [Java]({{ site.java_enumerations }}parameter-mode-enums.html#deformationresistingmode) \| [Java-Android]({{ site.mobile_enumerations }}deformation-resisting-mode.html?lang=android) \| [Objective-C & Swift]({{ site.mobile_enumerations }}deformation-resisting-mode.html?lang=objc,swift)
-- `GetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#getmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_getmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#getmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#get_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument)
-- `SetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#setmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_setmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#setmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#set_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument)
-
-### As JSON Parameter
-
-`DeformationResistingModes` as a JSON parameter is a JSON Object array. Each JSON object is defined as below.
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| Mode | Any one in Candidate Mode List as string | (Required) Specifies a mode for deformation resisting. |
-| Level | A number from value range of Level | (Optional) Sets the Argument [Level](#level). |
-| GrayscaleEnhancementMode | A JSON object defined as GrayscaleEnhancementMode | (Optional) Sets the Argument [GrayscaleEnhancementMode](#grayscaleenhancementmode). |
-| BinarizationMode | A JSON object defined as BinarizationMode | (Optional) Sets the Argument [BinarizationMode](#binarizationmode). |
-| LibraryFileName | A string from value range of LibraryFileName | (Optional) Sets the Argument [LibraryFileName](#libraryfilename). |
-| LibraryParameters | A string from value range of LibraryParameters | (Optional) Sets the Argument [LibraryParameters](#libraryparameters). |
-
-**JSON Parameter Example**
-
-```json
-{
- "DeformationResistingModes": [
- {
- "Mode": "DRM_GENERAL",
- "Level": 1
- },
- {
- "Mode": "DRM_DEWRINKLE",
- "GrayscaleEnhancementMode":{
- "Mode": "GEM_SHARPEN_SMOOTH",
- "SmoothBlockSizeX": 3,
- "SmoothBlockSizeY": 3,
- "SharpenBlockSizeX": 3,
- "SharpenBlockSizeY": 3
- },
- "BinarizationMode":{
- "Mode": "BM_LOCAL_BLOCK",
- "BlockSizeX": 3,
- "BlockSizeY": 3
- }
- }
- ]
-}
-```
-
-
-## Candidate Argument List
-
-- [BinarizationMode](#binarizationmode)
-- [GrayscaleEnhancementMode](#grayscaleenhancementmode)
-- [Level](#level)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### BinarizationMode
-
-Sets the binarization process used for deformation resisting. It is a JSON object defined as below.
-
-| Key Name | Value Type | Value Range | Default Value | Description |
-| -------- | ---------- | ----------- | ------------- |------------- |
-| Mode | *string* | `BM_LOCAL_BLOCK` `BM_THRESHOLD` | `BM_LOCAL_BLOCK` | (Required) Sets a binarization mode. |
-| BlockSizeX | *int* | [0, 1000] | 0 | (Optional) Sets the horizontal block size for the binarization process. Valid when mode is `BM_LOCAL_BLOCK`. 0: The value will be set automatically by the SDK. |
-| BlockSizeY | *int* | [0, 1000] | 0 | (Optional) Sets the vertical block size for the binarization process. Valid when mode is `BM_LOCAL_BLOCK`. 0: The value will be set automatically by the SDK. |
-| EnableFillBinaryVacancy | *int* | [0, 1] | 1 | (Optional) Sets whether to enable binary vacancy filling. Valid when mode is `BM_LOCAL_BLOCK`. 0: disable 1: enable |
-| ThresholdCompensation | *int* | [-255, 255] or -10000 | 10 | (Optional) Sets the constant subtracted from the mean or weighted mean used for calculating the threshold. Valid when mode is `BM_LOCAL_BLOCK`. -10000: The library may try multiple values for current process. |
-| BinarizationThreshold | *int* | [-1, 255] | -1 | (Optional) Sets the binarization threshold. Valid when mode is `BM_THRESHOLD`. -1: The value will be set automatically by the SDK. |
-| MorphOperation | *string* | `Erode` `Dilate` `Open` `Close` | `Close` | (Optional) Sets the morph operation for the morphology process. Valid when mode is `BM_LOCAL_BLOCK` or `BM_THRESHOLD`. |
-| MorphShape | *string* | `Rectangle` `Cross` `Ellipse` | `Optional` | (Optional) Sets the morph shape for the morphology process. Valid when mode is `BM_LOCAL_BLOCK` or `BM_THRESHOLD`. |
-| MorphOperationKernelSizeX | *int* | [-1, 1000] | -1 | (Optional) Sets the horizontal kernel size for the morphology process. Valid when mode is `BM_LOCAL_BLOCK` or `BM_THRESHOLD`. - 0: The value will be set automatically by the SDK. -1: Skip the morph operation. |
-| MorphOperationKernelSizeY | *int* | [-1, 1000] | -1 | (Optional) Sets the vertical kernel size for the morphology process. Valid when mode is `BM_LOCAL_BLOCK` or `BM_THRESHOLD`. - 0: The value will be set automatically by the SDK. -1: Skip the morph operation. |
-
-### GrayscaleEnhancementMode
-
-Sets the process used to enhance the quality of the grayscale image for deformation resisting. It is a JSON object defined as below.
-
-| Key Name | Value Type | Value Range | Default Value | Description |
-| -------- | ---------- | ----------- | ------------- |------------- |
-| Mode | *string* | `GEM_GENERAL` `GEM_GRAY_EQUALIZE` `GEM_GRAY_SMOOTH` `GEM_SHARPEN_SMOOTH` | `GEM_GENERAL` | (Required) Sets a grayscale enhancement mode. |
-| Sensitivity | *int* | [1, 9] | 5 | (Optional) Sets the sensitivity to perform the equalization process. Valid when mode is `GEM_GRAY_EQUALIZE`. A larger value means a higher possibility that gray equalization will be activated. |
-| SmoothBlockSizeX | *int* | [3, 1000] | 3 | (Optional) Sets the horizontal block size (neighborhood pixel counts) for the smoothing process. Valid when mode is `GEM_GRAY_SMOOTH` or `GEM_SHARPEN_SMOOTH`. |
-| SmoothBlockSizeY | *int* | [3, 1000] | 3 | (Optional) Sets the vertical block size (neighborhood pixel counts) for the smoothing process. Valid when mode is `GEM_GRAY_SMOOTH` or `GEM_SHARPEN_SMOOTH`. |
-| SharpenBlockSizeX | *int* | [3, 1000] | 3 | (Optional) Sets the horizontal block size (neighborhood pixel counts) for the sharpening process. Valid when mode is `GEM_SHARPEN_SMOOTH`. |
-| SharpenBlockSizeY | *int* | [3, 1000] | 3 | (Optional) Sets the vertical block size (neighborhood pixel counts) for the sharpening process. Valid when mode is `GEM_SHARPEN_SMOOTH`. |
-
-### Level
-
-Sets the effort level used for deformation resisting. Not supported yet.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [1, 9] | 5 | DRM_GENERAL |
-
-**Performance Adaptability**
-A larger value may improve the Read Rate but slowdown the Speed.
-
-### LibraryFileName
-
-Sets the file name of the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing file name. | "" | All modes |
-
-**Remarks**
-The library must be in the same place with Dynamsoft Barcode Reader Library.
-
-### LibraryParameters
-
-Sets the parameters passed to the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | ----------- |
-| *string* | A string value representing parameters. | "" | All modes |
-
-## Related Articles
-
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to deal with deformed barcodes]({{ site.scenario_settings }}resist-deformation.html)
diff --git a/parameters/reference/dpm-code-reading-modes.md b/parameters/reference/dpm-code-reading-modes.md
deleted file mode 100644
index c3efeb5d..00000000
--- a/parameters/reference/dpm-code-reading-modes.md
+++ /dev/null
@@ -1,125 +0,0 @@
----
-layout: default-layout
-title: DPMCodeReadingModes - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for DPMCodeReadingModes.
-keywords: DPMCodeReadingModes, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/dpm-code-reading-modes.html
----
-
-
-# DPMCodeReadingModes
-
-`DPMCodeReadingModes` determines how to read direct part mark (DPM) barcodes. It currently can consist of two modes, with the main mode being `DPMCRM_GENERAL`.
-
-
-## Candidate Mode List
-- DPMCRM_GENERAL
-- DPMCRM_AUTO
-
-### DPMCRM_GENERAL
-Reads DPM codes using the general algorithm. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-
-### DPMCRM_AUTO
-Lets the library choose a mode automatically. Not supported yet.
-
-
-
-## Setting Methods
-
-### As `PublicRuntimeSettings` Member
-`DPMCodeReadingModes` can be set dynamically during runtime as a member of `FurtherModes`, which is a member of `PublicRuntimeSettings` struct, it is an array with 8 `DPMCodeReadingMode` Enumeration items.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->dpmCodeReadingModes[0] = DPMCRM_GENERAL;
-reader->UpdateRuntimeSettings(pSettings);
-delete pSettings;
-//...other codes
-```
-
-
-**Remarks**
-`GetModeArgument` and `SetModeArgument` need to be called for getting and setting [`Arguments`](#candidate-argument-list).
-
-
-**See Also**
-- `FurtherModes:` [C]({{ site.structs }}FurtherModes.html?src=c) \| [C++]({{ site.structs }}FurtherModes.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/FurtherModes.html) \| [Java]({{ site.java_api }}class/FurtherModes.html) \| [Java-Android]({{ site.android_api }}auxiliary-FurtherModes.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iFurtherModes.html)
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- `DPMCodeReadingMode:` [JavaScript]({{ site.js_enumerations }}EnumDPMCodeReadingMode.html) \| [C]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=c#dpmcodereadingmode) \| [C++]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=cpp#dpmcodereadingmode) \| [.NET]({{ site.dotnet_enumerations }}parameter-mode-enums.html#dpmcodereadingmode) \| [Python]({{ site.python_enumerations }}parameter-mode-enums.html#dpmcodereadingmode) \| [Java]({{ site.java_enumerations }}parameter-mode-enums.html#dpmcodereadingmode) \| [Java-Android]({{ site.mobile_enumerations }}dpm-code-reading-mode.html?lang=android) \| [Objective-C & Swift]({{ site.mobile_enumerations }}dpm-code-reading-mode.html?lang=objc,swift)
-- `GetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#getmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_getmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#getmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#get_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument)
-- `SetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#setmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_setmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#setmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#set_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument)
-
-
-### As JSON Parameter
-`DPMCodeReadingModes` as a JSON parameter is a JSON Object array. Each JSON object is defined as below.
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| Mode | Any one in Candidate Mode List as string | (Required) Specifies a mode to read DPM barcode. |
-| LibraryFileName | A string from value range of LibraryFileName | (Optional) Sets the Argument [LibraryFileName](#libraryfilename). |
-| LibraryParameters | A string from value range of LibraryParameters | (Optional) Sets the Argument [LibraryParameters](#libraryparameters). |
-
-
-
-**JSON Parameter Example**
-```
-{
- "DPMCodeReadingModes": [
- {
- "Mode": "DPMCRM_GENERAL"
- }
- ]
-}
-```
-
-
-
-## Candidate Argument List
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-
-### LibraryFileName
-Sets the file name of the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing file name. | "" | All modes |
-
-
-**Remarks**
- The library must be in the same place with Dynamsoft Barcode Reader Library.
-
-
-### LibraryParameters
-Sets the parameters passed to the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | ----------- |
-| *string* | A string value representing parameters. | "" | All modes |
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to read DPM barcodes]({{ site.scenario_settings }}dpm-decoding.html)
diff --git a/parameters/reference/enable-datamatrix-ecc000-140.md b/parameters/reference/enable-datamatrix-ecc000-140.md
deleted file mode 100644
index 5a83968c..00000000
--- a/parameters/reference/enable-datamatrix-ecc000-140.md
+++ /dev/null
@@ -1,42 +0,0 @@
----
-layout: default-layout
-title: EnableDataMatrixECC000-140 - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for EnableDataMatrixECC000-140.
-keywords: EnableDataMatrixECC000-140, parameter reference, parameter
-permalink: /parameters/reference/enable-datamatrix-ecc000-140.html
----
-
-
-# EnableDataMatrixECC000-140
-
-`EnableDataMatrixECC000-140` determines whether to decode DataMatrix ECC000-140 barcodes. It is defined as below:
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *int* | [0, 1] | 0 | `FormatSpecification` |
-
-**Remarks**
-
-- 0: Do not decode DataMatrix ECC000-140 barcodes.
-- 1: Decode DataMatrix ECC000-140 barcodes.
-- It is valid only for DataMatrix.
-
-## Setting Methods
-
-`EnableDataMatrixECC000-140` can be set via JSON template.
-
-### As JSON Parameter
-
-`EnableDataMatrixECC000-140` as a JSON parameter is an int value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| EnableDataMatrixECC000-140 | 0 or 1 |
-
-**JSON Example**
-
-```json
-{
- "EnableDataMatrixECC000-140": 1
-}
-```
diff --git a/parameters/reference/enable-qrcode-model1.md b/parameters/reference/enable-qrcode-model1.md
deleted file mode 100644
index 6287ea18..00000000
--- a/parameters/reference/enable-qrcode-model1.md
+++ /dev/null
@@ -1,42 +0,0 @@
----
-layout: default-layout
-title: EnableQRCodeModel1 - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for EnableQRCodeModel1.
-keywords: EnableQRCodeModel1, parameter reference, parameter
-permalink: /parameters/reference/enable-qrcode-model1.html
----
-
-
-# EnableQRCodeModel1
-
-`EnableQRCodeModel1` determines whether to decode QRCode model 1 barcodes. It is defined as below:
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *int* | [0, 1] | 0 | `FormatSpecification` |
-
-**Remarks**
-
-- 0: Do not decode QRCode model 1 barcodes.
-- 1: Decode QRCode model 1 barcodes.
-- It is valid only for QRCode.
-
-## Setting Methods
-
-`EnableQRCodeModel1` can be set via JSON template.
-
-### As JSON Parameter
-
-`EnableQRCodeModel1` as a JSON parameter is an int value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| EnableQRCodeModel1 | 0 or 1 |
-
-**JSON Example**
-
-```json
-{
- "EnableQRCodeModel1": 1
-}
-```
diff --git a/parameters/reference/expected-barcodes-count.md b/parameters/reference/expected-barcodes-count.md
deleted file mode 100644
index 12f7e786..00000000
--- a/parameters/reference/expected-barcodes-count.md
+++ /dev/null
@@ -1,82 +0,0 @@
----
-layout: default-layout
-title: ExpectedBarcodesCount - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for ExpectedBarcodesCount.
-keywords: ExpectedBarcodesCount, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/expected-barcodes-count.html
----
-
-
-# ExpectedBarcodesCount
-
-`ExpectedBarcodesCount` determines the number of barcodes expected to be detected. It is defined as below:
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *int* | [0, 0x7fffffff] | 0 | `ImageParameter`/`RegionDefinition` |
-
-
-**Remarks**
-- 0: detects at least one barcode.
-- N ( N > 0 ): detects N barcodes.
-- Dynamsoft Barcode Reader works as a loop trying different parameters to detect barcodes as many as possible. If ExpectedBarcodesCount is 0, the loop stops after a loop round finishes and detects at least one barcode. If ExpectedBarcodesCount is N, the loop stops once N barcodes are detected.
-- ExpectedBarcodesCount applies to each page when decoding a multi-page file.
-
-
-
-## Setting Methods
-`ExpectedBarcodesCount` is supported to be set through `RuntimeSetting` or JSON template.
-
-### As `PublicRuntimeSettings` Member
-`ExpectedBarcodesCount` can be set dynamically during runtime as a member of `PublicRuntimeSettings` struct.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->expectedBarcodesCount = 1;
-reader->UpdateRuntimeSettings(pSettings);
-delete pSettings;
-//...other codes
-```
-
-
-
-**See Also**
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-
-
-### As JSON Parameter
-`ExpectedBarcodesCount` as a JSON parameter is a number value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| ExpectedBarcodesCount | A number from [0, 0x7fffffff] |
-
-
-**JSON Example**
-```
-{
- "ExpectedBarcodesCount": 0
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
diff --git a/parameters/reference/find-uneven-module-barcode.md b/parameters/reference/find-uneven-module-barcode.md
deleted file mode 100644
index c66310e5..00000000
--- a/parameters/reference/find-uneven-module-barcode.md
+++ /dev/null
@@ -1,60 +0,0 @@
----
-layout: default-layout
-title: FindUnevenModuleBarcode - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for FindUnevenModuleBarcode.
-keywords: FindUnevenModuleBarcode, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/find-uneven-module-barcode.html
----
-
-
-# FindUnevenModuleBarcode
-
-`FindUnevenModuleBarcode` defines whether to find barcodes with uneven barcode modules. It is defined as below:
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *int* | [0, 1] | 1 | `FormatSpecification` |
-
-
-**Remarks**
-- 0: do not find barcodes with uneven barcode modules.
-- 1: find barcodes with uneven barcode modules.
-
-
-
-## Setting Methods
-`FindUnevenModuleBarcode` can be set via JSON template.
-
-### As JSON Parameter
-`FindUnevenModuleBarcode` as a JSON parameter is a number value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| FindUnevenModuleBarcode | A number from [0, 1] |
-
-
-**JSON Example**
-```
-{
- "FindUnevenModuleBarcode": 1
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [Configure parameters for a certain barcode format]({{ site.scenario_settings }}format-specification.html)
diff --git a/parameters/reference/format-specification/index-v7.6.0.md b/parameters/reference/format-specification/index-v7.6.0.md
deleted file mode 100644
index 1a801ac5..00000000
--- a/parameters/reference/format-specification/index-v7.6.0.md
+++ /dev/null
@@ -1,84 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Parameter Reference - FormatSpecification Object
-description: This page shows Dynamsoft Barcode Reader Parameter Reference - FormatSpecification Object.
-keywords: parameter reference, parameters, FormatSpecification
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-permalink: /parameters/reference/format-specification/index-v7.6.0.html
----
-
-
-# FormatSpecification Object Parameters
-
-## Content Organization Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`FormatSpecification.Name`](#name) | The name of the FormatSpecification object. |
-
-### Name
-The name of the FormatSpecification object.
-
-**Remarks**
-It must be a unique name.
-
-**JSON Definition**
-
-| Parent Object | Key Name | Key Value Type | Default Value |
-| ------------- | -------- | -------------- | ------------- |
-| FormatSpecification | Name | *string* | It must be a mandatory setting value. |
-
-**JSON Example**
-```
-{
- "Name":"FormatSpecification1"
-}
-```
-
-## Format Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`FormatSpecification.AllModuleDeviation`](../all-module-deviation.md) | Set the module size deviation from the standard barcode module size. |
- | [`FormatSpecification.AustralianPostEncodingTable`](../australian-post-encoding-table.md) | Set the encoding table used to code the Customer Information Field of Australian Post Customer Barcode. |
- | [`FormatSpecification.BarcodeAngleRangeArray`](../barcode-angle-range-array.md) | Sets the range of angles (in degrees) for barcodes search. |
- | [`FormatSpecification.BarcodeBytesLengthRangeArray`](../barcode-bytes-length-range-array.md) | Sets the range of barcode bytes length for barcodes search. |
- | [`FormatSpecification.BarcodeBytesRegExPattern`](../barcode-bytes-regex-pattern.md) | Specifies the regular express pattern of barcode byte characters. |
- | [`FormatSpecification.BarcodeFormatIds`](../barcode-format-ids.md) | Sets which barcode format the current FormatSpecification configuration is applied to. |
- | [`FormatSpecification.BarcodeFormatIds_2`](../barcode-format-ids-2.md) | Sets which barcode format in BarcodeFormat group 2 the current FormatSpecification configuration is applied to. |
- | [`FormatSpecification.BarcodeHeightRangeArray`](../barcode-height-range-array.md) | Sets the range of barcode heights (in pixels) to for barcodes search. |
- | [`FormatSpecification.BarcodeTextLengthRangeArray`](../barcode-text-length-range-array.md) | Sets the range of barcode text length for barcodes search. |
- | [`FormatSpecification.BarcodeTextRegExPattern`](../barcode-text-regex-pattern.md) | Specifies the regular express pattern of barcode characters. |
- | [`FormatSpecification.BarcodeWidthRangeArray`](../barcode-width-range-array.md) | Sets the range of barcode widths (in pixels) for barcodes search.(Hint). |
- | [`FormatSpecification.Code128Subset`](../code128-subset.md) | Set the code 128 subset. |
- | [`FormatSpecification.EnableDataMatrixECC000-140`](../enable-datamatrix-ecc000-140.md) | Specifies whether to decode DataMatrix ECC000-140 barcodes. |
- | [`FormatSpecification.EnableQRCodeModel1`](../enable-qrcode-model1.md) | Specifies whether to decode QRCode model 1 barcodes. |
- | [`FormatSpecification.FindUnevenModuleBarcode`](../find-uneven-module-barcode.md) | Specifies whether to find barcodes with uneven barcode modules. Not support yet. |
- | [`FormatSpecification.HeadModuleRatio`](../head-module-ratio.md) | Set the module count and module size ratio of the barcode head part. |
- | [`FormatSpecification.MinQuietZoneWidth`](../min-quiet-zone-width.md) | The minimum width of the barcode quiet zone. |
- | [`FormatSpecification.MirrorMode`](../mirror-mode.md) | Sets whether to decode mirrored barcodes. |
- | [`FormatSpecification.ModuleSizeRangeArray`](../module-size-range-array.md) | Sets the range of module size (in pixels) for barcodes search. (Hint). |
- | [`FormatSpecification.RequireStartStopChars`](../require-start-stop-chars.md) | Sets whether the start and stop characters are required when searching for Code 39 barcodes. |
- | [`FormatSpecification.StandardFormat`](../standard-format.md) | Set the standard barcode format. |
- | [`FormatSpecification.TailModuleRatio`](../tail-module-ratio.md) | Set the module count and module size ratio of the barcode tail part. |
-
-
-
-
-## Image Process Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`FormatSpecification.DeblurLevel`](../deblur-level.md) | Sets the degree of blurriness of the barcode for the current specified barcode format. |
- | [`FormatSpecification.DeformationResistingModes`](../deformation-resisting-modes.md) | Sets the mode and priority for deformation resisting for the current specified barcode format. Not support yet. |
- | [`FormatSpecification.BarcodeComplementModes`](../barcode-complement-modes.md) | Sets the mode and priority to complement the missing parts in the barcode for current specified barcode format. Not support yet. |
-
-
-
-## Result Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`FormatSpecification.MinResultConfidence`](../min-result-confidence.md) | The minimum confidence of the result. |
- | [`FormatSpecification.ReturnPartialBarcodeValue`](../return-partial-barcode-value.md) | Sets whether or not to return partial barcode value(s). Not support yet. |
diff --git a/parameters/reference/format-specification/index-v8.0.0.md b/parameters/reference/format-specification/index-v8.0.0.md
deleted file mode 100644
index 3161a205..00000000
--- a/parameters/reference/format-specification/index-v8.0.0.md
+++ /dev/null
@@ -1,87 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Parameter Reference - FormatSpecification Object
-description: This page shows Dynamsoft Barcode Reader Parameter Reference - FormatSpecification Object.
-keywords: parameter reference, parameters, FormatSpecification
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-permalink: /parameters/reference/format-specification/index-v8.0.0.html
----
-
-
-# FormatSpecification Object Parameters
-
-## Content Organization Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`FormatSpecification.Name`](#name) | The name of the FormatSpecification object. |
-
-### Name
-The name of the FormatSpecification object.
-
-**Remarks**
-It must be a unique name.
-
-**JSON Definition**
-
-| Parent Object | Key Name | Key Value Type | Default Value |
-| ------------- | -------- | -------------- | ------------- |
-| FormatSpecification | Name | *string* | It must be a mandatory setting value. |
-
-**JSON Example**
-```
-{
- "Name":"FormatSpecification1"
-}
-```
-
-## Format Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`FormatSpecification.AllModuleDeviation`](../all-module-deviation.md) | Set the module size deviation from the standard barcode module size. |
- | [`FormatSpecification.AustralianPostEncodingTable`](../australian-post-encoding-table.md) | Set the encoding table used to code the Customer Information Field of Australian Post Customer Barcode. |
- | [`FormatSpecification.BarcodeAngleRangeArray`](../barcode-angle-range-array.md) | Sets the range of angles (in degrees) for barcodes search. |
- | [`FormatSpecification.BarcodeBytesLengthRangeArray`](../barcode-bytes-length-range-array.md) | Sets the range of barcode bytes length for barcodes search. |
- | [`FormatSpecification.BarcodeBytesRegExPattern`](../barcode-bytes-regex-pattern.md) | Specifies the regular express pattern of barcode byte characters. |
- | [`FormatSpecification.BarcodeFormatIds`](../barcode-format-ids.md) | Sets which barcode format the current FormatSpecification configuration is applied to. |
- | [`FormatSpecification.BarcodeFormatIds_2`](../barcode-format-ids-2.md) | Sets which barcode format in BarcodeFormat group 2 the current FormatSpecification configuration is applied to. |
- | [`FormatSpecification.BarcodeHeightRangeArray`](../barcode-height-range-array.md) | Sets the range of barcode heights (in pixels) to for barcodes search. |
- | [`FormatSpecification.BarcodeTextLengthRangeArray`](../barcode-text-length-range-array.md) | Sets the range of barcode text length for barcodes search. |
- | [`FormatSpecification.BarcodeTextRegExPattern`](../barcode-text-regex-pattern.md) | Specifies the regular express pattern of barcode characters. |
- | [`FormatSpecification.BarcodeWidthRangeArray`](../barcode-width-range-array.md) | Sets the range of barcode widths (in pixels) for barcodes search.(Hint). |
- | [`FormatSpecification.BarcodeZoneBarCountRangeArray`](../barcode-zone-bar-count-range-array.md) | Sets the range of bar count of the barcode zone for barcodes search. |
- | [`FormatSpecification.BarcodeZoneMinDistanceToImageBorders`](../barcode-zone-min-distance-to-image-borders.md) | Sets the minimum distance (in pixels) between barcode zone and image borders. |
- | [`FormatSpecification.Code128Subset`](../code128-subset.md) | Set the code 128 subset. |
- | [`FormatSpecification.EnableDataMatrixECC000-140`](../enable-datamatrix-ecc000-140.md) | Specifies whether to decode DataMatrix ECC000-140 barcodes. |
- | [`FormatSpecification.EnableQRCodeModel1`](../enable-qrcode-model1.md) | Specifies whether to decode QRCode model 1 barcodes. |
- | [`FormatSpecification.FindUnevenModuleBarcode`](../find-uneven-module-barcode.md) | Specifies whether to find barcodes with uneven barcode modules. Not support yet. |
- | [`FormatSpecification.HeadModuleRatio`](../head-module-ratio.md) | Set the module count and module size ratio of the barcode head part. |
- | [`FormatSpecification.MinQuietZoneWidth`](../min-quiet-zone-width.md) | The minimum width of the barcode quiet zone. |
- | [`FormatSpecification.MinRatioOfBarcodeZoneWidthToHeight`](../min-ratio-of-barcode-zone-width-to-height.md) | Sets the minimum ratio (width/height) of the barcode zone. |
- | [`FormatSpecification.MirrorMode`](../mirror-mode.md) | Sets whether to decode mirrored barcodes. |
- | [`FormatSpecification.ModuleSizeRangeArray`](../module-size-range-array.md) | Sets the range of module size (in pixels) for barcodes search. (Hint). |
- | [`FormatSpecification.RequireStartStopChars`](../require-start-stop-chars.md) | Sets whether the start and stop characters are required when searching for Code 39 barcodes. |
- | [`FormatSpecification.StandardFormat`](../standard-format.md) | Set the standard barcode format. |
- | [`FormatSpecification.TailModuleRatio`](../tail-module-ratio.md) | Set the module count and module size ratio of the barcode tail part. |
-
-
-
-
-## Image Process Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`FormatSpecification.DeblurLevel`](../deblur-level.md) | Sets the degree of blurriness of the barcode for the current specified barcode format. |
- | [`FormatSpecification.DeformationResistingModes`](../deformation-resisting-modes.md) | Sets the mode and priority for deformation resisting for the current specified barcode format. Not support yet. |
- | [`FormatSpecification.BarcodeComplementModes`](../barcode-complement-modes.md) | Sets the mode and priority to complement the missing parts in the barcode for current specified barcode format. Not support yet. |
-
-
-
-## Result Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`FormatSpecification.MinResultConfidence`](../min-result-confidence.md) | The minimum confidence of the result. |
- | [`FormatSpecification.ReturnPartialBarcodeValue`](../return-partial-barcode-value.md) | Sets whether or not to return partial barcode value(s). Not support yet. |
diff --git a/parameters/reference/format-specification/index-v8.9.3.md b/parameters/reference/format-specification/index-v8.9.3.md
deleted file mode 100644
index 055e88e8..00000000
--- a/parameters/reference/format-specification/index-v8.9.3.md
+++ /dev/null
@@ -1,88 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Parameter Reference - FormatSpecification Object
-description: This page shows Dynamsoft Barcode Reader Parameter Reference - FormatSpecification Object.
-keywords: parameter reference, parameters, FormatSpecification
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-permalink: /parameters/reference/format-specification/index-v8.9.3.html
----
-
-
-# FormatSpecification Object Parameters
-
-## Content Organization Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`FormatSpecification.Name`](#name) | The name of the FormatSpecification object. |
-
-### Name
-The name of the FormatSpecification object.
-
-**Remarks**
-It must be a unique name.
-
-**JSON Definition**
-
-| Parent Object | Key Name | Key Value Type | Default Value |
-| ------------- | -------- | -------------- | ------------- |
-| FormatSpecification | Name | *string* | It must be a mandatory setting value. |
-
-**JSON Example**
-```
-{
- "Name":"FormatSpecification1"
-}
-```
-
-## Format Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`FormatSpecification.AllModuleDeviation`](../all-module-deviation.md) | Set the module size deviation from the standard barcode module size. |
- | [`FormatSpecification.AustralianPostEncodingTable`](../australian-post-encoding-table.md) | Set the encoding table used to code the Customer Information Field of Australian Post Customer Barcode. |
- | [`FormatSpecification.BarcodeAngleRangeArray`](../barcode-angle-range-array.md) | Sets the range of angles (in degrees) for barcodes search. |
- | [`FormatSpecification.BarcodeBytesLengthRangeArray`](../barcode-bytes-length-range-array.md) | Sets the range of barcode bytes length for barcodes search. |
- | [`FormatSpecification.BarcodeBytesRegExPattern`](../barcode-bytes-regex-pattern.md) | Specifies the regular express pattern of barcode byte characters. |
- | [`FormatSpecification.BarcodeFormatIds`](../barcode-format-ids.md) | Sets which barcode format the current FormatSpecification configuration is applied to. |
- | [`FormatSpecification.BarcodeFormatIds_2`](../barcode-format-ids-2.md) | Sets which barcode format in BarcodeFormat group 2 the current FormatSpecification configuration is applied to. |
- | [`FormatSpecification.BarcodeHeightRangeArray`](../barcode-height-range-array.md) | Sets the range of barcode heights (in pixels) to for barcodes search. |
- | [`FormatSpecification.BarcodeTextLengthRangeArray`](../barcode-text-length-range-array.md) | Sets the range of barcode text length for barcodes search. |
- | [`FormatSpecification.BarcodeTextRegExPattern`](../barcode-text-regex-pattern.md) | Specifies the regular express pattern of barcode characters. |
- | [`FormatSpecification.BarcodeWidthRangeArray`](../barcode-width-range-array.md) | Sets the range of barcode widths (in pixels) for barcodes search.(Hint). |
- | [`FormatSpecification.BarcodeZoneBarCountRangeArray`](../barcode-zone-bar-count-range-array.md) | Sets the range of bar count of the barcode zone for barcodes search. |
- | [`FormatSpecification.BarcodeZoneMinDistanceToImageBorders`](../barcode-zone-min-distance-to-image-borders.md) | Sets the minimum distance (in pixels) between barcode zone and image borders. |
- | [`FormatSpecification.Code128Subset`](../code128-subset.md) | Set the code 128 subset. |
- | [`FormatSpecification.EnableDataMatrixECC000-140`](../enable-datamatrix-ecc000-140.md) | Specifies whether to decode DataMatrix ECC000-140 barcodes. |
- | [`FormatSpecification.EnableQRCodeModel1`](../enable-qrcode-model1.md) | Specifies whether to decode QRCode model 1 barcodes. |
- | [`FormatSpecification.FindUnevenModuleBarcode`](../find-uneven-module-barcode.md) | Specifies whether to find barcodes with uneven barcode modules. Not support yet. |
- | [`FormatSpecification.HeadModuleRatio`](../head-module-ratio.md) | Set the module count and module size ratio of the barcode head part. |
- | [`FormatSpecification.MinQuietZoneWidth`](../min-quiet-zone-width.md) | The minimum width of the barcode quiet zone. |
- | [`FormatSpecification.MinRatioOfBarcodeZoneWidthToHeight`](../min-ratio-of-barcode-zone-width-to-height.md) | Sets the minimum ratio (width/height) of the barcode zone. |
- | [`FormatSpecification.MirrorMode`](../mirror-mode.md) | Sets whether to decode mirrored barcodes. |
- | [`FormatSpecification.ModuleSizeRangeArray`](../module-size-range-array.md) | Sets the range of module size (in pixels) for barcodes search. (Hint). |
- | [`FormatSpecification.MSICodeCheckDigitCalculation`](../msi-code-check-digit-calculation.md) | Sets the scheme used for calculating a check digit of an MSI barcode. |
- | [`FormatSpecification.RequireStartStopChars`](../require-start-stop-chars.md) | Sets whether the start and stop characters are required when searching for Code 39 barcodes. |
- | [`FormatSpecification.StandardFormat`](../standard-format.md) | Set the standard barcode format. |
- | [`FormatSpecification.TailModuleRatio`](../tail-module-ratio.md) | Set the module count and module size ratio of the barcode tail part. |
-
-
-
-
-## Image Process Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`FormatSpecification.DeblurLevel`](../deblur-level.md) | Sets the degree of blurriness of the barcode for the current specified barcode format. |
- | [`FormatSpecification.DeformationResistingModes`](../deformation-resisting-modes.md) | Sets the mode and priority for deformation resisting for the current specified barcode format. Not support yet. |
- | [`FormatSpecification.BarcodeComplementModes`](../barcode-complement-modes.md) | Sets the mode and priority to complement the missing parts in the barcode for current specified barcode format. Not support yet. |
-
-
-
-## Result Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`FormatSpecification.MinResultConfidence`](../min-result-confidence.md) | The minimum confidence of the result. |
- | [`FormatSpecification.ReturnPartialBarcodeValue`](../return-partial-barcode-value.md) | Sets whether or not to return partial barcode value(s). Not support yet. |
diff --git a/parameters/reference/format-specification/index-v9.2.0.md b/parameters/reference/format-specification/index-v9.2.0.md
deleted file mode 100644
index 0b0f0378..00000000
--- a/parameters/reference/format-specification/index-v9.2.0.md
+++ /dev/null
@@ -1,90 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Parameter Reference - FormatSpecification Object
-description: This page shows Dynamsoft Barcode Reader Parameter Reference - FormatSpecification Object.
-keywords: parameter reference, parameters, FormatSpecification
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-permalink: /parameters/reference/format-specification/index-v9.2.0.html
----
-
-
-# FormatSpecification Object Parameters
-
-## Content Organization Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`FormatSpecification.Name`](#name) | The name of the FormatSpecification object. |
-
-### Name
-The name of the FormatSpecification object.
-
-**Remarks**
-It must be a unique name.
-
-**JSON Definition**
-
-| Parent Object | Key Name | Key Value Type | Default Value |
-| ------------- | -------- | -------------- | ------------- |
-| FormatSpecification | Name | *string* | It must be a mandatory setting value. |
-
-**JSON Example**
-```
-{
- "Name":"FormatSpecification1"
-}
-```
-
-## Format Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`FormatSpecification.AllModuleDeviation`](../all-module-deviation.md) | Sets the module size deviation from the standard barcode module size. |
- | [`FormatSpecification.AustralianPostEncodingTable`](../australian-post-encoding-table.md) | Sets the encoding table used to code the Customer Information Field of Australian Post Customer Barcode. |
- | [`FormatSpecification.BarcodeAngleRangeArray`](../barcode-angle-range-array.md) | Sets the range of angles (in degrees) for barcodes search. |
- | [`FormatSpecification.BarcodeBytesLengthRangeArray`](../barcode-bytes-length-range-array.md) | Sets the range of barcode bytes length for barcodes search. |
- | [`FormatSpecification.BarcodeBytesRegExPattern`](../barcode-bytes-regex-pattern.md) | Specifies the regular express pattern of barcode byte characters. |
- | [`FormatSpecification.BarcodeFormatIds`](../barcode-format-ids.md) | Sets which barcode format the current FormatSpecification configuration is applied to. |
- | [`FormatSpecification.BarcodeFormatIds_2`](../barcode-format-ids-2.md) | Sets which barcode format in BarcodeFormat group 2 the current FormatSpecification configuration is applied to. |
- | [`FormatSpecification.BarcodeHeightRangeArray`](../barcode-height-range-array.md) | Sets the range of barcode heights (in pixels) to for barcodes search. |
- | [`FormatSpecification.BarcodeTextLengthRangeArray`](../barcode-text-length-range-array.md) | Sets the range of barcode text length for barcodes search. |
- | [`FormatSpecification.BarcodeTextRegExPattern`](../barcode-text-regex-pattern.md) | Specifies the regular express pattern of barcode characters. |
- | [`FormatSpecification.BarcodeWidthRangeArray`](../barcode-width-range-array.md) | Sets the range of barcode widths (in pixels) for barcodes search.(Hint). |
- | [`FormatSpecification.BarcodeZoneBarCountRangeArray`](../barcode-zone-bar-count-range-array.md) | Sets the range of bar count of the barcode zone for barcodes search. |
- | [`FormatSpecification.BarcodeZoneMinDistanceToImageBorders`](../barcode-zone-min-distance-to-image-borders.md) | Sets the minimum distance (in pixels) between barcode zone and image borders. |
- | [`FormatSpecification.Code128Subset`](../code128-subset.md) | Sets the code 128 subset. |
- | [`FormatSpecification.EnableDataMatrixECC000-140`](../enable-datamatrix-ecc000-140.md) | Specifies whether to decode DataMatrix ECC000-140 barcodes. |
- | [`FormatSpecification.EnableQRCodeModel1`](../enable-qrcode-model1.md) | Specifies whether to decode QRCode model 1 barcodes. |
- | [`FormatSpecification.FindUnevenModuleBarcode`](../find-uneven-module-barcode.md) | Specifies whether to find barcodes with uneven barcode modules. Not support yet. |
- | [`FormatSpecification.HeadModuleRatio`](../head-module-ratio.md) | Sets the module count and module size ratio of the barcode head part. |
- | [`FormatSpecification.MinQuietZoneWidth`](../min-quiet-zone-width.md) | The minimum width of the barcode quiet zone. |
- | [`FormatSpecification.MinRatioOfBarcodeZoneWidthToHeight`](../min-ratio-of-barcode-zone-width-to-height.md) | Sets the minimum ratio (width/height) of the barcode zone. |
- | [`FormatSpecification.MirrorMode`](../mirror-mode.md) | Sets whether to decode mirrored barcodes. |
- | [`FormatSpecification.ModuleSizeRangeArray`](../module-size-range-array.md) | Sets the range of module size (in pixels) for barcodes search. (Hint). |
- | [`FormatSpecification.MSICodeCheckDigitCalculation`](../msi-code-check-digit-calculation.md) | Sets the scheme used for calculating a check digit of an MSI barcode. |
- | [`FormatSpecification.PartitionModes`](../partition-modes.md) | Sets the mode used to apply partition process. |
- | [`FormatSpecification.RequireStartStopChars`](../require-start-stop-chars.md) | Sets whether the start and stop characters are required when searching for Code 39 barcodes. |
- | [`FormatSpecification.StandardFormat`](../standard-format.md) | Sets the standard barcode format. |
- | [`FormatSpecification.TailModuleRatio`](../tail-module-ratio.md) | Sets the module count and module size ratio of the barcode tail part. |
- | [`FormatSpecification.VerifyCheckDigit`](../verify-check-digit.md) | Sets the value determining whether to verify the check digit in barcodes where this check digit is optional. |
-
-
-
-
-## Image Process Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`FormatSpecification.DeblurLevel`](../deblur-level.md) | Sets the degree of blurriness of the barcode for the current specified barcode format. |
- | [`FormatSpecification.DeformationResistingModes`](../deformation-resisting-modes.md) | Sets the mode and priority for deformation resisting for the current specified barcode format. Not support yet. |
- | [`FormatSpecification.BarcodeComplementModes`](../barcode-complement-modes.md) | Sets the mode and priority to complement the missing parts in the barcode for current specified barcode format. Not support yet. |
-
-
-
-## Result Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`FormatSpecification.MinResultConfidence`](../min-result-confidence.md) | The minimum confidence of the result. |
- | [`FormatSpecification.ReturnPartialBarcodeValue`](../return-partial-barcode-value.md) | Sets whether or not to return partial barcode value(s). Not support yet. |
diff --git a/parameters/reference/format-specification/index.md b/parameters/reference/format-specification/index.md
deleted file mode 100644
index a22c1e30..00000000
--- a/parameters/reference/format-specification/index.md
+++ /dev/null
@@ -1,91 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Parameter Reference - FormatSpecification Object
-description: This page shows Dynamsoft Barcode Reader Parameter Reference - FormatSpecification Object.
-keywords: parameter reference, parameters, FormatSpecification
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-permalink: /parameters/reference/format-specification/index.html
----
-
-
-# FormatSpecification Object Parameters
-
-## Content Organization Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`FormatSpecification.Name`](#name) | The name of the FormatSpecification object. |
-
-### Name
-The name of the FormatSpecification object.
-
-**Remarks**
-It must be a unique name.
-
-**JSON Definition**
-
-| Parent Object | Key Name | Key Value Type | Default Value |
-| ------------- | -------- | -------------- | ------------- |
-| FormatSpecification | Name | *string* | It must be a mandatory setting value. |
-
-**JSON Example**
-```
-{
- "Name":"FormatSpecification1"
-}
-```
-
-## Format Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`FormatSpecification.AllModuleDeviation`](../all-module-deviation.md) | Sets the module size deviation from the standard barcode module size. |
- | [`FormatSpecification.AustralianPostEncodingTable`](../australian-post-encoding-table.md) | Sets the encoding table used to code the Customer Information Field of Australian Post Customer Barcode. |
- | [`FormatSpecification.BarcodeAngleRangeArray`](../barcode-angle-range-array.md) | Sets the range of angles (in degrees) for barcodes search. |
- | [`FormatSpecification.BarcodeBytesLengthRangeArray`](../barcode-bytes-length-range-array.md) | Sets the range of barcode bytes length for barcodes search. |
- | [`FormatSpecification.BarcodeBytesRegExPattern`](../barcode-bytes-regex-pattern.md) | Specifies the regular express pattern of barcode byte characters. |
- | [`FormatSpecification.BarcodeFormatIds`](../barcode-format-ids.md) | Sets which barcode format the current FormatSpecification configuration is applied to. |
- | [`FormatSpecification.BarcodeFormatIds_2`](../barcode-format-ids-2.md) | Sets which barcode format in BarcodeFormat group 2 the current FormatSpecification configuration is applied to. |
- | [`FormatSpecification.BarcodeHeightRangeArray`](../barcode-height-range-array.md) | Sets the range of barcode heights (in pixels) to for barcodes search. |
- | [`FormatSpecification.BarcodeTextLengthRangeArray`](../barcode-text-length-range-array.md) | Sets the range of barcode text length for barcodes search. |
- | [`FormatSpecification.BarcodeTextRegExPattern`](../barcode-text-regex-pattern.md) | Specifies the regular express pattern of barcode characters. |
- | [`FormatSpecification.BarcodeWidthRangeArray`](../barcode-width-range-array.md) | Sets the range of barcode widths (in pixels) for barcodes search.(Hint). |
- | [`FormatSpecification.BarcodeZoneBarCountRangeArray`](../barcode-zone-bar-count-range-array.md) | Sets the range of bar count of the barcode zone for barcodes search. |
- | [`FormatSpecification.BarcodeZoneMinDistanceToImageBorders`](../barcode-zone-min-distance-to-image-borders.md) | Sets the minimum distance (in pixels) between barcode zone and image borders. |
- | [`FormatSpecification.Code128Subset`](../code128-subset.md) | Sets the code 128 subset. |
- | [`FormatSpecification.EnableDataMatrixECC000-140`](../enable-datamatrix-ecc000-140.md) | Specifies whether to decode DataMatrix ECC000-140 barcodes. |
- | [`FormatSpecification.EnableQRCodeModel1`](../enable-qrcode-model1.md) | Specifies whether to decode QRCode model 1 barcodes. |
- | [`FormatSpecification.FindUnevenModuleBarcode`](../find-uneven-module-barcode.md) | Specifies whether to find barcodes with uneven barcode modules. Not support yet. |
- | [`FormatSpecification.HeadModuleRatio`](../head-module-ratio.md) | Sets the module count and module size ratio of the barcode head part. |
- | [`FormatSpecification.MinQuietZoneWidth`](../min-quiet-zone-width.md) | The minimum width of the barcode quiet zone. |
- | [`FormatSpecification.MinRatioOfBarcodeZoneWidthToHeight`](../min-ratio-of-barcode-zone-width-to-height.md) | Sets the minimum ratio (width/height) of the barcode zone. |
- | [`FormatSpecification.MirrorMode`](../mirror-mode.md) | Sets whether to decode mirrored barcodes. |
- | [`FormatSpecification.ModuleSizeRangeArray`](../module-size-range-array.md) | Sets the range of module size (in pixels) for barcodes search. (Hint). |
- | [`FormatSpecification.MSICodeCheckDigitCalculation`](../msi-code-check-digit-calculation.md) | Sets the scheme used for calculating a check digit of an MSI barcode. |
- | [`FormatSpecification.PartitionModes`](../partition-modes.md) | Sets the mode used to apply partition process. |
- | [`FormatSpecification.PatchCodeSearchingMargins`](../patchcode-searching-margins.md) | Sets the margins for searching PatchCode. |
- | [`FormatSpecification.RequireStartStopChars`](../require-start-stop-chars.md) | Sets whether the start and stop characters are required when searching for common 1D barcodes. |
- | [`FormatSpecification.StandardFormat`](../standard-format.md) | Sets the standard barcode format. |
- | [`FormatSpecification.TailModuleRatio`](../tail-module-ratio.md) | Sets the module count and module size ratio of the barcode tail part. |
- | [`FormatSpecification.VerifyCheckDigit`](../verify-check-digit.md) | Sets the value determining whether to verify the check digit in barcodes where this check digit is optional. |
-
-
-
-
-## Image Process Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`FormatSpecification.DeblurLevel`](../deblur-level.md) | Sets the degree of blurriness of the barcode for the current specified barcode format. |
- | [`FormatSpecification.DeformationResistingModes`](../deformation-resisting-modes.md) | Sets the mode and priority for deformation resisting for the current specified barcode format. Not support yet. |
- | [`FormatSpecification.BarcodeComplementModes`](../barcode-complement-modes.md) | Sets the mode and priority to complement the missing parts in the barcode for current specified barcode format. Not support yet. |
-
-
-
-## Result Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`FormatSpecification.MinResultConfidence`](../min-result-confidence.md) | The minimum confidence of the result. |
- | [`FormatSpecification.ReturnPartialBarcodeValue`](../return-partial-barcode-value.md) | Sets whether or not to return partial barcode value(s). Not support yet. |
diff --git a/parameters/reference/grayscale-transformation-modes.md b/parameters/reference/grayscale-transformation-modes.md
deleted file mode 100644
index 7c0f7e3b..00000000
--- a/parameters/reference/grayscale-transformation-modes.md
+++ /dev/null
@@ -1,132 +0,0 @@
----
-layout: default-layout
-title: GrayscaleTransformationModes - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for GrayscaleTransformationModes.
-keywords: GrayscaleTransformationModes, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/grayscale-transformation-modes.html
----
-
-
-# GrayscaleTransformationModes
-
-This parameter helps control the colour mode of the grayscale image. This parameter is very important when trying to read inverted barcodes. Barcodes typically are dark on a light background, but sometimes they might be inverted, resulting in a light barcode on a dark background. By default, the library is configured to detect the former. So if you are working with inverted barcodes, `GrayscaleTransformationModes` is the parameter to deal with them.
-
-It consists of one or more modes, each mode represents a way to transform the grayscale image.
-
-
-## Candidate Mode List
-- GTM_ORIGINAL
-- GTM_INVERTED
-
-### GTM_ORIGINAL
-Keeps the original grayscale. This mode has the following arguments for further customization.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### GTM_INVERTED
-Transforms the image to inverted grayscale. This mode is the one to use for inverted barcodes. It also has the following arguments for further customization.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-
-## Setting Methods
-
-### As `PublicRuntimeSettings` Member
-`GrayscaleTransformationModes` can be set dynamically during runtime as a member of `FurtherModes`, which is a member of `PublicRuntimeSettings` struct, it is an array with 8 `GrayscaleTransformationMode` Enumeration items.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->grayscaleTransformationModes[0] = GTM_ORIGINAL;
-reader->UpdateRuntimeSettings(pSettings);
-delete pSettings;
-//...other codes
-```
-
-
-**Remarks**
-`GetModeArgument` and `SetModeArgument` need to be called for getting and setting [`Arguments`](#candidate-argument-list).
-
-
-**See Also**
-- `FurtherModes:` [C]({{ site.structs }}FurtherModes.html?src=c) \| [C++]({{ site.structs }}FurtherModes.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/FurtherModes.html) \| [Java]({{ site.java_api }}class/FurtherModes.html) \| [Java-Android]({{ site.android_api }}auxiliary-FurtherModes.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iFurtherModes.html)
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- `GrayscaleTransformationMode:` [JavaScript]({{ site.js_enumerations }}EnumGrayscaleTransformationMode.html) \| [C]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=c#grayscaletransformationmode) \| [C++]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=cpp#grayscaletransformationmode) \| [.NET]({{ site.dotnet_enumerations }}parameter-mode-enums.html#grayscaletransformationmode) \| [Python]({{ site.python_enumerations }}parameter-mode-enums.html#grayscaletransformationmode) \| [Java]({{ site.java_enumerations }}parameter-mode-enums.html#grayscaletransformationmode) \| [Java-Android]({{ site.mobile_enumerations }}grayscale-transformation-mode.html?lang=android) \| [Objective-C & Swift]({{ site.mobile_enumerations }}grayscale-transformation-mode.html?lang=objc,swift)
-- `GetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#getmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_getmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#getmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#get_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument)
-- `SetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#setmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_setmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#setmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#set_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument)
-
-
-### As JSON Parameter
-`GrayscaleTransformationModes` as a JSON parameter is a JSON Object array. Each JSON object is defined as below.
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| Mode | Any one in Candidate Mode List as string | (Required) Specifies a mode for grayscale transformation. |
-| LibraryFileName | A string from value range of LibraryFileName | (Optional) Sets the Argument [LibraryFileName](#libraryfilename). |
-| LibraryParameters | A string from value range of LibraryParameters | (Optional) Sets the Argument [LibraryParameters](#libraryparameters). |
-
-
-
-**JSON Parameter Example**
-```
-{
- "GrayscaleTransformationModes": [
- {
- "Mode": "GTM_ORIGINAL"
- },
- {
- "Mode": "GTM_INVERTED"
- }
- ]
-}
-```
-
-
-
-## Candidate Argument List
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-
-
-### LibraryFileName
-Sets the file name of the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing file name. | "" | All modes |
-
-
-**Remarks**
- The library must be in the same place with Dynamsoft Barcode Reader Library.
-
-
-### LibraryParameters
-Sets the parameters passed to the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | ----------- |
-| *string* | A string value representing parameters. | "" | All modes |
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to configure GrayscaleTransformationModes]({{ site.scenario_settings }}image-scale-and-colour-conversion.html#grayscale-colour-inversion-transformation)
diff --git a/parameters/reference/head-module-ratio.md b/parameters/reference/head-module-ratio.md
deleted file mode 100644
index 3a9d1127..00000000
--- a/parameters/reference/head-module-ratio.md
+++ /dev/null
@@ -1,53 +0,0 @@
----
-layout: default-layout
-title: HeadModuleRatio - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for HeadModuleRatio.
-keywords: HeadModuleRatio, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/head-module-ratio.html
----
-
-
-# HeadModuleRatio
-
-`HeadModuleRatio` defines the module count and module size ratio of the barcode head section. By default, there is no restriction on the head module count or module size ratio.
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *string* | N/A | `""` | `FormatSpecification` |
-
-## Setting Methods
-`HeadModuleRatio` can be set via JSON template.
-
-### As JSON Parameter
-`HeadModuleRatio` as a JSON parameter is a string value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| HeadModuleRatio | a string representing the module count and module size |
-
-
-**JSON Example**
-```
-{
- "HeadModuleRatio": "211412"
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [Configure parameters for a certain barcode format]({{ site.scenario_settings }}format-specification.html)
diff --git a/parameters/reference/image-parameter/index-v7.6.0.md b/parameters/reference/image-parameter/index-v7.6.0.md
deleted file mode 100644
index efda96fa..00000000
--- a/parameters/reference/image-parameter/index-v7.6.0.md
+++ /dev/null
@@ -1,164 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Parameter Reference - ImageParameter Object
-description: This page shows Dynamsoft Barcode Reader Parameter Reference - ImageParameter Object.
-keywords: parameter reference, parameters, ImageParameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-permalink: /parameters/reference/image-parameter/index-v7.6.0.html
----
-
-
-# ImageParameter Object Parameters
-
-## Content Organization Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`ImageParameter.Name`](#name) | The name of the ImageParameter object. |
- | [`ImageParameter.Description`](#description) | The description of the ImageParameter object. |
- | [`ImageParameter.FormatSpecificationNameArray`](#formatspecificationnamearray) | The names of the referenced FormatSpecification object(s). |
- | [`ImageParameter.RegionDefinitionNameArray`](#regiondefinitionnamearray) | The names of the referenced RegionDefinition object(s). |
-
-### Name
-The name of the ImageParameter object.
-
-**Remarks**
-It must be a unique name.
-
-**JSON Definition**
-
-| Parent Object | Key Name | Key Value Type | Description |
-| ------------- | -------- | -------------- | ----------- |
-| ImageParameter | Name | *string* | It must be a mandatory setting value. |
-
-**JSON Example**
-```
-{
- "Name":"ImageParameter1"
-}
-```
-
-
-### Description
-The description of the ImageParameter object.
-
-**JSON Definition**
-
-| Parent Object | Key Name | Key Value Type | Default Value |
-| ------------- | -------- | -------------- | ------------- |
-| ImageParameter | Description | *string* | "" |
-
-**JSON Example**
-```
-{
- "Description":"This template demonstrate..."
-}
-```
-
-
-### FormatSpecificationNameArray
-The names of the referenced FormatSpecification object(s).
-
-**Remarks**
-An array item is a name of any available `FormatSpecifications`.
-
-**JSON Definition**
-
-| Parent Object | Key Name | Key Value Type | Default Value |
-| ------------- | -------- | -------------- | ------------- |
-| ImageParameter | FormatSpecificationNameArray | *string Array* | `null` |
-
-
-**JSON Example**
-```
-{
- "FormatSpecificationNameArray":[
- "FormatSpecification1",
- "FormatSpecification2"
- ]
-}
-```
-
-
-### RegionDefinitionNameArray
-The names of the referenced RegionDefinition object(s).
-
-**Remarks**
-An array item is a name of any available `RegionDefinitions`.
-
-**JSON Definition**
-
-| Parent Object | Key Name | Key Value Type | Default Value |
-| ------------- | -------- | -------------- | ------------- |
-| ImageParameter | RegionDefinitionNameArray | *string Array* | `null` |
-
-
-**JSON Example**
-```
-{
- "RegionDefinitionNameArray":[
- "RegionDefinition1",
- "RegionDefinition2"
- ]
-}
-```
-
-
-## Cost Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`ImageParameter.TerminatePhase`](../terminate-phase.md) | Sets the phase where the algorithm stops. |
- | [`ImageParameter.Timeout`](../time-out.md) | Sets the maximum amount of time (in milliseconds) that should be spent searching for a barcode per page. |
- | [`ImageParameter.MaxAlgorithmThreadCount`](../max-algorithm-thread-count.md) | Sets the number of threads the image processing algorithm will use to decode barcodes. |
- | [`ImageParameter.ExpectedBarcodesCount`](../expected-barcodes-count.md) | Sets the number of barcodes expected to be detected for each image. |
-
-
-## Format Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`ImageParameter.BarcodeFormatIds`](../barcode-format-ids.md) | Sets the formats of the barcode to be read. Barcode formats can be combined. |
- | [`ImageParameter.BarcodeFormatIds_2`](../barcode-format-ids-2.md) | Sets the formats of the barcode in BarcodeFormat group 2 to be read. Barcode formats in BarcodeFormat group 2 can be combined. |
-
-
-## Image Process Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`ImageParameter.AccompanyingTextRecognitionModes`](../accompanying-text-recognition-modes.md) | Sets the mode and priority to recognize accompanying text. |
- | [`ImageParameter.BarcodeColourModes`](../barcode-colour-modes.md) | Sets the mode and priority for the barcode colour mode used to process the barcode zone. |
- | [`ImageParameter.BarcodeComplementModes`](../barcode-complement-modes.md) | Sets the mode and priority to complement the missing parts in the barcode. |
- | [`ImageParameter.BinarizationModes`](../binarization-modes.md) | Sets the mode and priority for binarization. |
- | [`ImageParameter.ColourClusteringModes`](../colour-clustering-modes.md) | Sets the mode and priority for colour categorization. Not supported yet. |
- | [`ImageParameter.ColourConversionModes`](../colour-conversion-modes.md) | Sets the mode and priority for converting a colour image to a grayscale image. |
- | [`ImageParameter.DeblurLevel`](../deblur-level.md) | Sets the degree of blurriness of the barcode. |
- | [`ImageParameter.DeformationResistingModes`](../deformation-resisting-modes.md) | Sets the mode and priority for deformation resisting. |
- | [`ImageParameter.DPMCodeReadingModes`](../dpm-code-reading-modes.md) | Sets the mode and priority for DPM code reading. Not support yet. |
- | [`ImageParameter.GrayscaleTransformationModes`](../grayscale-transformation-modes.md) | Sets the mode and priority for the grayscale image conversion. |
- | [`ImageParameter.ImagePreprocessingModes`](../image-preprocessing-modes.md) | Sets the mode and priority for image preprocessing algorithms. |
- | [`ImageParameter.LocalizationModes`](../localization-modes.md) | Sets the mode and priority for localization algorithms. |
- | [`ImageParameter.Pages`](../pages.md) | Sets the specific pages or the range of pages of a file (.tiff or .pdf) for barcode searching. |
- | [`ImageParameter.PDFRasterDPI`](../pdf-raster-dpi.md) | Sets the output image resolution. |
- | [`ImageParameter.PDFReadingMode`](../pdf-reading-mode.md) | Sets the way to detect barcodes from a PDF file when using the DecodeFile method. |
- | [`ImageParameter.RegionPredetectionModes`](../region-predetection-modes.md) | Sets the region pre-detection mode for barcodes search. |
- | [`ImageParameter.ScaleDownThreshold`](../scale-down-threshold.md) | Sets the threshold for the image shrinking. |
- | [`ImageParameter.ScaleUpModes`](../scale-up-modes.md) | Sets the mode and priority to control the sampling methods of scale-up for linear barcodes with small module sizes. |
- | [`ImageParameter.TextAssistedCorrectionMode`](../text-assisted-correction-mode.md) | Sets the mode of text assisted correction for barcode decoding. Not support yet. |
- | [`ImageParameter.TextFilterModes`](../text-filter-modes.md) | Sets the mode and priority for text filter. |
- | [`ImageParameter.TextureDetectionModes`](../texture-detection-modes.md) | Sets the mode and priority for texture detection. |
-
-
-
-## Result Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`ImageParameter.IntermediateResultTypes`](../intermediate-result-types.md) | Sets which types of intermediate result to be kept for further reference. Intermediate result types can be combined. |
- | [`ImageParameter.IntermediateResultSavingMode`](../intermediate-result-saving-mode.md) | Sets the mode for saving the intermediate result. |
- | [`ImageParameter.ResultCoordinateType`](../result-coordinate-type.md) | Specifies the format for the coordinates returned |
- | [`ImageParameter.TextResultOrderModes`](../text-result-order-modes.md) | Sets the mode and priority for the order of the text results returned. |
- | [`ImageParameter.ReturnBarcodeZoneClarity`](../return-barcode-zone-clarity.md) | Sets whether or not to return the clarity of the barcode zone. |
-
-
diff --git a/parameters/reference/image-parameter/index-v8.1.2.md b/parameters/reference/image-parameter/index-v8.1.2.md
deleted file mode 100644
index da086b16..00000000
--- a/parameters/reference/image-parameter/index-v8.1.2.md
+++ /dev/null
@@ -1,164 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Parameter Reference - ImageParameter Object
-description: This page shows Dynamsoft Barcode Reader Parameter Reference - ImageParameter Object.
-keywords: parameter reference, parameters, ImageParameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-permalink: /parameters/reference/image-parameter/index-v8.1.2.html
----
-
-
-# ImageParameter Object Parameters
-
-## Content Organization Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`ImageParameter.Name`](#name) | The name of the ImageParameter object. |
- | [`ImageParameter.Description`](#description) | The description of the ImageParameter object. |
- | [`ImageParameter.FormatSpecificationNameArray`](#formatspecificationnamearray) | The names of the referenced FormatSpecification object(s). |
- | [`ImageParameter.RegionDefinitionNameArray`](#regiondefinitionnamearray) | The names of the referenced RegionDefinition object(s). |
-
-### Name
-The name of the ImageParameter object.
-
-**Remarks**
-It must be a unique name.
-
-**JSON Definition**
-
-| Parent Object | Key Name | Key Value Type | Description |
-| ------------- | -------- | -------------- | ----------- |
-| ImageParameter | Name | *string* | It must be a mandatory setting value. |
-
-**JSON Example**
-```
-{
- "Name":"ImageParameter1"
-}
-```
-
-
-### Description
-The description of the ImageParameter object.
-
-**JSON Definition**
-
-| Parent Object | Key Name | Key Value Type | Default Value |
-| ------------- | -------- | -------------- | ------------- |
-| ImageParameter | Description | *string* | "" |
-
-**JSON Example**
-```
-{
- "Description":"This template demonstrate..."
-}
-```
-
-
-### FormatSpecificationNameArray
-The names of the referenced FormatSpecification object(s).
-
-**Remarks**
-An array item is a name of any available `FormatSpecifications`.
-
-**JSON Definition**
-
-| Parent Object | Key Name | Key Value Type | Default Value |
-| ------------- | -------- | -------------- | ------------- |
-| ImageParameter | FormatSpecificationNameArray | *string Array* | `null` |
-
-
-**JSON Example**
-```
-{
- "FormatSpecificationNameArray":[
- "FormatSpecification1",
- "FormatSpecification2"
- ]
-}
-```
-
-
-### RegionDefinitionNameArray
-The names of the referenced RegionDefinition object(s).
-
-**Remarks**
-An array item is a name of any available `RegionDefinitions`.
-
-**JSON Definition**
-
-| Parent Object | Key Name | Key Value Type | Default Value |
-| ------------- | -------- | -------------- | ------------- |
-| ImageParameter | RegionDefinitionNameArray | *string Array* | `null` |
-
-
-**JSON Example**
-```
-{
- "RegionDefinitionNameArray":[
- "RegionDefinition1",
- "RegionDefinition2"
- ]
-}
-```
-
-
-## Cost Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`ImageParameter.TerminatePhase`](../terminate-phase.md) | Sets the phase where the algorithm stops. |
- | [`ImageParameter.Timeout`](../time-out.md) | Sets the maximum amount of time (in milliseconds) that should be spent searching for a barcode per page. |
- | [`ImageParameter.MaxAlgorithmThreadCount`](../max-algorithm-thread-count.md) | Sets the number of threads the image processing algorithm will use to decode barcodes. |
- | [`ImageParameter.ExpectedBarcodesCount`](../expected-barcodes-count.md) | Sets the number of barcodes expected to be detected for each image. |
-
-
-## Format Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`ImageParameter.BarcodeFormatIds`](../barcode-format-ids.md) | Sets the formats of the barcode to be read. Barcode formats can be combined. |
- | [`ImageParameter.BarcodeFormatIds_2`](../barcode-format-ids-2.md) | Sets the formats of the barcode in BarcodeFormat group 2 to be read. Barcode formats in BarcodeFormat group 2 can be combined. |
-
-
-## Image Process Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`ImageParameter.BarcodeColourModes`](../barcode-colour-modes.md) | Sets the mode and priority for the barcode colour mode used to process the barcode zone. |
- | [`ImageParameter.BarcodeComplementModes`](../barcode-complement-modes.md) | Sets the mode and priority to complement the missing parts in the barcode. |
- | [`ImageParameter.BinarizationModes`](../binarization-modes.md) | Sets the mode and priority for binarization. |
- | [`ImageParameter.ColourClusteringModes`](../colour-clustering-modes.md) | Sets the mode and priority for colour categorization. Not supported yet. |
- | [`ImageParameter.ColourConversionModes`](../colour-conversion-modes.md) | Sets the mode and priority for converting a colour image to a grayscale image. |
- | [`ImageParameter.DeblurLevel`](../deblur-level.md) | Sets the degree of blurriness of the barcode. |
- | [`ImageParameter.DeblurModes`](../deblur-modes.md) | Sets the mode and priority for deblurring. |
- | [`ImageParameter.DeformationResistingModes`](../deformation-resisting-modes.md) | Sets the mode and priority for deformation resisting. |
- | [`ImageParameter.DPMCodeReadingModes`](../dpm-code-reading-modes.md) | Sets the mode and priority for DPM code reading. Not support yet. |
- | [`ImageParameter.GrayscaleTransformationModes`](../grayscale-transformation-modes.md) | Sets the mode and priority for the grayscale image conversion. |
- | [`ImageParameter.ImagePreprocessingModes`](../image-preprocessing-modes.md) | Sets the mode and priority for image preprocessing algorithms. |
- | [`ImageParameter.LocalizationModes`](../localization-modes.md) | Sets the mode and priority for localization algorithms. |
- | [`ImageParameter.Pages`](../pages.md) | Sets the specific pages or the range of pages of a file (.tiff or .pdf) for barcode searching. |
- | [`ImageParameter.PDFRasterDPI`](../pdf-raster-dpi.md) | Sets the output image resolution. |
- | [`ImageParameter.PDFReadingMode`](../pdf-reading-mode.md) | Sets the way to detect barcodes from a PDF file when using the DecodeFile method. |
- | [`ImageParameter.RegionPredetectionModes`](../region-predetection-modes.md) | Sets the region pre-detection mode for barcodes search. |
- | [`ImageParameter.ScaleDownThreshold`](../scale-down-threshold.md) | Sets the threshold for the image shrinking. |
- | [`ImageParameter.ScaleUpModes`](../scale-up-modes.md) | Sets the mode and priority to control the sampling methods of scale-up for linear barcodes with small module sizes. |
- | [`ImageParameter.TextAssistedCorrectionMode`](../text-assisted-correction-mode.md) | Sets the mode of text assisted correction for barcode decoding. Not support yet. |
- | [`ImageParameter.TextFilterModes`](../text-filter-modes.md) | Sets the mode and priority for text filter. |
- | [`ImageParameter.TextureDetectionModes`](../texture-detection-modes.md) | Sets the mode and priority for texture detection. |
-
-
-
-## Result Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`ImageParameter.IntermediateResultTypes`](../intermediate-result-types.md) | Sets which types of intermediate result to be kept for further reference. Intermediate result types can be combined. |
- | [`ImageParameter.IntermediateResultSavingMode`](../intermediate-result-saving-mode.md) | Sets the mode for saving the intermediate result. |
- | [`ImageParameter.ResultCoordinateType`](../result-coordinate-type.md) | Specifies the format for the coordinates returned |
- | [`ImageParameter.TextResultOrderModes`](../text-result-order-modes.md) | Sets the mode and priority for the order of the text results returned. |
- | [`ImageParameter.ReturnBarcodeZoneClarity`](../return-barcode-zone-clarity.md) | Sets whether or not to return the clarity of the barcode zone. |
-
-
diff --git a/parameters/reference/image-parameter/index.md b/parameters/reference/image-parameter/index.md
deleted file mode 100644
index 876275ea..00000000
--- a/parameters/reference/image-parameter/index.md
+++ /dev/null
@@ -1,162 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Parameter Reference - ImageParameter Object
-description: This page shows Dynamsoft Barcode Reader Parameter Reference - ImageParameter Object.
-keywords: parameter reference, parameters, ImageParameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-permalink: /parameters/reference/image-parameter/index.html
----
-
-# ImageParameter Object Parameters
-
-## Content Organization Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`ImageParameter.Name`](#name) | The name of the ImageParameter object. |
- | [`ImageParameter.Description`](#description) | The description of the ImageParameter object. |
- | [`ImageParameter.FormatSpecificationNameArray`](#formatspecificationnamearray) | The names of the referenced FormatSpecification object(s). |
- | [`ImageParameter.RegionDefinitionNameArray`](#regiondefinitionnamearray) | The names of the referenced RegionDefinition object(s). |
-
-### Name
-The name of the ImageParameter object.
-
-**Remarks**
-It must be a unique name.
-
-**JSON Definition**
-
-| Parent Object | Key Name | Key Value Type | Description |
-| ------------- | -------- | -------------- | ----------- |
-| ImageParameter | Name | *string* | It must be a mandatory setting value. |
-
-**JSON Example**
-```
-{
- "Name":"ImageParameter1"
-}
-```
-
-
-### Description
-The description of the ImageParameter object.
-
-**JSON Definition**
-
-| Parent Object | Key Name | Key Value Type | Default Value |
-| ------------- | -------- | -------------- | ------------- |
-| ImageParameter | Description | *string* | "" |
-
-**JSON Example**
-```
-{
- "Description":"This template demonstrate..."
-}
-```
-
-
-### FormatSpecificationNameArray
-The names of the referenced FormatSpecification object(s).
-
-**Remarks**
-An array item is a name of any available `FormatSpecifications`.
-
-**JSON Definition**
-
-| Parent Object | Key Name | Key Value Type | Default Value |
-| ------------- | -------- | -------------- | ------------- |
-| ImageParameter | FormatSpecificationNameArray | *string Array* | `null` |
-
-
-**JSON Example**
-```
-{
- "FormatSpecificationNameArray":[
- "FormatSpecification1",
- "FormatSpecification2"
- ]
-}
-```
-
-
-### RegionDefinitionNameArray
-The names of the referenced RegionDefinition object(s).
-
-**Remarks**
-An array item is a name of any available `RegionDefinitions`.
-
-**JSON Definition**
-
-| Parent Object | Key Name | Key Value Type | Default Value |
-| ------------- | -------- | -------------- | ------------- |
-| ImageParameter | RegionDefinitionNameArray | *string Array* | `null` |
-
-
-**JSON Example**
-```
-{
- "RegionDefinitionNameArray":[
- "RegionDefinition1",
- "RegionDefinition2"
- ]
-}
-```
-
-
-## Cost Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`ImageParameter.TerminatePhase`](../terminate-phase.md) | Sets the phase where the algorithm stops. |
- | [`ImageParameter.Timeout`](../time-out.md) | Sets the maximum amount of time (in milliseconds) that should be spent searching for a barcode per page. |
- | [`ImageParameter.MaxAlgorithmThreadCount`](../max-algorithm-thread-count.md) | Sets the number of threads the image processing algorithm will use to decode barcodes. |
- | [`ImageParameter.ExpectedBarcodesCount`](../expected-barcodes-count.md) | Sets the number of barcodes expected to be detected for each image. |
-
-
-## Format Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`ImageParameter.BarcodeFormatIds`](../barcode-format-ids.md) | Sets the formats of the barcode to be read. Barcode formats can be combined. |
- | [`ImageParameter.BarcodeFormatIds_2`](../barcode-format-ids-2.md) | Sets the formats of the barcode in BarcodeFormat group 2 to be read. Barcode formats in BarcodeFormat group 2 can be combined. |
-
-
-## Image Process Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`ImageParameter.BarcodeColourModes`](../barcode-colour-modes.md) | Sets the mode and priority for the barcode colour mode used to process the barcode zone. |
- | [`ImageParameter.BarcodeComplementModes`](../barcode-complement-modes.md) | Sets the mode and priority to complement the missing parts in the barcode. |
- | [`ImageParameter.BinarizationModes`](../binarization-modes.md) | Sets the mode and priority for binarization. |
- | [`ImageParameter.ColourClusteringModes`](../colour-clustering-modes.md) | Sets the mode and priority for colour categorization. Not supported yet. |
- | [`ImageParameter.ColourConversionModes`](../colour-conversion-modes.md) | Sets the mode and priority for converting a colour image to a grayscale image. |
- | [`ImageParameter.DeblurLevel`](../deblur-level.md) | Sets the degree of blurriness of the barcode. |
- | [`ImageParameter.DeblurModes`](../deblur-modes.md) | Sets the mode and priority for deblurring. |
- | [`ImageParameter.DeformationResistingModes`](../deformation-resisting-modes.md) | Sets the mode and priority for deformation resisting. |
- | [`ImageParameter.DPMCodeReadingModes`](../dpm-code-reading-modes.md) | Sets the mode and priority for DPM code reading. |
- | [`ImageParameter.GrayscaleTransformationModes`](../grayscale-transformation-modes.md) | Sets the mode and priority for the grayscale image conversion. |
- | [`ImageParameter.ImagePreprocessingModes`](../image-preprocessing-modes.md) | Sets the mode and priority for image preprocessing algorithms. |
- | [`ImageParameter.LocalizationModes`](../localization-modes.md) | Sets the mode and priority for localization algorithms. |
- | [`ImageParameter.Pages`](../pages.md) | Sets the specific pages or the range of pages of a file (.tiff or .pdf) for barcode searching. |
- | [`ImageParameter.PDFRasterDPI`](../pdf-raster-dpi.md) | Sets the output image resolution. |
- | [`ImageParameter.PDFReadingMode`](../pdf-reading-mode.md) | Sets the way to detect barcodes from a PDF file when using the DecodeFile method. |
- | [`ImageParameter.RegionPredetectionModes`](../region-predetection-modes.md) | Sets the region pre-detection mode for barcodes search. |
- | [`ImageParameter.ScaleDownThreshold`](../scale-down-threshold.md) | Sets the threshold for the image shrinking. |
- | [`ImageParameter.ScaleUpModes`](../scale-up-modes.md) | Sets the mode and priority to control the sampling methods of scale-up for linear barcodes with small module sizes. |
- | [`ImageParameter.TextFilterModes`](../text-filter-modes.md) | Sets the mode and priority for text filter. |
- | [`ImageParameter.TextureDetectionModes`](../texture-detection-modes.md) | Sets the mode and priority for texture detection. |
-
-
-
-## Result Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`ImageParameter.IntermediateResultTypes`](../intermediate-result-types.md) | Sets which types of intermediate result to be kept for further reference. Intermediate result types can be combined. |
- | [`ImageParameter.IntermediateResultSavingMode`](../intermediate-result-saving-mode.md) | Sets the mode for saving the intermediate result. |
- | [`ImageParameter.ResultCoordinateType`](../result-coordinate-type.md) | Specifies the format for the coordinates returned |
- | [`ImageParameter.TextResultOrderModes`](../text-result-order-modes.md) | Sets the mode and priority for the order of the text results returned. |
- | [`ImageParameter.ReturnBarcodeZoneClarity`](../return-barcode-zone-clarity.md) | Sets whether or not to return the clarity of the barcode zone. |
-
-
diff --git a/parameters/reference/image-preprocessing-modes.md b/parameters/reference/image-preprocessing-modes.md
deleted file mode 100644
index 4ea70623..00000000
--- a/parameters/reference/image-preprocessing-modes.md
+++ /dev/null
@@ -1,287 +0,0 @@
----
-layout: default-layout
-title: ImagePreprocessingModes - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for ImagePreprocessingModes.
-keywords: ImagePreprocessingModes, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/image-preprocessing-modes.html
----
-
-
-# ImagePreprocessingModes
-
-This parameter provides some image processing methods to enhance the quality of the grayscale image before reading barcodes. By default, the library does no preprocessing method. Assume your image has distorted features that can be solved by common image processing methods, this parameter may help set the processing mode(s) for getting a higher quality grayscale image.
-
-It consists of one or more modes, each mode is a way to implement the preprocessing algorithm.
-
-
-## Candidate Mode List
-- IPM_GENERAL
-- IPM_GRAY_EQUALIZE
-- IPM_GRAY_SMOOTH
-- IPM_SHARPEN_SMOOTH
-- IPM_MORPHOLOGY
-
-### IPM_GENERAL
-Keeps the original grayscale. This mode has the following arguments for further customizing.
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### IPM_GRAY_EQUALIZE
-Preprocesses the image using the gray equalization algorithm. This mode can be used for images with low contrast on barcode and background colour. This mode has the following arguments for further customizing.
-- [Sensitivity](#sensitivity)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### IPM_GRAY_SMOOTH
-Preprocesses the image using the gray smoothing algorithm. This mode can be used for images with noise or texture. This mode has the following arguments for further customizing.
-- [SmoothBlockSizeX](#smoothblocksizex)
-- [SmoothBlockSizeY](#smoothblocksizey)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### IPM_SHARPEN_SMOOTH
-Preprocesses the image using the sharpening and smoothing algorithm. This mode can be used for blur images. This mode has the following arguments for further customizing.
-- [SmoothBlockSizeX](#smoothblocksizex)
-- [SmoothBlockSizeY](#smoothblocksizey)
-- [SharpenBlockSizeX](#sharpenblocksizex)
-- [SharpenBlockSizeY](#sharpenblocksizey)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### IPM_MORPHOLOGY
-Preprocesses the image using the morphology algorithm. It can be used for images where the barcode area is polluted or destroyed. This mode has the following arguments for further customizing.
-- [MorphOperation](#morphoperation)
-- [MorphShape](#morphshape)
-- [MorphOperationKernelSizeX](#morphoperationkernelsizex)
-- [MorphOperationKernelSizeY](#morphoperationkernelsizey)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-
-
-## Setting Methods
-
-### As `PublicRuntimeSettings` Member
-`ImagePreprocessingModes` can be set dynamically during runtime as a member of `FurtherModes`, which is a member of `PublicRuntimeSettings` struct, it is an array with 8 `ImagePreprocessingMode` Enumeration items.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->imagePreprocessingModes[0] = IPM_GRAY_SMOOTH;
-pSettings->imagePreprocessingModes[1] = IPM_GRAY_EQUALIZE;
-reader->UpdateRuntimeSettings(pSettings);
-reader->SetModeArgument("ImagePreprocessingModes", 1, "Sensitivity", "1");
-delete pSettings;
-//...other codes
-```
-
-
-**Remarks**
-`GetModeArgument` and `SetModeArgument` need to be called for getting and setting [`Arguments`](#candidate-argument-list).
-
-
-**See Also**
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- `ImagePreprocessingMode:` [JavaScript]({{ site.js_enumerations }}EnumImagePreprocessingMode.html) \| [C]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=c#imagepreprocessingmode) \| [C++]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=cpp#imagepreprocessingmode) \| [.NET]({{ site.dotnet_enumerations }}parameter-mode-enums.html#imagepreprocessingmode) \| [Python]({{ site.python_enumerations }}parameter-mode-enums.html#imagepreprocessingmode) \| [Java]({{ site.java_enumerations }}parameter-mode-enums.html#imagepreprocessingmode) \| [Java-Android]({{ site.mobile_enumerations }}image-preprocessing-mode.html?lang=android) \| [Objective-C & Swift]({{ site.mobile_enumerations }}image-preprocessing-mode.html?lang=objc,swift)
-- `GetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#getmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_getmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#getmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#get_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument)
-- `SetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#setmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_setmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#setmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#set_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument)
-
-
-### As JSON Parameter
-`ImagePreprocessingModes` as a JSON parameter is a JSON Object array. Each JSON object is defined as below.
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| Mode | Any one in Candidate Mode List as string | (Required) Sets a preprocessing mode. |
-| Sensitivity | A number from value range of Sensitivity | (Optional) Sets the Argument [Sensitivity](#sensitivity). |
-| SmoothBlockSizeX | A number from value range of SmoothBlockSizeX | (Optional) Sets the Argument [SmoothBlockSizeX](#smoothblocksizex). |
-| SmoothBlockSizeY | A number from value range of SmoothBlockSizeY | (Optional) Sets the Argument [SmoothBlockSizeY](#smoothblocksizey). |
-| SharpenBlockSizeX | A number from value range of SharpenBlockSizeX | (Optional) Sets the Argument [SmoothBlockSizeX](#sharpenblocksizex). |
-| SharpenBlockSizeY | A number from value range of SharpenBlockSizeY | (Optional) Sets the Argument [SmoothBlockSizeY](#sharpenblocksizey). |
-| MorphOperation | A string from value range of MorphOperation | (Optional) Sets the Argument [MorphOperation](#morphoperation). |
-| MorphOperation | A string from value range of MorphOperation | (Optional) Sets the Argument [MorphOperation](#morphoperation). |
-| MorphOperationKernelSizeX | A number from value range of MorphOperationKernelSizeX | (Optional) Sets the Argument [MorphOperationKernelSizeX](#morphoperationkernelsizex). |
-| MorphOperationKernelSizeY | A number from value range of MorphOperationKernelSizeY | (Optional) Sets the Argument [MorphOperationKernelSizeY](#morphoperationkernelsizey). |
-| LibraryFileName | A string from value range of LibraryFileName | (Optional) Sets the Argument [LibraryFileName](#libraryfilename). |
-| LibraryParameters | A string from value range of LibraryParameters | (Optional) Sets the Argument [LibraryParameters](#libraryparameters). |
-
-
-
-**JSON Parameter Example**
-```
-{
- "ImagePreprocessingModes": [
- {
- "Mode": "IPM_GRAY_SMOOTH",
- "SmoothBlockSizeX": 5,
- "SmoothBlockSizeY": 5
- },
- {
- "Mode": "IPM_GRAY_EQUALIZE",
- "Sensitivity": 1
- }
- ]
-}
-```
-
-
-
-
-
-
-## Candidate Argument List
-- [Sensitivity](#sensitivity)
-- [SmoothBlockSizeX](#smoothblocksizex)
-- [SmoothBlockSizeY](#smoothblocksizey)
-- [SharpenBlockSizeX](#sharpenblocksizex)
-- [SharpenBlockSizeY](#sharpenblocksizey)
-- [MorphOperation](#morphoperation)
-- [MorphShape](#morphshape)
-- [MorphOperationKernelSizeX](#morphoperationkernelsizex)
-- [MorphOperationKernelSizeY](#morphoperationkernelsizey)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-
-### Sensitivity
-Sets the sensitivity to perform the equalization process. A larger value means a higher possibility that gray equalization will be activated.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [1, 9] | 5 | IPM_GRAY_EQUALIZE |
-
-**Performance Adaptability**
-A larger value may cause adverse effect on Speed and Read Rate on images with a high level of contrast.
-
-### SmoothBlockSizeX
-Sets the horizontal block size for the smoothing process.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [3, 1000] | 3 | IPM_GRAY_SMOOTH IPM_SHARPEN_SMOOTH |
-
-**Remarks**
-Block size refers to the size of a pixel neighborhood used to calculate a threshold value for the pixel.
-
-
-**Performance Adaptability**
-Setting this to an appropriate value ( 5 - 8 times module size is recommended ) may improve the Read Rate.
-
-
-### SmoothBlockSizeY
-Sets the vertical block size for the smoothing process.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [3, 1000] | 3 | IPM_GRAY_SMOOTH IPM_SHARPEN_SMOOT |
-
-**Remarks**
-Block size refers to the size of a pixel neighborhood used to calculate a threshold value for the pixel.
-
-**Performance Adaptability**
-Setting this to an appropriate value ( 5 - 8 times module size is recommended ) may improve the Read Rate.
-
-### SharpenBlockSizeX
-Sets the horizontal block size for the sharpening process.
-
-| Value Type | Value Range | Default Value |
-| ---------- | ----------- | ------------- |
-| *int* | [3, 1000] | 3 | IPM_SHARPEN_SMOOTH |
-
-**Remarks**
- Block size refers to the size of a pixel neighborhood used to calculate the threshold for the pixel. An appropriate value can help increase the accuracy of barcode localization.
-
-
-### SharpenBlockSizeY
-Sets the vertical block size for the sharpening process.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [3, 1000] | 3 | IPM_SHARPEN_SMOOTH |
-
-**Remarks**
- Block size refers to the size of a pixel neighborhood used to calculate the threshold for the pixel. An appropriate value can help increase the accuracy of barcode localization.
-
-
-
-### MorphOperation
-Sets the morph operation for the morphology process.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | `Erode` `Dilate` `Open` `Close` | `Close` | IPM_MORPHOLOGY |
-
-**Remarks**
- - `Erode`: Perform erosion process.
- - `Dilate`: Perform dilation process.
- - `Open`: Perform erosion first, then perform dilation.
- - `Close`: Perform dilation first, then perform erosion.
-
- For more information, please check out [Image Processing in OpenCV - Morphological Transformations](https://docs.opencv.org/master/d9/d61/tutorial_py_morphological_ops.html) for reference.
-
-
-### MorphShape
- Sets the morph shape for the morphology process.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | `Rectangle` `Cross` `Ellipse` | `Rectangle` | IPM_MORPHOLOGY |
-
-
-### MorphOperationKernelSizeX
-Sets the horizontal kernel size for the morphology process.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [0, 1000] | 0 | IPM_MORPHOLOGY |
-
-
-
-### MorphOperationKernelSizeY
- Sets the vertical kernel size for the morphology process.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [0, 1000] | 0 | IPM_MORPHOLOGY |
-
-
-
-### LibraryFileName
-Sets the file name of the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing file name. | "" | All modes |
-
-
-**Remarks**
- The library must be in the same place with Dynamsoft Barcode Reader Library.
-
-
-### LibraryParameters
-Sets the parameters passed to the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | ----------- |
-| *string* | A string value representing parameters. | "" | All modes |
-
-
-## Related Articles
-- [How to configure the ImagePreprocessingModes parameter]({{ site.scenario_settings }}image-preprocessing.html)
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
diff --git a/parameters/reference/index-v10.0.0.md b/parameters/reference/index-v10.0.0.md
deleted file mode 100644
index 6b806315..00000000
--- a/parameters/reference/index-v10.0.0.md
+++ /dev/null
@@ -1,121 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Reference - Main Page
-description: Dynamsoft Barcode Reader Parameter Reference - Main Page
-keywords: barcode reader parameter, parameter reference, parameters
-needAutoGenerateSidebar: false
-permalink: /parameters/reference/index-v10.0.0.html
----
-
-# Parameter Reference
-
-## Capture Vision Template
-
-| Parameter Name | Description |
-| -------------- | ----------- |
-| [`ImageROIProcessingNameArray`]({{ site.dcv_parameters_reference }}capture-vision-template/image-roi-processing-name-array.html) | Defines the collection of image ROI processing object names, used to refer to the `TargetROIDef` objects. |
-| [`ImageSourceName`]({{ site.dcv_parameters_reference }}capture-vision-template/image-source-name.html) | Indicates the input source name, used to refer to the `ImageSource` object. |
-| [`MaxParallelTasks`]({{ site.dcv_parameters_reference }}capture-vision-template/max-parallel-tasks.html) | Defines the maximum number of parallel tasks for the DCV runtime. |
-| [`OutputRawImage`]({{ site.dcv_parameters_reference }}capture-vision-template/output-raw-Image.html) | Indicates whether DCV finally outputs the original input image. |
-| [`Timeout`]({{ site.dcv_parameters_reference }}capture-vision-template/timeout.html) | Defines the maximum amount of time (in milliseconds) that should be spent processing each image or frame. |
-
-## Target ROI Def
-
-| Parameter Name | Description |
-| --------------- | ----------- |
-| [`BaseTargetROIDefName`]({{ site.dcv_parameters_reference }}target-roi-def/base-target-roidef-name.html) | Represents the name of another `TargetROIDef` object to inherit from. |
-| [`Location`]({{ site.dcv_parameters_reference }}target-roi-def/location.html) | Defines the location of the TargetROI with `reference objects` filter conditions and `offset` parameters. |
-| [`PauseFlag`]({{ site.dcv_parameters_reference }}target-roi-def/pause-flag.html) | Indicates that the region results generated by this `TargetROIDef` will not be used by other `TargetROIDef` objects that depend on it to calculate the target regions, unless the user explicitly performs an update operation. |
-| [`TaskSettingNameArray`]({{ site.dcv_parameters_reference }}target-roi-def/task-setting-name-array.html) | Parameter `TaskSettingNameArray` represents the collection of task setting object names, used to refer to the `BarcodeReaderTaskSetting`, `LabelRecognizerTaskSetting`, `DocumentNormalizerTaskSetting` objects. |
-
-## Barcode Reader Task Setting
-
-| Parameter Name | Description |
-| -------------- | ----------- |
-| [`BarcodeColourModes`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/barcode-colour-modes.html) | Defines the barcode colour modes. |
-| [`BarcodeComplementModes`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/barcode-complement-modes.html) | Defines how to complement the missing parts of a barcode. |
-| [`BarcodeFormatIds`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/barcode-format-ids.html) | Defines the formats of the barcode to process. |
-| [`BaseBarcodeReaderTaskSettingName`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/base-barcode-reader-task-setting-name.html) | Represents the name of another `BarcodeReaderTaskSetting` object to inherit from. |
-| [`DeblurModes`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/deblur-modes.html) | Defines the mode and priority for deblurring. |
-| [`DeformationResistingModes`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/deformation-resisting-modes.html) | Defines how to handle distorted and deformed barcodes. |
-| [`DPMCodeReadingModes`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/dpm-code-reading-modes.html) | Defines how to read direct part mark (DPM) barcodes. |
-| [`ExpectedBarcodesCount`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/expected-barcodes-count.html) | Defines the number of barcodes expected to be detected. |
-| [`LocalizationModes`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/localization-modes.html) | Defines how to localize barcodes. |
-| [`ReturnBarcodeZoneClarity`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/return-barcode-zone-clarity.html) | Defines whether to return the clarity of the barcode zone. |
-| [`TextResultOrderModes`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/text-result-order-modes.html) | Defines the order of the returned text results. |
-
-## ImageParameter
-
-| Parameter Name | Description |
-| ---------------------------------- | ----------- |
-| [`BaseImageParameterName`]({{ site.dcv_parameters_reference }}image-parameter/base-image-parameter-name.html) | Represents the name of another `ImageParameter` object to inherit from. |
-| [`BinarizationModes`]({{ site.dcv_parameters_reference }}image-parameter/binarization-modes.html) | Defines the process of binarization |
-| [`ColourConversionModes`]({{ site.dcv_parameters_reference }}image-parameter/colour-conversion-modes.html) | Defines how to convert a colour image to a grayscale image. |
-| [`GrayscaleEnhancementModes`]({{ site.dcv_parameters_reference }}image-parameter/grayscale-enhancement-modes.html) | Defines the image processing methods to enhance the quality of the grayscale image. |
-| [`GrayscaleTransformationModes`]({{ site.dcv_parameters_reference }}image-parameter/grayscale-transformation-modes.html) | Defines whether or not to invert the color of the grayscale image. |
-| [`IfEraseTextZone`]({{ site.dcv_parameters_reference }}image-parameter/if-erase-text-zone.html) | Defines whether to erase the detected text zone. |
-| [`RegionPredetectionModes`]({{ site.dcv_parameters_reference }}image-parameter/region-predetection-modes.html) | Defines how to find a region of interest (ROI) within the image or frame. |
-| [`ScaleDownThreshold`]({{ site.dcv_parameters_reference }}image-parameter/scale-down-threshold.html) | Defines the threshold for image shrinking. |
-| [`ScaleUpModes`]({{ site.dcv_parameters_reference }}image-parameter/scale-up-modes.html) | Defines the scale-up process when targets in the image are too small. |
-| [`TextDetectionMode`]({{ site.dcv_parameters_reference }}image-parameter/text-detection-mode.html) | Defines how to detect the text area. |
-| [`TextureDetectionModes`]({{ site.dcv_parameters_reference }}image-parameter/texture-detection-modes.html) | Defines how to detect texture on an image. |
-
-## Barcode Format Specification
-
-| Parameter Name | Description |
-| ---------------- | ----------- |
-| [`AllModuleDeviation`]({{ site.dcv_parameters_reference }}barcode-format-specification/all-module-deviation.html) | Defines the width deviation value (in moduleSize) of a non-standard 1D barcode type relative to the standard barcode width. |
-| [`AustralianPostEncodingTable`]({{ site.dcv_parameters_reference }}barcode-format-specification/australian-post-encoding-table.html) | Defines the encoding table used to code the Customer Information Field of Australian Post Customer Barcode. |
-| [`BarcodeAngleRangeArray`]({{ site.dcv_parameters_reference }}barcode-format-specification/barcode-angle-range-array.html) | Defines the range of angles (in degrees) for barcodes searching and result filtering. |
-| [`BarcodeBytesLengthRangeArray`]({{ site.dcv_parameters_reference }}barcode-format-specification/barcode-bytes-length-range-array.html) | Defines the range of barcode bytes length for barcodes searching and result filtering. |
-| [`BarcodeHeightRangeArray`]({{ site.dcv_parameters_reference }}barcode-format-specification/barcode-height-range-array.html) | Defines the range of heights (in pixels) for barcodes searching and result filtering. |
-| [`BarcodeTextLengthRangeArray`]({{ site.dcv_parameters_reference }}barcode-format-specification/barcode-text-length-range-array.html) | Defines the range of barcode text length for barcodes searching and result filtering. |
-| [`BarcodeTextRegExPattern`]({{ site.dcv_parameters_reference }}barcode-format-specification/barcode-text-regex-pattern.html) | Defines the regular expression pattern of barcode text characters for barcodes searching and result filtering. |
-| [`BarcodeWidthRangeArray`]({{ site.dcv_parameters_reference }}barcode-format-specification/barcode-width-range-array.html) | Defines the range of widths (in pixels) for barcodes searching and result filtering. |
-| [`BarcodeZoneBarCountRangeArray`]({{ site.dcv_parameters_reference }}barcode-format-specification/barcode-zone-bar-count-range-array.html) | Defines the range of bar count of the barcode zone for barcodes searching. |
-| [`BarcodeZoneMinDistanceToImageBorders`]({{ site.dcv_parameters_reference }}barcode-format-specification/barcode-zone-min-distance-to-image-borders.html) | Defines the minimum distance (in pixels) between the barcode zone and image borders. |
-| [`Code128Subset`]({{ site.dcv_parameters_reference }}barcode-format-specification/code128-subset.html) | Defines the subset of Code 128. |
-| [`EnableAddOnCode`]({{ site.dcv_parameters_reference }}barcode-format-specification/enable-addon-code.html) | Defines whether to identify addon code. |
-| [`EnableDataMatrixECC000-140`]({{ site.dcv_parameters_reference }}barcode-format-specification/enable-data-matrix-ecc000-140.html) | Defines whether to read Data Matrix ECC000-140 barcode. |
-| [`EnableQRCodeModel1`]({{ site.dcv_parameters_reference }}barcode-format-specification/enable-qr-code-model-1.html) | Defines whether to read QR code model 1. |
-| [`FindUnevenModuleBarcode`]({{ site.dcv_parameters_reference }}barcode-format-specification/find-uneven-module-barcode.html) | Defines whether to find barcodes with uneven barcode modules. |
-| [`HeadModuleRatio`]({{ site.dcv_parameters_reference }}barcode-format-specification/head-module-ratio.html) | Defines the module count and module size ratio of the barcode head section. |
-| [`MinQuietZoneWidth`]({{ site.dcv_parameters_reference }}barcode-format-specification/min-quiet-zone-width.html) | Defines the minimum width (in moduleSize) of the barcode quiet zone. |
-| [`MinRatioOfBarcodeZoneWidthToHeight`]({{ site.dcv_parameters_reference }}barcode-format-specification/min-ratio-of-barcode-zone-width-to-height.html) | Defines the minimum ratio (width/height as a percentage) of the barcode zone. |
-| [`MinResultConfidence`]({{ site.dcv_parameters_reference }}barcode-format-specification/min-result-confidence.html) | Defines the minimum confidence of the result. |
-| [`MirrorMode`]({{ site.dcv_parameters_reference }}barcode-format-specification/mirror-mode.html) | Defines whether to decode mirrored barcodes. |
-| [`ModuleSizeRangeArray`]({{ site.dcv_parameters_reference }}barcode-format-specification/module-size-range-array.html) | Defines the range of module size (in pixels) while barcode searching and result filtering. |
-| [`MSICodeCheckDigitCalculation`]({{ site.dcv_parameters_reference }}barcode-format-specification/msi-code-check-digit-calculation.html) | Defines the scheme used for calculating a check digit of an MSI barcode. |
-| [`PartitionModes`]({{ site.dcv_parameters_reference }}barcode-format-specification/partition-modes.html) | Defines the mode to apply partition process when decoding QRCode and DataMatrix. |
-| [`PatchCodeSearchingMargin`]({{ site.dcv_parameters_reference }}barcode-format-specification/patch-code-searching-margins.html) | Defines the patch code searching margins. |
-| [`RequireStartStopChars`]({{ site.dcv_parameters_reference }}barcode-format-specification/require-start-stop-chars.html) | Defines whether the start and stop characters are required when searching for common 1D barcodes. |
-| [`ReturnPartialBarcodeValue`]({{ site.dcv_parameters_reference }}barcode-format-specification/return-partial-barcode-value.html) | Defines whether to return partial barcode value(s). |
-| [`StandardFormat`]({{ site.dcv_parameters_reference }}barcode-format-specification/standard-format.html) | Defines the standard barcode format. |
-| [`TailModuleRatio`]({{ site.dcv_parameters_reference }}barcode-format-specification/tail-module-ratio.html) | Defines the module count and module size ratio of the barcode tail section. |
-| [`VerifyCheckDigit`]({{ site.dcv_parameters_reference }}barcode-format-specification/verify-check-digit.html) | Defines whether to verify the check digit in barcodes where this check digit is optional. |
-
-## Image Source Options
-
-| Parameter Name | Description |
-| -------------------- | ----------- |
-| [`FileFilter`]({{ site.dcv_parameters_reference }}image-source-options/file-filter.html) | Defines a file name filter string, which determines which files are fetched. |
-| [`PDFReadingMode`]({{ site.dcv_parameters_reference }}image-source-options/pdf-reading-mode.html) | Defines how to handle PDF files. |
-| [`Recursive`]({{ site.dcv_parameters_reference }}image-source-options/recursive.html) | Defines whether to fetch files recursively. |
-| [`Type`]({{ site.dcv_parameters_reference }}image-source-options/type.html) | Defines the type of the ImageSource object, which helps CVR create the correct type of image source. |
-
-## Global Parameter
-
-| Parameter Name | Description |
-| ---------------------------- | ----------- |
-| [`MaxTotalImageDimension`]({{ site.dcv_parameters_reference }}global-parameter/max-total-image-dimension.html) | Defines the maximum total dimension of the images that read in the memory. |
-
-## Shared Parameter
-
-| Parameter Name | Description |
-| --------------- | ----------- |
-| [`DirectoryPath`]({{ site.dcv_parameters_reference }}shared-parameter/directory-path.html) | Defines a path when the library have to read files. |
-| [`MaxThreadsInOneTask`]({{ site.dcv_parameters_reference }}shared-parameter/max-threads-in-one-task.html) | Defines the maximum threads that can be consumed in one task. |
-| [`Name`]({{ site.dcv_parameters_reference }}shared-parameter/name.html) | Represents the name of the top-level objects in Dynamsoft Capture Vision Parameter Template, which serves as its unique identifier. |
-| [`SectionImageParameterArray`]({{ site.dcv_parameters_reference }}shared-parameter/section-image-parameter-array.html) | Defines the image processing algorithms that implemented in the task. |
-| [`StartSection`]({{ site.dcv_parameters_reference }}shared-parameter/start-section.html) | Defines the start section of the algorithm task. |
-| [`TerminateSetting`]({{ site.dcv_parameters_reference }}shared-parameter/terminate-setting.html) | Defines the terminate stages of the task. |
\ No newline at end of file
diff --git a/parameters/reference/index-v10.0.10.md b/parameters/reference/index-v10.0.10.md
deleted file mode 100644
index 48ad3b6d..00000000
--- a/parameters/reference/index-v10.0.10.md
+++ /dev/null
@@ -1,121 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Reference - Main Page
-description: Dynamsoft Barcode Reader Parameter Reference - Main Page
-keywords: barcode reader parameter, parameter reference, parameters
-needAutoGenerateSidebar: false
----
-
-# Parameter Reference
-
-## Capture Vision Template
-
-| Parameter Name | Description |
-| -------------- | ----------- |
-| [`ImageROIProcessingNameArray`]({{ site.dcv_parameters_reference }}capture-vision-template/image-roi-processing-name-array.html) | Defines the collection of image ROI processing object names, used to refer to the `TargetROIDef` objects. |
-| [`ImageSourceName`]({{ site.dcv_parameters_reference }}capture-vision-template/image-source-name.html) | Indicates the input source name, used to refer to the `ImageSource` object. |
-| [`MaxParallelTasks`]({{ site.dcv_parameters_reference }}capture-vision-template/max-parallel-tasks.html) | Defines the maximum number of parallel tasks for the DCV runtime. |
-| [`Name`]({{ site.dcv_parameters_reference }}capture-vision-template/name.html) | Defines the name of a `CaptureVisionTemplate` object, which serves as its unique identifier. |
-| [`OutputOriginalImage`]({{ site.dcv_parameters_reference }}capture-vision-template/output-original-Image.html) | Indicates whether DCV finally outputs the original input image. |
-| [`Timeout`]({{ site.dcv_parameters_reference }}capture-vision-template/timeout.html) | Defines the maximum amount of time (in milliseconds) that should be spent processing each image or frame. |
-
-## Target ROI Def
-
-| Parameter Name | Description |
-| --------------- | ----------- |
-| [`BaseTargetROIDefName`]({{ site.dcv_parameters_reference }}target-roi-def/base-target-roidef-name.html) | Represents the name of another `TargetROIDef` object to inherit from. |
-| [`Location`]({{ site.dcv_parameters_reference }}target-roi-def/location.html) | Defines the location of the TargetROI with `reference objects` filter conditions and `offset` parameters. |
-| [`Name`]({{ site.dcv_parameters_reference }}target-roi-def/name.html) | Defines the name of a `TargetROIDef` object, which serves as its unique identifier. |
-| [`PauseFlag`]({{ site.dcv_parameters_reference }}target-roi-def/pause-flag.html) | Indicates that the region results generated by this `TargetROIDef` will not be used by other `TargetROIDef` objects that depend on it to calculate the target regions, unless the user explicitly performs an update operation. |
-| [`TaskSettingNameArray`]({{ site.dcv_parameters_reference }}target-roi-def/task-setting-name-array.html) | Parameter `TaskSettingNameArray` represents the collection of task setting object names, used to refer to the `BarcodeReaderTaskSetting`, `LabelRecognizerTaskSetting`, `DocumentNormalizerTaskSetting` objects. |
-
-## Barcode Reader Task Setting
-
-| Parameter Name | Description |
-| -------------- | ----------- |
-| [`BarcodeColourModes`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/barcode-colour-modes.html) | Defines the barcode colour modes. |
-| [`BarcodeComplementModes`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/barcode-complement-modes.html) | Defines how to complement the missing parts of a barcode. |
-| [`BarcodeFormatIds`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/barcode-format-ids.html) | Defines the formats of the barcode to process. |
-| [`BaseBarcodeReaderTaskSettingName`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/base-barcode-reader-task-setting-name.html) | Represents the name of another `BarcodeReaderTaskSetting` object to inherit from. |
-| [`DeblurModes`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/deblur-modes.html) | Defines the mode and priority for deblurring. |
-| [`DeformationResistingModes`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/deformation-resisting-modes.html) | Defines how to handle distorted and deformed barcodes. |
-| [`DPMCodeReadingModes`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/dpm-code-reading-modes.html) | Defines how to read direct part mark (DPM) barcodes. |
-| [`ExpectedBarcodesCount`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/expected-barcodes-count.html) | Defines the number of barcodes expected to be detected. |
-| [`LocalizationModes`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/localization-modes.html) | Defines how to localize barcodes. |
-| [`MaxThreadsInOneTask`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/max-threads-in-one-task.html) | Defines the maximum threads that can be consumed in one task. |
-| [`Name`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/name.html) | Defines the name of a `BarcodeReaderTaskSetting` object, which serves as its unique identifier. |
-| [`ReturnBarcodeZoneClarity`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/return-barcode-zone-clarity.html) | Defines whether to return the clarity of the barcode zone. |
-| [`SectionImageParameterArray`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/section-image-parameter-array.html) | Defines `ImageParameter` in section unit. |
-| [`StartSection`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/start-section.html) | Defines the start section of the algorithm task. |
-| [`TerminateSetting`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/terminate-setting.html) | Defines the terminate stages of the task. |
-| [`TextResultOrderModes`]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/text-result-order-modes.html) | Defines the order of the returned text results. |
-
-## ImageParameter
-
-| Parameter Name | Description |
-| ---------------------------------- | ----------- |
-| [`BaseImageParameterName`]({{ site.dcv_parameters_reference }}image-parameter/base-image-parameter-name.html) | Represents the name of another `ImageParameter` object to inherit from. |
-| [`BinarizationModes`]({{ site.dcv_parameters_reference }}image-parameter/binarization-modes.html) | Defines the process of binarization |
-| [`ColourConversionModes`]({{ site.dcv_parameters_reference }}image-parameter/colour-conversion-modes.html) | Defines how to convert a colour image to a grayscale image. |
-| [`GrayscaleEnhancementModes`]({{ site.dcv_parameters_reference }}image-parameter/grayscale-enhancement-modes.html) | Defines the image processing methods to enhance the quality of the grayscale image. |
-| [`GrayscaleTransformationModes`]({{ site.dcv_parameters_reference }}image-parameter/grayscale-transformation-modes.html) | Defines whether or not to invert the color of the grayscale image. |
-| [`IfEraseTextZone`]({{ site.dcv_parameters_reference }}image-parameter/if-erase-text-zone.html) | Defines whether to erase the detected text zone. |
-| [`Name`]({{ site.dcv_parameters_reference }}image-parameter/name.html) | Defines the name of a `ImageParameter` object, which serves as its unique identifier. |
-| [`RegionPredetectionModes`]({{ site.dcv_parameters_reference }}image-parameter/region-predetection-modes.html) | Defines how to find a region of interest (ROI) within the image or frame. |
-| [`ScaleDownThreshold`]({{ site.dcv_parameters_reference }}image-parameter/scale-down-threshold.html) | Defines the threshold for image shrinking. |
-| [`ScaleUpModes`]({{ site.dcv_parameters_reference }}image-parameter/scale-up-modes.html) | Defines the scale-up process when targets in the image are too small. |
-| [`TextDetectionMode`]({{ site.dcv_parameters_reference }}image-parameter/text-detection-mode.html) | Defines how to detect the text area. |
-| [`TextureDetectionModes`]({{ site.dcv_parameters_reference }}image-parameter/texture-detection-modes.html) | Defines how to detect texture on an image. |
-
-## Barcode Format Specification
-
-| Parameter Name | Description |
-| ---------------- | ----------- |
-| [`AllModuleDeviation`]({{ site.dcv_parameters_reference }}barcode-format-specification/all-module-deviation.html) | Defines the width deviation value (in moduleSize) of a non-standard 1D barcode type relative to the standard barcode width. |
-| [`AustralianPostEncodingTable`]({{ site.dcv_parameters_reference }}barcode-format-specification/australian-post-encoding-table.html) | Defines the encoding table used to code the Customer Information Field of Australian Post Customer Barcode. |
-| [`BarcodeAngleRangeArray`]({{ site.dcv_parameters_reference }}barcode-format-specification/barcode-angle-range-array.html) | Defines the range of angles (in degrees) for barcodes searching and result filtering. |
-| [`BarcodeBytesLengthRangeArray`]({{ site.dcv_parameters_reference }}barcode-format-specification/barcode-bytes-length-range-array.html) | Defines the range of barcode bytes length for barcodes searching and result filtering. |
-| [`BarcodeHeightRangeArray`]({{ site.dcv_parameters_reference }}barcode-format-specification/barcode-height-range-array.html) | Defines the range of heights (in pixels) for barcodes searching and result filtering. |
-| [`BarcodeTextLengthRangeArray`]({{ site.dcv_parameters_reference }}barcode-format-specification/barcode-text-length-range-array.html) | Defines the range of barcode text length for barcodes searching and result filtering. |
-| [`BarcodeTextRegExPattern`]({{ site.dcv_parameters_reference }}barcode-format-specification/barcode-text-regex-pattern.html) | Defines the regular expression pattern of barcode text characters for barcodes searching and result filtering. |
-| [`BarcodeWidthRangeArray`]({{ site.dcv_parameters_reference }}barcode-format-specification/barcode-width-range-array.html) | Defines the range of widths (in pixels) for barcodes searching and result filtering. |
-| [`BarcodeZoneBarCountRangeArray`]({{ site.dcv_parameters_reference }}barcode-format-specification/barcode-zone-bar-count-range-array.html) | Defines the range of bar count of the barcode zone for barcodes searching. |
-| [`BarcodeZoneMinDistanceToImageBorders`]({{ site.dcv_parameters_reference }}barcode-format-specification/barcode-zone-min-distance-to-image-borders.html) | Defines the minimum distance (in pixels) between the barcode zone and image borders. |
-| [`Code128Subset`]({{ site.dcv_parameters_reference }}barcode-format-specification/code128-subset.html) | Defines the subset of Code 128. |
-| [`EnableAddOnCode`]({{ site.dcv_parameters_reference }}barcode-format-specification/enable-addon-code.html) | Defines whether to identify addon code. |
-| [`EnableDataMatrixECC000-140`]({{ site.dcv_parameters_reference }}barcode-format-specification/enable-data-matrix-ecc000-140.html) | Defines whether to read Data Matrix ECC000-140 barcode. |
-| [`EnableQRCodeModel1`]({{ site.dcv_parameters_reference }}barcode-format-specification/enable-qr-code-model-1.html) | Defines whether to read QR code model 1. |
-| [`FindUnevenModuleBarcode`]({{ site.dcv_parameters_reference }}barcode-format-specification/find-uneven-module-barcode.html) | Defines whether to find barcodes with uneven barcode modules. |
-| [`HeadModuleRatio`]({{ site.dcv_parameters_reference }}barcode-format-specification/head-module-ratio.html) | Defines the module count and module size ratio of the barcode head section. |
-| [`MinQuietZoneWidth`]({{ site.dcv_parameters_reference }}barcode-format-specification/min-quiet-zone-width.html) | Defines the minimum width (in moduleSize) of the barcode quiet zone. |
-| [`MinRatioOfBarcodeZoneWidthToHeight`]({{ site.dcv_parameters_reference }}barcode-format-specification/min-ratio-of-barcode-zone-width-to-height.html) | Defines the minimum ratio (width/height as a percentage) of the barcode zone. |
-| [`MinResultConfidence`]({{ site.dcv_parameters_reference }}barcode-format-specification/min-result-confidence.html) | Defines the minimum confidence of the result. |
-| [`MirrorMode`]({{ site.dcv_parameters_reference }}barcode-format-specification/mirror-mode.html) | Defines whether to decode mirrored barcodes. |
-| [`ModuleSizeRangeArray`]({{ site.dcv_parameters_reference }}barcode-format-specification/module-size-range-array.html) | Defines the range of module size (in pixels) while barcode searching and result filtering. |
-| [`MSICodeCheckDigitCalculation`]({{ site.dcv_parameters_reference }}barcode-format-specification/msi-code-check-digit-calculation.html) | Defines the scheme used for calculating a check digit of an MSI barcode. |
-| [`Name`]({{ site.dcv_parameters_reference }}barcode-format-specification/name.html) | Defines the name of a `BarcodeFormatSpecification` object, which serves as its unique identifier. |
-| [`PartitionModes`]({{ site.dcv_parameters_reference }}barcode-format-specification/partition-modes.html) | Defines the mode to apply partition process when decoding QRCode and DataMatrix. |
-| [`PatchCodeSearchingMargin`]({{ site.dcv_parameters_reference }}barcode-format-specification/patch-code-searching-margins.html) | Defines the patch code searching margins. |
-| [`RequireStartStopChars`]({{ site.dcv_parameters_reference }}barcode-format-specification/require-start-stop-chars.html) | Defines whether the start and stop characters are required when searching for common 1D barcodes. |
-| [`ReturnPartialBarcodeValue`]({{ site.dcv_parameters_reference }}barcode-format-specification/return-partial-barcode-value.html) | Defines whether to return partial barcode value(s). |
-| [`StandardFormat`]({{ site.dcv_parameters_reference }}barcode-format-specification/standard-format.html) | Defines the standard barcode format. |
-| [`TailModuleRatio`]({{ site.dcv_parameters_reference }}barcode-format-specification/tail-module-ratio.html) | Defines the module count and module size ratio of the barcode tail section. |
-| [`VerifyCheckDigit`]({{ site.dcv_parameters_reference }}barcode-format-specification/verify-check-digit.html) | Defines whether to verify the check digit in barcodes where this check digit is optional. |
-
-## Image Source Options
-
-| Parameter Name | Description |
-| -------------------- | ----------- |
-| [`DirectoryPath`]({{ site.dcv_parameters_reference }}image-source-options/directory-path.html) | Defines a path when the library have to read files. |
-| [`FileFilter`]({{ site.dcv_parameters_reference }}image-source-options/file-filter.html) | Defines a file name filter string, which determines which files are fetched. |
-| [`Name`]({{ site.dcv_parameters_reference }}image-source-options/name.html) | Defines the name of a `ImageSource` object, which serves as its unique identifier. |
-| [`PDFReadingMode`]({{ site.dcv_parameters_reference }}image-source-options/pdf-reading-mode.html) | Defines how to handle PDF files. |
-| [`Recursive`]({{ site.dcv_parameters_reference }}image-source-options/recursive.html) | Defines whether to fetch files recursively. |
-| [`Type`]({{ site.dcv_parameters_reference }}image-source-options/type.html) | Defines the type of the ImageSource object, which helps CVR create the correct type of image source. |
-
-## Global Parameter
-
-| Parameter Name | Description |
-| ---------------------------- | ----------- |
-| [`MaxTotalImageDimension`]({{ site.dcv_parameters_reference }}global-parameter/max-total-image-dimension.html) | Defines the maximum total dimension of the images that read in the memory. |
-
diff --git a/parameters/reference/index-v7.6.0.md b/parameters/reference/index-v7.6.0.md
deleted file mode 100644
index e33954f3..00000000
--- a/parameters/reference/index-v7.6.0.md
+++ /dev/null
@@ -1,67 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Parameter Reference - Main Page
-description: Dynamsoft Barcode Reader Parameter Reference - Main Page
-keywords: parameter reference, parameters
-needAutoGenerateSidebar: false
----
-
-
-# Parameter Reference
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`AccompanyingTextRecognitionModes`](accompanying-text-recognition-modes.md) | Sets the mode and priority to recognize accompanying text. |
- | [`AllModuleDeviation`](all-module-deviation.md) | Set the module size deviation from the standard barcode module size. |
- | [`AustralianPostEncodingTable`](australian-post-encoding-table.md) | Set the encoding table used to code the Customer Information Field of Australian Post Customer Barcode. |
- | [`BarcodeAngleRangeArray`](barcode-angle-range-array.md) | Sets the range of angles (in degrees) for barcodes searching. |
- | [`BarcodeBytesLengthRangeArray`](barcode-bytes-length-range-array.md) | Sets the range of barcode bytes length for barcodes searching. |
- | [`BarcodeBytesRegExPattern`](barcode-bytes-regex-pattern.md) | Specifies the regular express pattern of barcode byte characters. |
- | [`BarcodeColourModes`](barcode-colour-modes.md) | Sets the mode and priority for the barcode colour mode used to process the barcode zone. |
- | [`BarcodeComplementModes`](barcode-complement-modes.md) | Sets the mode and priority to complement the missing parts in the barcode. |
- | [`BarcodeFormatIds`](barcode-format-ids.md) | Sets the formats of the barcode to be read. Barcode formats can be combined. |
- | [`BarcodeFormatIds_2`](barcode-format-ids-2.md) | Sets the formats of the barcode in BarcodeFormat group 2 to be read. Barcode formats in BarcodeFormat group 2 can be combined. |
- | [`BarcodeHeightRangeArray`](barcode-height-range-array.md) | Sets the range of barcode heights (in pixels) to for barcodes searching. |
- | [`BarcodeTextLengthRangeArray`](barcode-text-length-range-array.md) | Sets the range of barcode text length for barcodes searching. |
- | [`BarcodeTextRegExPattern`](barcode-text-regex-pattern.md) | Specifies the regular express pattern of barcode characters. |
- | [`BarcodeWidthRangeArray`](barcode-width-range-array.md) | Sets the range of barcode widths (in pixels) for barcodes searching.(Hint). |
- | [`BinarizationModes`](binarization-modes.md) | Sets the mode and priority for binarization. |
- | [`Code128Subset`](code128-subset.md) | Set the code 128 subset. |
- | [`ColourClusteringModes`](colour-clustering-modes.md) | Sets the mode and priority for colour categorization. Not supported yet. |
- | [`ColourConversionModes`](colour-conversion-modes.md) | Sets the mode and priority for converting a colour image to a grayscale image. |
- | [`DeblurLevel`](deblur-level.md) | Sets the degree of blurriness of the barcode. |
- | [`DeformationResistingModes`](deformation-resisting-modes.md) | Sets the mode and priority for deformation resisting. |
- | [`DPMCodeReadingModes`](dpm-code-reading-modes.md) | Sets the mode and priority for DPM code reading. |
- | [`ExpectedBarcodesCount`](expected-barcodes-count.md) | Sets the number of barcodes expected to be detected for each image. |
- | [`FindUnevenModuleBarcode`](find-uneven-module-barcode.md) | Specifies whether to find barcodes with uneven barcode modules. Not support yet. |
- | [`GrayscaleTransformationModes`](grayscale-transformation-modes.md) | Sets the mode and priority for the grayscale image conversion. |
- | [`HeadModuleRatio`](head-module-ratio.md) | Set the module count and module size ratio of the barcode head part. |
- | [`ImagePreprocessingModes`](image-preprocessing-modes.md) | Sets the mode and priority for image preprocessing algorithms. |
- | [`IntermediateResultSavingMode`](intermediate-result-saving-mode.md) | Sets the mode for saving the intermediate result. |
- | [`IntermediateResultTypes`](intermediate-result-types.md) | Sets which types of intermediate result to be kept for further reference. Intermediate result types can be combined. |
- | [`LocalizationModes`](localization-modes.md) | Sets the mode and priority for localization algorithms. |
- | [`MaxAlgorithmThreadCount`](max-algorithm-thread-count.md) | Sets the number of threads the image processing algorithm will use to decode barcodes. |
- | [`MinQuietZoneWidth`](min-quiet-zone-width.md) | The minimum width of the barcode quiet zone. |
- | [`MinResultConfidence`](min-result-confidence.md) | The minimum confidence of the result. |
- | [`MirrorMode`](mirror-mode.md) | Sets whether to decode mirrored barcodes. |
- | [`ModuleSizeRangeArray`](module-size-range-array.md) | Sets the range of module size (in pixels) for barcodes searching. (Hint). |
- | [`Pages`](pages.md) | Sets the specific pages or the range of pages of a file (.tiff or .pdf) for barcode searching. |
- | [`PDFRasterDPI`](pdf-raster-dpi.md) | Sets the output image resolution. |
- | [`PDFReadingMode`](pdf-reading-mode.md) | Sets the way to detect barcodes from a PDF file when using the DecodeFile method. |
- | [`Region`](region.md) | Sets the region for barcodes searching. |
- | [`RegionPredetectionModes`](region-predetection-modes.md) | Sets the region pre-detection mode for barcodes searching. |
- | [`RequireStartStopChars`](require-start-stop-chars.md) | Sets whether the start and stop characters are required when searching for Code 39 barcodes. |
- | [`ResultCoordinateType`](result-coordinate-type.md) | Specifies the format for the coordinates returned |
- | [`ReturnBarcodeZoneClarity`](return-barcode-zone-clarity.md) | Sets whether or not to return the clarity of the barcode zone. |
- | [`ReturnPartialBarcodeValue`](return-partial-barcode-value.md) | Sets whether or not to return partial barcode value(s). Not support yet. |
- | [`ScaleDownThreshold`](scale-down-threshold.md) | Sets the threshold for the image shrinking. |
- | [`ScaleUpModes`](scale-up-modes.md) | Sets the mode and priority to control the sampling methods of scale-up for linear barcodes with small module sizes. |
- | [`StandardFormat`](standard-format.md) | Set the standard barcode format. |
- | [`TailModuleRatio`](tail-module-ratio.md) | Set the module count and module size ratio of the barcode tail part. |
- | [`TerminatePhase`](terminate-phase.md) | Sets the phase where the algorithm stops. |
- | [`TextAssistedCorrectionMode`](text-assisted-correction-mode.md) | Sets the mode of text assisted correction for barcode decoding. Not support yet. |
- | [`TextFilterModes`](text-filter-modes.md) | Sets the mode and priority for text filter. |
- | [`TextureDetectionModes`](texture-detection-modes.md) | Sets the mode and priority for texture detection. |
- | [`TextResultOrderModes`](text-result-order-modes.md) | Sets the mode and priority for the order of the text results returned. |
- | [`Timeout`](time-out.md) | Sets the maximum amount of time (in milliseconds) that should be spent searching for a barcode per page. |
-
diff --git a/parameters/reference/index-v8.0.0.md b/parameters/reference/index-v8.0.0.md
deleted file mode 100644
index ffb9075e..00000000
--- a/parameters/reference/index-v8.0.0.md
+++ /dev/null
@@ -1,70 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Parameter Reference - Main Page
-description: Dynamsoft Barcode Reader Parameter Reference - Main Page
-keywords: parameter reference, parameters
-needAutoGenerateSidebar: false
----
-
-
-# Parameter Reference
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`AllModuleDeviation`](all-module-deviation.md) | Set the module size deviation from the standard barcode module size. |
- | [`AustralianPostEncodingTable`](australian-post-encoding-table.md) | Set the encoding table used to code the Customer Information Field of Australian Post Customer Barcode. |
- | [`BarcodeAngleRangeArray`](barcode-angle-range-array.md) | Sets the range of angles (in degrees) for barcodes searching. |
- | [`BarcodeBytesLengthRangeArray`](barcode-bytes-length-range-array.md) | Sets the range of barcode bytes length for barcodes searching. |
- | [`BarcodeBytesRegExPattern`](barcode-bytes-regex-pattern.md) | Specifies the regular express pattern of barcode byte characters. |
- | [`BarcodeColourModes`](barcode-colour-modes.md) | Sets the mode and priority for the barcode colour mode used to process the barcode zone. |
- | [`BarcodeComplementModes`](barcode-complement-modes.md) | Sets the mode and priority to complement the missing parts in the barcode. |
- | [`BarcodeFormatIds`](barcode-format-ids.md) | Sets the formats of the barcode to be read. Barcode formats can be combined. |
- | [`BarcodeFormatIds_2`](barcode-format-ids-2.md) | Sets the formats of the barcode in BarcodeFormat group 2 to be read. Barcode formats in BarcodeFormat group 2 can be combined. |
- | [`BarcodeHeightRangeArray`](barcode-height-range-array.md) | Sets the range of barcode heights (in pixels) to for barcodes searching. |
- | [`BarcodeTextLengthRangeArray`](barcode-text-length-range-array.md) | Sets the range of barcode text length for barcodes searching. |
- | [`BarcodeTextRegExPattern`](barcode-text-regex-pattern.md) | Specifies the regular express pattern of barcode characters. |
- | [`BarcodeWidthRangeArray`](barcode-width-range-array.md) | Sets the range of barcode widths (in pixels) for barcodes searching.(Hint). |
- | [`BarcodeZoneBarCountRangeArray`](barcode-zone-bar-count-range-array.md) | Sets the range of bar count of the barcode zone for barcodes searching. |
- | [`BarcodeZoneMinDistanceToImageBorders`](barcode-zone-min-distance-to-image-borders.md) | Sets the minimum distance (in pixels) between barcode zone and image borders. |
- | [`BinarizationModes`](binarization-modes.md) | Sets the mode and priority for binarization. |
- | [`Code128Subset`](code128-subset.md) | Set the code 128 subset. |
- | [`ColourClusteringModes`](colour-clustering-modes.md) | Sets the mode and priority for colour categorization. Not supported yet. |
- | [`ColourConversionModes`](colour-conversion-modes.md) | Sets the mode and priority for converting a colour image to a grayscale image. |
- | [`DeblurLevel`](deblur-level.md) | Sets the degree of blurriness of the barcode. |
- | [`DeblurModes`](deblur-modes.md) | Sets the mode and priority for deblurring. |
- | [`DeformationResistingModes`](deformation-resisting-modes.md) | Sets the mode and priority for deformation resisting. |
- | [`DPMCodeReadingModes`](dpm-code-reading-modes.md) | Sets the mode and priority for DPM code reading. |
- | [`ExpectedBarcodesCount`](expected-barcodes-count.md) | Sets the number of barcodes expected to be detected for each image. |
- | [`FindUnevenModuleBarcode`](find-uneven-module-barcode.md) | Specifies whether to find barcodes with uneven barcode modules. Not support yet. |
- | [`GrayscaleTransformationModes`](grayscale-transformation-modes.md) | Sets the mode and priority for the grayscale image conversion. |
- | [`HeadModuleRatio`](head-module-ratio.md) | Set the module count and module size ratio of the barcode head part. |
- | [`ImagePreprocessingModes`](image-preprocessing-modes.md) | Sets the mode and priority for image preprocessing algorithms. |
- | [`IntermediateResultSavingMode`](intermediate-result-saving-mode.md) | Sets the mode for saving the intermediate result. |
- | [`IntermediateResultTypes`](intermediate-result-types.md) | Sets which types of intermediate result to be kept for further reference. Intermediate result types can be combined. |
- | [`LocalizationModes`](localization-modes.md) | Sets the mode and priority for localization algorithms. |
- | [`MaxAlgorithmThreadCount`](max-algorithm-thread-count.md) | Sets the number of threads the image processing algorithm will use to decode barcodes. |
- | [`MinQuietZoneWidth`](min-quiet-zone-width.md) | The minimum width of the barcode quiet zone. |
- | [`MinRatioOfBarcodeZoneWidthToHeight`](min-ratio-of-barcode-zone-width-to-height.md) | Sets the minimum ratio (width/height) of the barcode zone. |
- | [`MinResultConfidence`](min-result-confidence.md) | The minimum confidence of the result. |
- | [`MirrorMode`](mirror-mode.md) | Sets whether to decode mirrored barcodes. |
- | [`ModuleSizeRangeArray`](module-size-range-array.md) | Sets the range of module size (in pixels) for barcodes searching. (Hint). |
- | [`Pages`](pages.md) | Sets the specific pages or the range of pages of a file (.tiff or .pdf) for barcode searching. |
- | [`PDFRasterDPI`](pdf-raster-dpi.md) | Sets the output image resolution. |
- | [`PDFReadingMode`](pdf-reading-mode.md) | Sets the way to detect barcodes from a PDF file when using the DecodeFile method. |
- | [`Region`](region.md) | Sets the region for barcodes searching. |
- | [`RegionPredetectionModes`](region-predetection-modes.md) | Sets the region pre-detection mode for barcodes searching. |
- | [`RequireStartStopChars`](require-start-stop-chars.md) | Sets whether the start and stop characters are required when searching for Code 39 barcodes. |
- | [`ResultCoordinateType`](result-coordinate-type.md) | Specifies the format for the coordinates returned |
- | [`ReturnBarcodeZoneClarity`](return-barcode-zone-clarity.md) | Sets whether or not to return the clarity of the barcode zone. |
- | [`ReturnPartialBarcodeValue`](return-partial-barcode-value.md) | Sets whether or not to return partial barcode value(s). Not support yet. |
- | [`ScaleDownThreshold`](scale-down-threshold.md) | Sets the threshold for the image shrinking. |
- | [`ScaleUpModes`](scale-up-modes.md) | Sets the mode and priority to control the sampling methods of scale-up for linear barcodes with small module sizes. |
- | [`StandardFormat`](standard-format.md) | Set the standard barcode format. |
- | [`TailModuleRatio`](tail-module-ratio.md) | Set the module count and module size ratio of the barcode tail part. |
- | [`TerminatePhase`](terminate-phase.md) | Sets the phase where the algorithm stops. |
- | [`TextAssistedCorrectionMode`](text-assisted-correction-mode.md) | Sets the mode of text assisted correction for barcode decoding. Not support yet. |
- | [`TextFilterModes`](text-filter-modes.md) | Sets the mode and priority for text filter. |
- | [`TextureDetectionModes`](texture-detection-modes.md) | Sets the mode and priority for texture detection. |
- | [`TextResultOrderModes`](text-result-order-modes.md) | Sets the mode and priority for the order of the text results returned. |
- | [`Timeout`](time-out.md) | Sets the maximum amount of time (in milliseconds) that should be spent searching for a barcode per page. |
-
diff --git a/parameters/reference/index-v8.1.2.md b/parameters/reference/index-v8.1.2.md
deleted file mode 100644
index 0e8ef07b..00000000
--- a/parameters/reference/index-v8.1.2.md
+++ /dev/null
@@ -1,71 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Parameter Reference - Main Page
-description: Dynamsoft Barcode Reader Parameter Reference - Main Page
-keywords: parameter reference, parameters
-needAutoGenerateSidebar: false
----
-
-
-# Parameter Reference
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`AllModuleDeviation`](all-module-deviation.md) | Set the module size deviation from the standard barcode module size. |
- | [`AustralianPostEncodingTable`](australian-post-encoding-table.md) | Set the encoding table used to code the Customer Information Field of Australian Post Customer Barcode. |
- | [`BarcodeAngleRangeArray`](barcode-angle-range-array.md) | Sets the range of angles (in degrees) for barcodes searching. |
- | [`BarcodeBytesLengthRangeArray`](barcode-bytes-length-range-array.md) | Sets the range of barcode bytes length for barcodes searching. |
- | [`BarcodeBytesRegExPattern`](barcode-bytes-regex-pattern.md) | Specifies the regular express pattern of barcode byte characters. |
- | [`BarcodeColourModes`](barcode-colour-modes.md) | Sets the mode and priority for the barcode colour mode used to process the barcode zone. |
- | [`BarcodeComplementModes`](barcode-complement-modes.md) | Sets the mode and priority to complement the missing parts in the barcode. |
- | [`BarcodeFormatIds`](barcode-format-ids.md) | Sets the formats of the barcode to be read. Barcode formats can be combined. |
- | [`BarcodeFormatIds_2`](barcode-format-ids-2.md) | Sets the formats of the barcode in BarcodeFormat group 2 to be read. Barcode formats in BarcodeFormat group 2 can be combined. |
- | [`BarcodeHeightRangeArray`](barcode-height-range-array.md) | Sets the range of barcode heights (in pixels) to for barcodes searching. |
- | [`BarcodeTextLengthRangeArray`](barcode-text-length-range-array.md) | Sets the range of barcode text length for barcodes searching. |
- | [`BarcodeTextRegExPattern`](barcode-text-regex-pattern.md) | Specifies the regular express pattern of barcode characters. |
- | [`BarcodeWidthRangeArray`](barcode-width-range-array.md) | Sets the range of barcode widths (in pixels) for barcodes searching.(Hint). |
- | [`BarcodeZoneBarCountRangeArray`](barcode-zone-bar-count-range-array.md) | Sets the range of bar count of the barcode zone for barcodes searching. |
- | [`BarcodeZoneMinDistanceToImageBorders`](barcode-zone-min-distance-to-image-borders.md) | Sets the minimum distance (in pixels) between barcode zone and image borders. |
- | [`BinarizationModes`](binarization-modes.md) | Sets the mode and priority for binarization. |
- | [`Code128Subset`](code128-subset.md) | Set the code 128 subset. |
- | [`ColourClusteringModes`](colour-clustering-modes.md) | Sets the mode and priority for colour categorization. Not supported yet. |
- | [`ColourConversionModes`](colour-conversion-modes.md) | Sets the mode and priority for converting a colour image to a grayscale image. |
- | [`DeblurLevel`](deblur-level.md) | Sets the degree of blurriness of the barcode. |
- | [`DeblurModes`](deblur-modes.md) | Sets the mode and priority for deblurring. |
- | [`DeformationResistingModes`](deformation-resisting-modes.md) | Sets the mode and priority for deformation resisting. |
- | [`DPMCodeReadingModes`](dpm-code-reading-modes.md) | Sets the mode and priority for DPM code reading. |
- | [`ExpectedBarcodesCount`](expected-barcodes-count.md) | Sets the number of barcodes expected to be detected for each image. |
- | [`FindUnevenModuleBarcode`](find-uneven-module-barcode.md) | Specifies whether to find barcodes with uneven barcode modules. Not support yet. |
- | [`GrayscaleTransformationModes`](grayscale-transformation-modes.md) | Sets the mode and priority for the grayscale image conversion. |
- | [`HeadModuleRatio`](head-module-ratio.md) | Set the module count and module size ratio of the barcode head part. |
- | [`ImagePreprocessingModes`](image-preprocessing-modes.md) | Sets the mode and priority for image preprocessing algorithms. |
- | [`IntermediateResultSavingMode`](intermediate-result-saving-mode.md) | Sets the mode for saving the intermediate result. |
- | [`IntermediateResultTypes`](intermediate-result-types.md) | Sets which types of intermediate result to be kept for further reference. Intermediate result types can be combined. |
- | [`LocalizationModes`](localization-modes.md) | Sets the mode and priority for localization algorithms. |
- | [`MaxAlgorithmThreadCount`](max-algorithm-thread-count.md) | Sets the number of threads the image processing algorithm will use to decode barcodes. |
- | [`MinQuietZoneWidth`](min-quiet-zone-width.md) | The minimum width of the barcode quiet zone. |
- | [`MinRatioOfBarcodeZoneWidthToHeight`](min-ratio-of-barcode-zone-width-to-height.md) | Sets the minimum ratio (width/height) of the barcode zone. |
- | [`MinResultConfidence`](min-result-confidence.md) | The minimum confidence of the result. |
- | [`MirrorMode`](mirror-mode.md) | Sets whether to decode mirrored barcodes. |
- | [`ModuleSizeRangeArray`](module-size-range-array.md) | Sets the range of module size (in pixels) for barcodes searching. (Hint). |
- | [`MSICodeCheckDigitCalculation`](msi-code-check-digit-calculation.md) | Sets the scheme used for calculating a check digit of an MSI barcode. |
- | [`Pages`](pages.md) | Sets the specific pages or the range of pages of a file (.tiff or .pdf) for barcode searching. |
- | [`PDFRasterDPI`](pdf-raster-dpi.md) | Sets the output image resolution. |
- | [`PDFReadingMode`](pdf-reading-mode.md) | Sets the way to detect barcodes from a PDF file when using the DecodeFile method. |
- | [`Region`](region.md) | Sets the region for barcodes searching. |
- | [`RegionPredetectionModes`](region-predetection-modes.md) | Sets the region pre-detection mode for barcodes searching. |
- | [`RequireStartStopChars`](require-start-stop-chars.md) | Sets whether the start and stop characters are required when searching for Code 39 barcodes. |
- | [`ResultCoordinateType`](result-coordinate-type.md) | Specifies the format for the coordinates returned |
- | [`ReturnBarcodeZoneClarity`](return-barcode-zone-clarity.md) | Sets whether or not to return the clarity of the barcode zone. |
- | [`ReturnPartialBarcodeValue`](return-partial-barcode-value.md) | Sets whether or not to return partial barcode value(s). Not support yet. |
- | [`ScaleDownThreshold`](scale-down-threshold.md) | Sets the threshold for the image shrinking. |
- | [`ScaleUpModes`](scale-up-modes.md) | Sets the mode and priority to control the sampling methods of scale-up for linear barcodes with small module sizes. |
- | [`StandardFormat`](standard-format.md) | Set the standard barcode format. |
- | [`TailModuleRatio`](tail-module-ratio.md) | Set the module count and module size ratio of the barcode tail part. |
- | [`TerminatePhase`](terminate-phase.md) | Sets the phase where the algorithm stops. |
- | [`TextAssistedCorrectionMode`](text-assisted-correction-mode.md) | Sets the mode of text assisted correction for barcode decoding. Not support yet. |
- | [`TextFilterModes`](text-filter-modes.md) | Sets the mode and priority for text filter. |
- | [`TextureDetectionModes`](texture-detection-modes.md) | Sets the mode and priority for texture detection. |
- | [`TextResultOrderModes`](text-result-order-modes.md) | Sets the mode and priority for the order of the text results returned. |
- | [`Timeout`](time-out.md) | Sets the maximum amount of time (in milliseconds) that should be spent searching for a barcode per page. |
-
diff --git a/parameters/reference/index-v8.9.3.md b/parameters/reference/index-v8.9.3.md
deleted file mode 100644
index 5e51acd6..00000000
--- a/parameters/reference/index-v8.9.3.md
+++ /dev/null
@@ -1,70 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Parameter Reference - Main Page
-description: Dynamsoft Barcode Reader Parameter Reference - Main Page
-keywords: parameter reference, parameters
-needAutoGenerateSidebar: false
----
-
-
-# Parameter Reference
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`AllModuleDeviation`](all-module-deviation.md) | Sets the module size deviation from the standard barcode module size. |
- | [`AustralianPostEncodingTable`](australian-post-encoding-table.md) | Sets the encoding table used to code the Customer Information Field of Australian Post Customer Barcode. |
- | [`BarcodeAngleRangeArray`](barcode-angle-range-array.md) | Sets the range of angles (in degrees) for barcodes searching. |
- | [`BarcodeBytesLengthRangeArray`](barcode-bytes-length-range-array.md) | Sets the range of barcode bytes length for barcodes searching. |
- | [`BarcodeBytesRegExPattern`](barcode-bytes-regex-pattern.md) | Specifies the regular expression pattern of barcode byte characters. |
- | [`BarcodeColourModes`](barcode-colour-modes.md) | Sets the mode and priority for the barcode colour mode used to process the barcode zone. |
- | [`BarcodeComplementModes`](barcode-complement-modes.md) | Sets the mode and priority to complement the missing parts in the barcode. |
- | [`BarcodeFormatIds`](barcode-format-ids.md) | Sets the formats of the barcode to be read. Barcode formats can be combined. |
- | [`BarcodeFormatIds_2`](barcode-format-ids-2.md) | Sets the formats of the barcode in BarcodeFormat group 2 to be read. Barcode formats in BarcodeFormat group 2 can be combined. |
- | [`BarcodeHeightRangeArray`](barcode-height-range-array.md) | Sets the range of barcode heights (in pixels) for barcodes searching. |
- | [`BarcodeTextLengthRangeArray`](barcode-text-length-range-array.md) | Sets the range of barcode text length for barcodes searching. |
- | [`BarcodeTextRegExPattern`](barcode-text-regex-pattern.md) | Specifies the regular expression pattern of barcode characters. |
- | [`BarcodeWidthRangeArray`](barcode-width-range-array.md) | Sets the range of barcode widths (in pixels) for barcodes searching.|
- | [`BarcodeZoneBarCountRangeArray`](barcode-zone-bar-count-range-array.md) | Sets the range of bar count of the barcode zone for barcodes searching. |
- | [`BarcodeZoneMinDistanceToImageBorders`](barcode-zone-min-distance-to-image-borders.md) | Sets the minimum distance (in pixels) between barcode zone and image borders. |
- | [`BinarizationModes`](binarization-modes.md) | Sets the mode and priority for binarization. |
- | [`Code128Subset`](code128-subset.md) | Sets the code 128 subset. |
- | [`ColourClusteringModes`](colour-clustering-modes.md) | Sets the mode and priority for colour categorization. To be supported. |
- | [`ColourConversionModes`](colour-conversion-modes.md) | Sets the mode and priority for converting a colour image to a grayscale image. |
- | [`DeblurLevel`](deblur-level.md) | Sets the degree of blurriness of the barcode. |
- | [`DeblurModes`](deblur-modes.md) | Sets the mode and priority for deblurring. |
- | [`DeformationResistingModes`](deformation-resisting-modes.md) | Sets the mode and priority for deformation resisting. |
- | [`DPMCodeReadingModes`](dpm-code-reading-modes.md) | Sets the mode and priority for DPM code reading. |
- | [`ExpectedBarcodesCount`](expected-barcodes-count.md) | Sets the number of barcodes expected to be detected for each image. |
- | [`FindUnevenModuleBarcode`](find-uneven-module-barcode.md) | Specifies whether to find barcodes with uneven barcode modules. To be supported.|
- | [`GrayscaleTransformationModes`](grayscale-transformation-modes.md) | Sets the mode and priority for the grayscale image conversion. |
- | [`HeadModuleRatio`](head-module-ratio.md) | Sets the module count and module size ratio of the barcode head part. |
- | [`ImagePreprocessingModes`](image-preprocessing-modes.md) | Sets the mode and priority for image preprocessing algorithms. |
- | [`IntermediateResultSavingMode`](intermediate-result-saving-mode.md) | Sets the mode for saving the intermediate result. |
- | [`IntermediateResultTypes`](intermediate-result-types.md) | Sets which types of intermediate results to be kept for further reference. Intermediate result types can be combined. |
- | [`LocalizationModes`](localization-modes.md) | Sets the mode and priority for localization algorithms. |
- | [`MaxAlgorithmThreadCount`](max-algorithm-thread-count.md) | Sets the number of threads for the image processing algorithm uses to decode barcodes. |
- | [`MinQuietZoneWidth`](min-quiet-zone-width.md) | Sets the minimum width of the barcode quiet zone. |
- | [`MinRatioOfBarcodeZoneWidthToHeight`](min-ratio-of-barcode-zone-width-to-height.md) | Sets the minimum ratio (width/height) of the barcode zone. |
- | [`MinResultConfidence`](min-result-confidence.md) | Sets the minimum confidence of the result. |
- | [`MirrorMode`](mirror-mode.md) | Sets whether to decode mirrored barcodes. |
- | [`ModuleSizeRangeArray`](module-size-range-array.md) | Sets the range of module size (in pixels) for barcodes searching. |
- | [`MSICodeCheckDigitCalculation`](msi-code-check-digit-calculation.md) | Sets the scheme used for calculating a check digit of an MSI barcode. |
- | [`Pages`](pages.md) | Sets the specific pages or the range of pages of a file (.tiff or .pdf) for barcode searching. |
- | [`PDFRasterDPI`](pdf-raster-dpi.md) | Sets the output image resolution. |
- | [`PDFReadingMode`](pdf-reading-mode.md) | Sets the way to detect barcodes from a PDF file when using the `DecodeFile` method. |
- | [`Region`](region.md) | Sets the region for barcodes searching. |
- | [`RegionPredetectionModes`](region-predetection-modes.md) | Sets the region pre-detection mode for barcodes searching. |
- | [`RequireStartStopChars`](require-start-stop-chars.md) | Sets whether the start and stop characters are required when searching for Code 39 barcodes. |
- | [`ResultCoordinateType`](result-coordinate-type.md) | Specifies the format for the coordinates returned |
- | [`ReturnBarcodeZoneClarity`](return-barcode-zone-clarity.md) | Sets whether or not to return the clarity of the barcode zone. |
- | [`ReturnPartialBarcodeValue`](return-partial-barcode-value.md) | Sets whether or not to return partial barcode value(s). Not support yet. |
- | [`ScaleDownThreshold`](scale-down-threshold.md) | Sets the threshold for the image shrinking. |
- | [`ScaleUpModes`](scale-up-modes.md) | Sets the mode and priority to control the sampling methods of scale-up for linear barcodes with small module sizes. |
- | [`StandardFormat`](standard-format.md) | Sets the standard barcode format. |
- | [`TailModuleRatio`](tail-module-ratio.md) | Sets the module count and module size ratio of the barcode tail part. |
- | [`TerminatePhase`](terminate-phase.md) | Sets the phase where the algorithm stops. |
- | [`TextFilterModes`](text-filter-modes.md) | Sets the mode and priority for text filter. |
- | [`TextureDetectionModes`](texture-detection-modes.md) | Sets the mode and priority for texture detection. |
- | [`TextResultOrderModes`](text-result-order-modes.md) | Sets the mode and priority for the order of the text results returned. |
- | [`Timeout`](time-out.md) | Sets the maximum amount of time (in milliseconds) that should be spent searching for a barcode per page. |
-
diff --git a/parameters/reference/index-v9.2.0.md b/parameters/reference/index-v9.2.0.md
deleted file mode 100644
index 9122c3fc..00000000
--- a/parameters/reference/index-v9.2.0.md
+++ /dev/null
@@ -1,73 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Parameter Reference - Main Page
-description: Dynamsoft Barcode Reader Parameter Reference - Main Page
-keywords: parameter reference, parameters
-needAutoGenerateSidebar: false
-permalink: /parameters/reference/index-v9.2.0.html
----
-
-
-# Parameter Reference
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`AllModuleDeviation`](all-module-deviation.md) | Sets the module size deviation from the standard barcode module size. |
- | [`AustralianPostEncodingTable`](australian-post-encoding-table.md) | Sets the encoding table used to code the Customer Information Field of Australian Post Customer Barcode. |
- | [`BarcodeAngleRangeArray`](barcode-angle-range-array.md) | Sets the range of angles (in degrees) for barcodes searching. |
- | [`BarcodeBytesLengthRangeArray`](barcode-bytes-length-range-array.md) | Sets the range of barcode bytes length for barcodes searching. |
- | [`BarcodeBytesRegExPattern`](barcode-bytes-regex-pattern.md) | Specifies the regular expression pattern of barcode byte characters. |
- | [`BarcodeColourModes`](barcode-colour-modes.md) | Sets the mode and priority for the barcode colour mode used to process the barcode zone. |
- | [`BarcodeComplementModes`](barcode-complement-modes.md) | Sets the mode and priority to complement the missing parts in the barcode. |
- | [`BarcodeFormatIds`](barcode-format-ids.md) | Sets the formats of the barcode to be read. Barcode formats can be combined. |
- | [`BarcodeFormatIds_2`](barcode-format-ids-2.md) | Sets the formats of the barcode in BarcodeFormat group 2 to be read. Barcode formats in BarcodeFormat group 2 can be combined. |
- | [`BarcodeHeightRangeArray`](barcode-height-range-array.md) | Sets the range of barcode heights (in pixels) for barcodes searching. |
- | [`BarcodeTextLengthRangeArray`](barcode-text-length-range-array.md) | Sets the range of barcode text length for barcodes searching. |
- | [`BarcodeTextRegExPattern`](barcode-text-regex-pattern.md) | Specifies the regular expression pattern of barcode characters. |
- | [`BarcodeWidthRangeArray`](barcode-width-range-array.md) | Sets the range of barcode widths (in pixels) for barcodes searching.|
- | [`BarcodeZoneBarCountRangeArray`](barcode-zone-bar-count-range-array.md) | Sets the range of bar count of the barcode zone for barcodes searching. |
- | [`BarcodeZoneMinDistanceToImageBorders`](barcode-zone-min-distance-to-image-borders.md) | Sets the minimum distance (in pixels) between barcode zone and image borders. |
- | [`BinarizationModes`](binarization-modes.md) | Sets the mode and priority for binarization. |
- | [`Code128Subset`](code128-subset.md) | Sets the code 128 subset. |
- | [`ColourClusteringModes`](colour-clustering-modes.md) | Sets the mode and priority for colour categorization. To be supported. |
- | [`ColourConversionModes`](colour-conversion-modes.md) | Sets the mode and priority for converting a colour image to a grayscale image. |
- | [`DeblurLevel`](deblur-level.md) | Sets the degree of blurriness of the barcode. |
- | [`DeblurModes`](deblur-modes.md) | Sets the mode and priority for deblurring. |
- | [`DeformationResistingModes`](deformation-resisting-modes.md) | Sets the mode and priority for deformation resisting. |
- | [`DPMCodeReadingModes`](dpm-code-reading-modes.md) | Sets the mode and priority for DPM code reading. |
- | [`ExpectedBarcodesCount`](expected-barcodes-count.md) | Sets the number of barcodes expected to be detected for each image. |
- | [`FindUnevenModuleBarcode`](find-uneven-module-barcode.md) | Specifies whether to find barcodes with uneven barcode modules. To be supported.|
- | [`GrayscaleTransformationModes`](grayscale-transformation-modes.md) | Sets the mode and priority for the grayscale image conversion. |
- | [`HeadModuleRatio`](head-module-ratio.md) | Sets the module count and module size ratio of the barcode head part. |
- | [`ImagePreprocessingModes`](image-preprocessing-modes.md) | Sets the mode and priority for image preprocessing algorithms. |
- | [`IntermediateResultSavingMode`](intermediate-result-saving-mode.md) | Sets the mode for saving the intermediate result. |
- | [`IntermediateResultTypes`](intermediate-result-types.md) | Sets which types of intermediate results to be kept for further reference. Intermediate result types can be combined. |
- | [`LocalizationModes`](localization-modes.md) | Sets the mode and priority for localization algorithms. |
- | [`MaxAlgorithmThreadCount`](max-algorithm-thread-count.md) | Sets the number of threads for the image processing algorithm uses to decode barcodes. |
- | [`MinQuietZoneWidth`](min-quiet-zone-width.md) | Sets the minimum width of the barcode quiet zone. |
- | [`MinRatioOfBarcodeZoneWidthToHeight`](min-ratio-of-barcode-zone-width-to-height.md) | Sets the minimum ratio (width/height) of the barcode zone. |
- | [`MinResultConfidence`](min-result-confidence.md) | Sets the minimum confidence of the result. |
- | [`MirrorMode`](mirror-mode.md) | Sets whether to decode mirrored barcodes. |
- | [`ModuleSizeRangeArray`](module-size-range-array.md) | Sets the range of module size (in pixels) for barcodes searching. |
- | [`MSICodeCheckDigitCalculation`](msi-code-check-digit-calculation.md) | Sets the scheme used for calculating a check digit of an MSI barcode. |
- | [`Pages`](pages.md) | Sets the specific pages or the range of pages of a file (.tiff or .pdf) for barcode searching. |
- | [`PartitionModes`](partition-modes.md) | Sets the mode used to apply partition process. |
- | [`PDFRasterDPI`](pdf-raster-dpi.md) | Sets the output image resolution. |
- | [`PDFReadingMode`](pdf-reading-mode.md) | Sets the way to detect barcodes from a PDF file when using the `DecodeFile` method. |
- | [`Region`](region.md) | Sets the region for barcodes searching. |
- | [`RegionPredetectionModes`](region-predetection-modes.md) | Sets the region pre-detection mode for barcodes searching. |
- | [`RequireStartStopChars`](require-start-stop-chars.md) | Sets whether the start and stop characters are required when searching for Code 39 barcodes. |
- | [`ResultCoordinateType`](result-coordinate-type.md) | Specifies the format for the coordinates returned |
- | [`ReturnBarcodeZoneClarity`](return-barcode-zone-clarity.md) | Sets whether or not to return the clarity of the barcode zone. |
- | [`ReturnPartialBarcodeValue`](return-partial-barcode-value.md) | Sets whether or not to return partial barcode value(s). Not support yet. |
- | [`ScaleDownThreshold`](scale-down-threshold.md) | Sets the threshold for the image shrinking. |
- | [`ScaleUpModes`](scale-up-modes.md) | Sets the mode and priority to control the sampling methods of scale-up for linear barcodes with small module sizes. |
- | [`StandardFormat`](standard-format.md) | Sets the standard barcode format. |
- | [`TailModuleRatio`](tail-module-ratio.md) | Sets the module count and module size ratio of the barcode tail part. |
- | [`TerminatePhase`](terminate-phase.md) | Sets the phase where the algorithm stops. |
- | [`TextFilterModes`](text-filter-modes.md) | Sets the mode and priority for text filter. |
- | [`TextureDetectionModes`](texture-detection-modes.md) | Sets the mode and priority for texture detection. |
- | [`TextResultOrderModes`](text-result-order-modes.md) | Sets the mode and priority for the order of the text results returned. |
- | [`Timeout`](time-out.md) | Sets the maximum amount of time (in milliseconds) that should be spent searching for a barcode per page. |
- | [`VerifyCheckDigit`](verify-check-digit.md) | Sets the value determining whether to verify the check digit in barcodes where this check digit is optional. |
-
diff --git a/parameters/reference/index-v9.6.31.md b/parameters/reference/index-v9.6.31.md
deleted file mode 100644
index d33e8256..00000000
--- a/parameters/reference/index-v9.6.31.md
+++ /dev/null
@@ -1,75 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Parameter Reference - Main Page
-description: Dynamsoft Barcode Reader Parameter Reference - Main Page
-keywords: parameter reference, parameters
-needAutoGenerateSidebar: false
----
-
-
-# Parameter Reference
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`AllModuleDeviation`](all-module-deviation.md) | Sets the module size deviation from the standard barcode module size. |
- | [`AustralianPostEncodingTable`](australian-post-encoding-table.md) | Sets the encoding table used to code the Customer Information Field of Australian Post Customer Barcode. |
- | [`BarcodeAngleRangeArray`](barcode-angle-range-array.md) | Sets the range of angles (in degrees) for barcodes searching. |
- | [`BarcodeBytesLengthRangeArray`](barcode-bytes-length-range-array.md) | Sets the range of barcode bytes length for barcodes searching. |
- | [`BarcodeBytesRegExPattern`](barcode-bytes-regex-pattern.md) | Specifies the regular expression pattern of barcode byte characters. |
- | [`BarcodeColourModes`](barcode-colour-modes.md) | Sets the mode and priority for the barcode colour mode used to process the barcode zone. |
- | [`BarcodeComplementModes`](barcode-complement-modes.md) | Sets the mode and priority to complement the missing parts in the barcode. |
- | [`BarcodeFormatIds`](barcode-format-ids.md) | Sets the formats of the barcode to be read. Barcode formats can be combined. |
- | [`BarcodeFormatIds_2`](barcode-format-ids-2.md) | Sets the formats of the barcode in BarcodeFormat group 2 to be read. Barcode formats in BarcodeFormat group 2 can be combined. |
- | [`BarcodeHeightRangeArray`](barcode-height-range-array.md) | Sets the range of barcode heights (in pixels) for barcodes searching. |
- | [`BarcodeTextLengthRangeArray`](barcode-text-length-range-array.md) | Sets the range of barcode text length for barcodes searching. |
- | [`BarcodeTextRegExPattern`](barcode-text-regex-pattern.md) | Specifies the regular expression pattern of barcode characters. |
- | [`BarcodeWidthRangeArray`](barcode-width-range-array.md) | Sets the range of barcode widths (in pixels) for barcodes searching.|
- | [`BarcodeZoneBarCountRangeArray`](barcode-zone-bar-count-range-array.md) | Sets the range of bar count of the barcode zone for barcodes searching. |
- | [`BarcodeZoneMinDistanceToImageBorders`](barcode-zone-min-distance-to-image-borders.md) | Sets the minimum distance (in pixels) between barcode zone and image borders. |
- | [`BinarizationModes`](binarization-modes.md) | Sets the mode and priority for binarization. |
- | [`Code128Subset`](code128-subset.md) | Sets the code 128 subset. |
- | [`ColourClusteringModes`](colour-clustering-modes.md) | Sets the mode and priority for colour categorization. To be supported. |
- | [`ColourConversionModes`](colour-conversion-modes.md) | Sets the mode and priority for converting a colour image to a grayscale image. |
- | [`DeblurLevel`](deblur-level.md) | Sets the degree of blurriness of the barcode. |
- | [`DeblurModes`](deblur-modes.md) | Sets the mode and priority for deblurring. |
- | [`DeformationResistingModes`](deformation-resisting-modes.md) | Sets the mode and priority for deformation resisting. |
- | [`DPMCodeReadingModes`](dpm-code-reading-modes.md) | Sets the mode and priority for DPM code reading. |
- | [`EnableDataMatrixECC000-140`](enable-datamatrix-ecc000-140.md) | Specifies whether to decode DataMatrix ECC000-140 barcodes. |
- | [`EnableQRCodeModel1`](enable-qrcode-model1.md) | Specifies whether to decode QRCode model 1 barcodes. |
- | [`ExpectedBarcodesCount`](expected-barcodes-count.md) | Sets the number of barcodes expected to be detected for each image. |
- | [`FindUnevenModuleBarcode`](find-uneven-module-barcode.md) | Specifies whether to find barcodes with uneven barcode modules. To be supported.|
- | [`GrayscaleTransformationModes`](grayscale-transformation-modes.md) | Sets the mode and priority for the grayscale image conversion. |
- | [`HeadModuleRatio`](head-module-ratio.md) | Sets the module count and module size ratio of the barcode head part. |
- | [`ImagePreprocessingModes`](image-preprocessing-modes.md) | Sets the mode and priority for image preprocessing algorithms. |
- | [`IntermediateResultSavingMode`](intermediate-result-saving-mode.md) | Sets the mode for saving the intermediate result. |
- | [`IntermediateResultTypes`](intermediate-result-types.md) | Sets which types of intermediate results to be kept for further reference. Intermediate result types can be combined. |
- | [`LocalizationModes`](localization-modes.md) | Sets the mode and priority for localization algorithms. |
- | [`MaxAlgorithmThreadCount`](max-algorithm-thread-count.md) | Sets the number of threads for the image processing algorithm uses to decode barcodes. |
- | [`MinQuietZoneWidth`](min-quiet-zone-width.md) | Sets the minimum width of the barcode quiet zone. |
- | [`MinRatioOfBarcodeZoneWidthToHeight`](min-ratio-of-barcode-zone-width-to-height.md) | Sets the minimum ratio (width/height) of the barcode zone. |
- | [`MinResultConfidence`](min-result-confidence.md) | Sets the minimum confidence of the result. |
- | [`MirrorMode`](mirror-mode.md) | Sets whether to decode mirrored barcodes. |
- | [`ModuleSizeRangeArray`](module-size-range-array.md) | Sets the range of module size (in pixels) for barcodes searching. |
- | [`MSICodeCheckDigitCalculation`](msi-code-check-digit-calculation.md) | Sets the scheme used for calculating a check digit of an MSI barcode. |
- | [`Pages`](pages.md) | Sets the specific pages or the range of pages of a file (.tiff or .pdf) for barcode searching. |
- | [`PartitionModes`](partition-modes.md) | Sets the mode used to apply partition process. |
- | [`PatchCodeSearchingMargins`](patchcode-searching-margins.md) | Sets the margins for searching PatchCode. |
- | [`PDFRasterDPI`](pdf-raster-dpi.md) | Sets the output image resolution. |
- | [`PDFReadingMode`](pdf-reading-mode.md) | Sets the way to detect barcodes from a PDF file when using the `DecodeFile` method. |
- | [`Region`](region.md) | Sets the region for barcodes searching. |
- | [`RegionPredetectionModes`](region-predetection-modes.md) | Sets the region pre-detection mode for barcodes searching. |
- | [`RequireStartStopChars`](require-start-stop-chars.md) | Sets whether the start and stop characters are required when searching for Code 39 barcodes. |
- | [`ResultCoordinateType`](result-coordinate-type.md) | Specifies the format for the coordinates returned |
- | [`ReturnBarcodeZoneClarity`](return-barcode-zone-clarity.md) | Sets whether or not to return the clarity of the barcode zone. |
- | [`ReturnPartialBarcodeValue`](return-partial-barcode-value.md) | Sets whether or not to return partial barcode value(s). Not support yet. |
- | [`ScaleDownThreshold`](scale-down-threshold.md) | Sets the threshold for the image shrinking. |
- | [`ScaleUpModes`](scale-up-modes.md) | Sets the mode and priority to control the sampling methods of scale-up for linear barcodes with small module sizes. |
- | [`StandardFormat`](standard-format.md) | Sets the standard barcode format. |
- | [`TailModuleRatio`](tail-module-ratio.md) | Sets the module count and module size ratio of the barcode tail part. |
- | [`TerminatePhase`](terminate-phase.md) | Sets the phase where the algorithm stops. |
- | [`TextFilterModes`](text-filter-modes.md) | Sets the mode and priority for text filter. |
- | [`TextureDetectionModes`](texture-detection-modes.md) | Sets the mode and priority for texture detection. |
- | [`TextResultOrderModes`](text-result-order-modes.md) | Sets the mode and priority for the order of the text results returned. |
- | [`Timeout`](time-out.md) | Sets the maximum amount of time (in milliseconds) that should be spent searching for a barcode per page. |
- | [`VerifyCheckDigit`](verify-check-digit.md) | Sets the value determining whether to verify the check digit in barcodes where this check digit is optional. |
-
diff --git a/parameters/reference/index.md b/parameters/reference/index.md
deleted file mode 100644
index 0c3cff7c..00000000
--- a/parameters/reference/index.md
+++ /dev/null
@@ -1,123 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Reference - Main Page
-description: Dynamsoft Barcode Reader Parameter Reference - Main Page
-keywords: barcode reader parameter, parameter reference, parameters
-needAutoGenerateSidebar: false
----
-
-# Parameter Reference
-
-## Capture Vision Template
-
-| Parameter Name | Description |
-| -------------- | ----------- |
-| [`ImageROIProcessingNameArray`]({{ site.dcvb_parameters_reference }}capture-vision-template/image-roi-processing-name-array.html) | Defines the collection of image ROI processing object names, used to refer to the `TargetROIDef` objects. |
-| [`ImageSourceName`]({{ site.dcvb_parameters_reference }}capture-vision-template/image-source-name.html) | Indicates the input source name, used to refer to the `ImageSource` object. |
-| [`MaxParallelTasks`]({{ site.dcvb_parameters_reference }}capture-vision-template/max-parallel-tasks.html) | Defines the maximum number of parallel tasks for the DCV runtime. |
-| [`MinImageCaptureInterval`]({{ site.dcvb_parameters_reference }}capture-vision-template/min-image-capture-interval.html) | Specifies the minimum time interval (in milliseconds) allowed between consecutive image captures. |
-| [`Name`]({{ site.dcvb_parameters_reference }}capture-vision-template/name.html) | Defines the name of a `CaptureVisionTemplate` object, which serves as its unique identifier. |
-| [`OutputOriginalImage`]({{ site.dcvb_parameters_reference }}capture-vision-template/output-original-Image.html) | Indicates whether DCV finally outputs the original input image. |
-| [`Timeout`]({{ site.dcvb_parameters_reference }}capture-vision-template/timeout.html) | Defines the maximum amount of time (in milliseconds) that should be spent processing each image or frame. |
-
-## Target ROI Def
-
-| Parameter Name | Description |
-| --------------- | ----------- |
-| [`BaseTargetROIDefName`]({{ site.dcvb_parameters_reference }}target-roi-def/base-target-roidef-name.html) | Represents the name of another `TargetROIDef` object to inherit from. |
-| [`Location`]({{ site.dcvb_parameters_reference }}target-roi-def/location.html) | Defines the location of the TargetROI with `reference objects` filter conditions and `offset` parameters. |
-| [`Name`]({{ site.dcvb_parameters_reference }}target-roi-def/name.html) | Defines the name of a `TargetROIDef` object, which serves as its unique identifier. |
-| [`PauseFlag`]({{ site.dcvb_parameters_reference }}target-roi-def/pause-flag.html) | Indicates that the region results generated by this `TargetROIDef` will not be used by other `TargetROIDef` objects that depend on it to calculate the target regions, unless the user explicitly performs an update operation. |
-| [`TaskSettingNameArray`]({{ site.dcvb_parameters_reference }}target-roi-def/task-setting-name-array.html) | Parameter `TaskSettingNameArray` represents the collection of task setting object names, used to refer to the `BarcodeReaderTaskSetting`, `LabelRecognizerTaskSetting`, `DocumentNormalizerTaskSetting` objects. |
-
-## Barcode Reader Task Setting
-
-| Parameter Name | Description |
-| -------------- | ----------- |
-| [`BarcodeColourModes`]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/barcode-colour-modes.html) | Defines the barcode colour modes. |
-| [`BarcodeComplementModes`]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/barcode-complement-modes.html) | Defines how to complement the missing parts of a barcode. |
-| [`BarcodeFormatIds`]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/barcode-format-ids.html) | Defines the formats of the barcode to process. |
-| [`BaseBarcodeReaderTaskSettingName`]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/base-barcode-reader-task-setting-name.html) | Represents the name of another `BarcodeReaderTaskSetting` object to inherit from. |
-| [`DeblurModes`]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/deblur-modes.html) | Defines the mode and priority for deblurring. |
-| [`DeformationResistingModes`]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/deformation-resisting-modes.html) | Defines how to handle distorted and deformed barcodes. |
-| [`DPMCodeReadingModes`]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/dpm-code-reading-modes.html) | Defines how to read direct part mark (DPM) barcodes. |
-| [`ExpectedBarcodesCount`]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/expected-barcodes-count.html) | Defines the number of barcodes expected to be detected. |
-| [`LocalizationModes`]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/localization-modes.html) | Defines how to localize barcodes. |
-| [`MaxThreadsInOneTask`]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/max-threads-in-one-task.html) | Defines the maximum threads that can be consumed in one task. |
-| [`Name`]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/name.html) | Defines the name of a `BarcodeReaderTaskSetting` object, which serves as its unique identifier. |
-| [`ReturnBarcodeZoneClarity`]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/return-barcode-zone-clarity.html) | Defines whether to return the clarity of the barcode zone. |
-| [`SectionImageParameterArray`]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/section-image-parameter-array.html) | Defines `ImageParameter` in section unit. |
-| [`StartSection`]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/start-section.html) | Defines the start section of the algorithm task. |
-| [`TerminateSetting`]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/terminate-setting.html) | Defines the terminate stages of the task. |
-| [`TextResultOrderModes`]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/text-result-order-modes.html) | Defines the order of the returned text results. |
-
-## ImageParameter
-
-| Parameter Name | Description |
-| ---------------------------------- | ----------- |
-| [`BaseImageParameterName`]({{ site.dcvb_parameters_reference }}image-parameter/base-image-parameter-name.html) | Represents the name of another `ImageParameter` object to inherit from. |
-| [`BinarizationModes`]({{ site.dcvb_parameters_reference }}image-parameter/binarization-modes.html) | Defines the process of binarization |
-| [`ColourConversionModes`]({{ site.dcvb_parameters_reference }}image-parameter/colour-conversion-modes.html) | Defines how to convert a colour image to a grayscale image. |
-| [`GrayscaleEnhancementModes`]({{ site.dcvb_parameters_reference }}image-parameter/grayscale-enhancement-modes.html) | Defines the image processing methods to enhance the quality of the grayscale image. |
-| [`GrayscaleTransformationModes`]({{ site.dcvb_parameters_reference }}image-parameter/grayscale-transformation-modes.html) | Defines whether or not to invert the color of the grayscale image. |
-| [`IfEraseTextZone`]({{ site.dcvb_parameters_reference }}image-parameter/if-erase-text-zone.html) | Defines whether to erase the detected text zone. |
-| [`Name`]({{ site.dcvb_parameters_reference }}image-parameter/name.html) | Defines the name of a `ImageParameter` object, which serves as its unique identifier. |
-| [`RegionPredetectionModes`]({{ site.dcvb_parameters_reference }}image-parameter/region-predetection-modes.html) | Defines how to find a region of interest (ROI) within the image or frame. |
-| [`ScaleDownThreshold`]({{ site.dcvb_parameters_reference }}image-parameter/scale-down-threshold.html) | Defines the threshold for image shrinking. |
-| [`ScaleUpModes`]({{ site.dcvb_parameters_reference }}image-parameter/scale-up-modes.html) | Defines the scale-up process when targets in the image are too small. |
-| [`TextDetectionMode`]({{ site.dcvb_parameters_reference }}image-parameter/text-detection-mode.html) | Defines how to detect the text area. |
-| [`TextureDetectionModes`]({{ site.dcvb_parameters_reference }}image-parameter/texture-detection-modes.html) | Defines how to detect texture on an image. |
-
-## Barcode Format Specification
-
-| Parameter Name | Description |
-| ---------------- | ----------- |
-| [`AllModuleDeviation`]({{ site.dcvb_parameters_reference }}barcode-format-specification/all-module-deviation.html) | Defines the width deviation value (in moduleSize) of a non-standard 1D barcode type relative to the standard barcode width. |
-| [`AustralianPostEncodingTable`]({{ site.dcvb_parameters_reference }}barcode-format-specification/australian-post-encoding-table.html) | Defines the encoding table used to code the Customer Information Field of Australian Post Customer Barcode. |
-| [`BarcodeAngleRangeArray`]({{ site.dcvb_parameters_reference }}barcode-format-specification/barcode-angle-range-array.html) | Defines the range of angles (in degrees) for barcodes searching and result filtering. |
-| [`BarcodeBytesLengthRangeArray`]({{ site.dcvb_parameters_reference }}barcode-format-specification/barcode-bytes-length-range-array.html) | Defines the range of barcode bytes length for barcodes searching and result filtering. |
-| [`BarcodeHeightRangeArray`]({{ site.dcvb_parameters_reference }}barcode-format-specification/barcode-height-range-array.html) | Defines the range of heights (in pixels) for barcodes searching and result filtering. |
-| [`BarcodeTextLengthRangeArray`]({{ site.dcvb_parameters_reference }}barcode-format-specification/barcode-text-length-range-array.html) | Defines the range of barcode text length for barcodes searching and result filtering. |
-| [`BarcodeTextRegExPattern`]({{ site.dcvb_parameters_reference }}barcode-format-specification/barcode-text-regex-pattern.html) | Defines the regular expression pattern of barcode text characters for barcodes searching and result filtering. |
-| [`BarcodeWidthRangeArray`]({{ site.dcvb_parameters_reference }}barcode-format-specification/barcode-width-range-array.html) | Defines the range of widths (in pixels) for barcodes searching and result filtering. |
-| [`BarcodeZoneBarCountRangeArray`]({{ site.dcvb_parameters_reference }}barcode-format-specification/barcode-zone-bar-count-range-array.html) | Defines the range of bar count of the barcode zone for barcodes searching. |
-| [`BarcodeZoneMinDistanceToImageBorders`]({{ site.dcvb_parameters_reference }}barcode-format-specification/barcode-zone-min-distance-to-image-borders.html) | Defines the minimum distance (in pixels) between the barcode zone and image borders. |
-| [`Code128Subset`]({{ site.dcvb_parameters_reference }}barcode-format-specification/code128-subset.html) | Defines the subset of Code 128. |
-| [`EnableAddOnCode`]({{ site.dcvb_parameters_reference }}barcode-format-specification/enable-addon-code.html) | Defines whether to identify addon code. |
-| [`EnableDataMatrixECC000-140`]({{ site.dcvb_parameters_reference }}barcode-format-specification/enable-data-matrix-ecc000-140.html) | Defines whether to read Data Matrix ECC000-140 barcode. |
-| [`EnableQRCodeModel1`]({{ site.dcvb_parameters_reference }}barcode-format-specification/enable-qr-code-model-1.html) | Defines whether to read QR code model 1. |
-| [`FindUnevenModuleBarcode`]({{ site.dcvb_parameters_reference }}barcode-format-specification/find-uneven-module-barcode.html) | Defines whether to find barcodes with uneven barcode modules. |
-| [`HeadModuleRatio`]({{ site.dcvb_parameters_reference }}barcode-format-specification/head-module-ratio.html) | Defines the module count and module size ratio of the barcode head section. |
-| [`MinQuietZoneWidth`]({{ site.dcvb_parameters_reference }}barcode-format-specification/min-quiet-zone-width.html) | Defines the minimum width (in moduleSize) of the barcode quiet zone. |
-| [`MinRatioOfBarcodeZoneWidthToHeight`]({{ site.dcvb_parameters_reference }}barcode-format-specification/min-ratio-of-barcode-zone-width-to-height.html) | Defines the minimum ratio (width/height as a percentage) of the barcode zone. |
-| [`MinResultConfidence`]({{ site.dcvb_parameters_reference }}barcode-format-specification/min-result-confidence.html) | Defines the minimum confidence of the result. |
-| [`MirrorMode`]({{ site.dcvb_parameters_reference }}barcode-format-specification/mirror-mode.html) | Defines whether to decode mirrored barcodes. |
-| [`ModuleSizeRangeArray`]({{ site.dcvb_parameters_reference }}barcode-format-specification/module-size-range-array.html) | Defines the range of module size (in pixels) while barcode searching and result filtering. |
-| [`MSICodeCheckDigitCalculation`]({{ site.dcvb_parameters_reference }}barcode-format-specification/msi-code-check-digit-calculation.html) | Defines the scheme used for calculating a check digit of an MSI barcode. |
-| [`Name`]({{ site.dcvb_parameters_reference }}barcode-format-specification/name.html) | Defines the name of a `BarcodeFormatSpecification` object, which serves as its unique identifier. |
-| [`PartitionModes`]({{ site.dcvb_parameters_reference }}barcode-format-specification/partition-modes.html) | Defines the mode to apply partition process when decoding QRCode and DataMatrix. |
-| [`PatchCodeSearchingMargin`]({{ site.dcvb_parameters_reference }}barcode-format-specification/patch-code-searching-margins.html) | Defines the patch code searching margins. |
-| [`RequireStartStopChars`]({{ site.dcvb_parameters_reference }}barcode-format-specification/require-start-stop-chars.html) | Defines whether the start and stop characters are required when searching for common 1D barcodes. |
-| [`ReturnPartialBarcodeValue`]({{ site.dcvb_parameters_reference }}barcode-format-specification/return-partial-barcode-value.html) | Defines whether to return partial barcode value(s). |
-| [`StandardFormat`]({{ site.dcvb_parameters_reference }}barcode-format-specification/standard-format.html) | Defines the standard barcode format. |
-| [`TailModuleRatio`]({{ site.dcvb_parameters_reference }}barcode-format-specification/tail-module-ratio.html) | Defines the module count and module size ratio of the barcode tail section. |
-| [`VerifyCheckDigit`]({{ site.dcvb_parameters_reference }}barcode-format-specification/verify-check-digit.html) | Defines whether to verify the check digit in barcodes where this check digit is optional. |
-
-## Image Source Options
-
-| Parameter Name | Description |
-| -------------------- | ----------- |
-| [`DirectoryPath`]({{ site.dcvb_parameters_reference }}image-source-options/directory-path.html) | Defines a path when the library have to read files. |
-| [`FileFilter`]({{ site.dcvb_parameters_reference }}image-source-options/file-filter.html) | Defines a file name filter string, which determines which files are fetched. |
-| [`Name`]({{ site.dcvb_parameters_reference }}image-source-options/name.html) | Defines the name of a `ImageSource` object, which serves as its unique identifier. |
-| [`Pages`]({{ site.dcvb_parameters_reference }}image-source-options/pages.html) | Sets the 0-based page indexes of a file (.tiff or .pdf) for barcode searching. |
-| [`PDFReadingMode`]({{ site.dcvb_parameters_reference }}image-source-options/pdf-reading-mode.html) | Defines how to handle PDF files. |
-| [`Recursive`]({{ site.dcvb_parameters_reference }}image-source-options/recursive.html) | Defines whether to fetch files recursively. |
-| [`Type`]({{ site.dcvb_parameters_reference }}image-source-options/type.html) | Defines the type of the ImageSource object, which helps CVR create the correct type of image source. |
-
-## Global Parameter
-
-| Parameter Name | Description |
-| ---------------------------- | ----------- |
-| [`MaxTotalImageDimension`]({{ site.dcvb_parameters_reference }}global-parameter/max-total-image-dimension.html) | Defines the maximum total dimension of the images that read in the memory. |
-
diff --git a/parameters/reference/intermediate-result-saving-mode.md b/parameters/reference/intermediate-result-saving-mode.md
deleted file mode 100644
index 42704e46..00000000
--- a/parameters/reference/intermediate-result-saving-mode.md
+++ /dev/null
@@ -1,128 +0,0 @@
----
-layout: default-layout
-title: IntermediateResultSavingMode - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for IntermediateResultSavingMode.
-keywords: IntermediateResultSavingMode, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/intermediate-result-saving-mode.html
----
-
-
-# IntermediateResultSavingMode
-
-`IntermediateResultSavingMode` defines how to save the intermediate result(s). It can be one of the follwoing candidate modes.
-
-## Candidate Mode List
-- IRSM_MEMORY
-- IRSM_FILESYSTEM
-- IRSM_BOTH
-- IRSM_REFERENCE_MEMORY
-
-
-### IRSM_MEMORY
-Saves intermediate results in memory with public data format.
-
-### IRSM_FILESYSTEM
-Saves intermediate results in file system. This mode has the following arguments for further customizing.
-- [FolderPath](#folderpath)
-- [RecordsetSizeOfLatestImages](#recordsetsizeoflatestimages)
-
-### IRSM_BOTH
-Saves intermediate results using IRSM_MEMORY and IRSM_FILESYSTEM. This mode has the following arguments for further customizing.
-- [FolderPath](#folderpath)
-
-### IRSM_REFERENCE_MEMORY
-Saves intermediate results in memory with internal data format. This mode has the following arguments for further customizing.
-- [FolderPath](#folderpath)
-- [RecordsetSizeOfLatestImages](#recordsetsizeoflatestimages)
-
-## Setting Methods
-
-### As `PublicRuntimeSettings` Member
-`IntermediateResultSavingMode` can be set dynamically during runtime as a member of `PublicRuntimeSettings` struct, it is one of the `IntermediateResultSavingMode` Enumeration items.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->intermediateResultSavingMode = IRSM_MEMORY;
-reader->UpdateRuntimeSettings(pSettings);
-delete pSettings;
-//...other codes
-```
-
-
-**See Also**
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- `IntermediateResultSavingMode:` [JavaScript]({{ site.js_enumerations }}EnumIntermediateResultSavingMode.html) \| [C]({{ site.c_cpp_enumerations }}result-enums.html?src=c#intermediateresultsavingmode) \| [C++]({{ site.c_cpp_enumerations }}result-enums.html?src=cpp#intermediateresultsavingmode) \| [.NET]({{ site.dotnet_enumerations }}result-enums.html#intermediateresultsavingmode) \| [Python]({{ site.python_enumerations }}result-enums.html#intermediateresultsavingmode) \| [Java]({{ site.java_enumerations }}result-enums.html#intermediateresultsavingmode) \| [Java-Android]({{ site.mobile_enumerations }}intermediate-result-saving-mode.html?lang=android) \| [Objective-C & Swift]({{ site.mobile_enumerations }}intermediate-result-saving-mode.html?lang=objc,swift)
-
-
-### As JSON Parameter
-`IntermediateResultSavingMode` as a JSON parameter is a JSON object defined as below.
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| Mode | Any one in Candidate Mode List as string | (Required) Sets how to save the intermediate result. |
-| FolderPath | A string from value range of FolderPath | (Optional) Sets the Argument [FolderPath](#folderpath). |
-| RecordsetSizeOfLatestImages | A number from value range of RecordsetSizeOfLatestImages | (Optional) Sets the Argument [RecordsetSizeOfLatestImages](#recordsetsizeoflatestimages). |
-
-
-
-**JSON Parameter Example**
-```
-{
- "IntermediateResultSavingMode": {
- "Mode": "IRSM_FILESYSTEM",
- "FolderPath": "C:\",
- "RecordsetSizeOfLatestImages": 0
- }
-}
-```
-
-
-
-## Candidate Argument List
-- [FolderPath](#folderpath)
-- [RecordsetSizeOfLatestImages](#recordsetsizeoflatestimages)
-
-### FolderPath
-Sets the path of the output folder which stores intermediate results.
-
-| Value Type | Value Range | Default Value |
-| ---------- | ----------- | ------------- |
-| *string* | A string value representing the folder path with max length 480. | "" |
-
-**Remarks**
- - "": The library path.
- - Please make sure the path exists and your application has the appropriate permissions for saving the results.
-
-### RecordsetSizeOfLatestImages
-Sets the maximum count of recordset to store the latest images' intermediate results.
-
-| Value Type | Value Range | Default Value |
-| ---------- | ----------- | ------------- |
-| *int* | [0,0x7fffffff] | 0 |
-
-**Remarks**
- - 0: no limitation on the count of recordset.
- - When the count exceeds, the old recordset will be replaced by the new one.
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to obtain and use intermediate results]({{ site.scenario_settings }}intermediate-result.html)
diff --git a/parameters/reference/intermediate-result-types.md b/parameters/reference/intermediate-result-types.md
deleted file mode 100644
index 7b28ebcf..00000000
--- a/parameters/reference/intermediate-result-types.md
+++ /dev/null
@@ -1,71 +0,0 @@
----
-layout: default-layout
-title: IntermediateResultTypes - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for IntermediateResultTypes.
-keywords: IntermediateResultTypes, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/intermediate-result-types.html
----
-
-
-# IntermediateResultTypes
-
-`IntermediateResultTypes` defines the types of intermediate result(s) to be kept for further reference. It is a combined value of [`IntermediateResultType` Enumeration]({{ site.enumerations }}result-enums.html#intermediateresulttype) items. No intermediate result will be kept by default.
-
-## Setting Methods
-`IntermediateResultTypes` can be set through `PublicRuntimeSettings` or JSON template.
-
-### As `PublicRuntimeSettings` Member
-`IntermediateResultTypes` can be set dynamically during runtime as a member of `PublicRuntimeSettings` struct.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->intermediateResultTypes = IRT_BINARIZED_IMAGE;
-reader->UpdateRuntimeSettings(pSettings);
-delete pSettings;
-//...other codes
-```
-
-
-
-**See Also**
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- `IntermediateResultType:` [JavaScript]({{ site.js_enumerations }}EnumIntermediateResultType.html) \| [C]({{ site.c_cpp_enumerations }}result-enums.html?src=c#intermediateresulttype) \| [C++]({{ site.c_cpp_enumerations }}result-enums.html?src=cpp#intermediateresulttype) \| [.NET]({{ site.dotnet_enumerations }}result-enums.html#intermediateresulttype) \| [Python]({{ site.python_enumerations }}result-enums.html#intermediateresulttype) \| [Java]({{ site.java_enumerations }}result-enums.html#intermediateresulttype) \| [Java-Android]({{ site.mobile_enumerations }}intermediate-result-type.html?lang=android) \| [Objective-C & Swift]({{ site.mobile_enumerations }}intermediate-result-type.html?lang=objc,swift)
-
-
-### As JSON Parameter
-`IntermediateResultTypes` as a JSON parameter is a string Array defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| IntermediateResultTypes | A string array while each array item is one of the [`IntermediateResultType` Enumeration]({{ site.c_cpp_enumerations }}result-enums.html?src=cpp#intermediateresulttype) items. |
-
-
-**JSON Example**
-```
-{
- "IntermediateResultTypes": ["IRT_BINARIZED_IMAGE", "IRT_PREDETECTED_REGION"]
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to obtain and use intermediate results]({{ site.scenario_settings }}intermediate-result.html)
diff --git a/parameters/reference/localization-modes-v8.6.0.md b/parameters/reference/localization-modes-v8.6.0.md
deleted file mode 100644
index 310c4761..00000000
--- a/parameters/reference/localization-modes-v8.6.0.md
+++ /dev/null
@@ -1,195 +0,0 @@
----
-layout: default-layout
-title: LocalizationModes - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for LocalizationModes.
-keywords: LocalizationModes, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
----
-
-
-# LocalizationModes
-
-`LocalizationModes` is a parameter to control how to localize barcodes. It consists of one or more modes, each mode represents a way to implement the localization.
-
-
-## Candidate Mode List
-- LM_CONNECTED_BLOCKS
-- LM_STATISTICS
-- LM_LINES
-- LM_SCAN_DIRECTLY
-- LM_STATISTICS_MARKS
-- LM_STATISTICS_POSTAL_CODE
-- LM_CENTRE
-
-### LM_CONNECTED_BLOCKS
-Localizes barcodes by searching for connected blocks. This algorithm usually gives best result and it is recommended to set ConnectedBlocks to the highest priority. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### LM_STATISTICS
-Localizes barcodes by groups of contiguous black-white regions. This is optimized for QRCode and DataMatrix. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### LM_LINES
-Localizes barcodes by searching for groups of lines. This is optimized for 1D and PDF417 barcodes. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### LM_SCAN_DIRECTLY
-Localizes barcodes quickly. This mode is recommended in interactive scenario. This mode has the following arguments for further customizing.
-
-- [ScanStride](#scanstride)
-- [ScanDirection](#scandirection)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### LM_STATISTICS_MARKS
-Localizes barcodes by groups of marks.This is optimized for DPM codes. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### LM_STATISTICS_POSTAL_CODE
-Localizes barcodes by groups of connected blocks and lines.This is optimized for postal codes. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### LM_CENTRE
-Localizes barcodes from the centre of the image. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-## Setting Methods
-
-### As `PublicRuntimeSettings` Member
-`LocalizationModes` can be set dynamically during runtime as a member of `PublicRuntimeSettings` struct, it is an array with 8 [`LocalizationMode`]({{ site.enumerations }}parameter-mode-enums.html#localizationmode) Enumeration items.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->localizationModes[0] = LM_SCAN_DIRECTLY;
-pSettings->localizationModes[1] = LM_CONNECTED_BLOCKS;
-reader->UpdateRuntimeSettings(pSettings);
-reader->SetModeArgument("LocalizationModes", 0, "ScanStride", "5");
-delete pSettings;
-//...other codes
-```
-
-
-**Remarks**
-`GetModeArgument` and `SetModeArgument` need to be called for getting and setting [`Arguments`](#candidate-argument-list).
-
-
-**See Also**
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- [`LocalizationMode` Enumeration]({{ site.enumerations }}parameter-mode-enums.html#localizationmode)
-- `GetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#getmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_getmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#getmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#get_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument)
-- `SetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#setmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_setmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#setmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#set_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument)
-
-
-### As JSON Parameter
-`LocalizationModes` as a JSON parameter is a JSON Object array. Each JSON object is defined as below.
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| Mode | Any one in Candidate Mode List as string | (Required) Specifies a mode for deformation resisting. |
-| ScanStride | A number from value range of ScanStride | (Optional) Sets the Argument [ScanStride](#scanstride). |
-| ScanDirection | A number from value range of ScanDirection | (Optional) Sets the Argument [ScanDirection](#scandirection). |
-| LibraryFileName | A string from value range of LibraryFileName | (Optional) Sets the Argument [LibraryFileName](#libraryfilename). |
-| LibraryParameters | A string from value range of LibraryParameters | (Optional) Sets the Argument [LibraryParameters](#libraryparameters). |
-
-
-
-**JSON Parameter Example**
-```
-{
- "LocalizationModes": [
- {
- "Mode": "LM_SCAN_DIRECTLY",
- "ScanStride": 5
- },
- {
- "Mode": "LM_CONNECTED_BLOCKS"
- }
- ]
-}
-```
-
-
-
-## Candidate Argument List
-- [ScanStride](#scanstride)
-- [ScanDirection](#scandirection)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### ScanStride
-Sets the stride in pixels between scans when searching for barcodes.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [0, 0x7fffffff] | 0 | LM_SCAN_DIRECTLY |
-
-**Remarks**
- - 0: automatically set by the library.
- - When the set value is greater than half the width or height of current image, the actual processing is 0.
-
-**Performance Adaptability**
-A smaller value may improve the Read Rate but slow down the Speed.
-
-### ScanDirection
-Sets the scan direction when searching barcode.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [0, 2] | 0 | LM_SCAN_DIRECTLY |
-
-**Remarks**
- - 0: Both vertical and horizontal direction.
- - 1: Vertical direction.
- - 2: Horizontal direction.
-
-### LibraryFileName
-Sets the file name of the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing file name. | "" | All modes |
-
-
-**Remarks**
-The library must be in the same place with Dynamsoft Barcode Reader Library.
-
-
-### LibraryParameters
-Sets the parameters passed to the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | ----------- |
-| *string* | A string value representing parameters. | "" | All modes |
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to use different localization modes]({{ site.scenario_settings }}how-to-set-localization-modes.html)
\ No newline at end of file
diff --git a/parameters/reference/localization-modes-v8.9.3.md b/parameters/reference/localization-modes-v8.9.3.md
deleted file mode 100644
index 25810aad..00000000
--- a/parameters/reference/localization-modes-v8.9.3.md
+++ /dev/null
@@ -1,204 +0,0 @@
----
-layout: default-layout
-title: LocalizationModes - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for LocalizationModes.
-keywords: LocalizationModes, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
----
-
-
-# LocalizationModes
-
-`LocalizationModes` is a parameter to control how to localize barcodes. It consists of one or more modes, each mode represents a way to implement the localization.
-
-
-## Candidate Mode List
-- LM_CONNECTED_BLOCKS
-- LM_STATISTICS
-- LM_LINES
-- LM_SCAN_DIRECTLY
-- LM_STATISTICS_MARKS
-- LM_STATISTICS_POSTAL_CODE
-- LM_CENTRE
-- LM_ONED_FAST_SCAN
-
-### LM_CONNECTED_BLOCKS
-Localizes barcodes by searching for connected blocks. This algorithm usually gives best result and it is recommended to set ConnectedBlocks to the highest priority. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### LM_STATISTICS
-Localizes barcodes by groups of contiguous black-white regions. This is optimized for QRCode and DataMatrix. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### LM_LINES
-Localizes barcodes by searching for groups of lines. This is optimized for 1D and PDF417 barcodes. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### LM_SCAN_DIRECTLY
-Localizes barcodes quickly. This mode is recommended in interactive scenario. This mode has the following arguments for further customizing.
-
-- [ScanStride](#scanstride)
-- [ScanDirection](#scandirection)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### LM_STATISTICS_MARKS
-Localizes barcodes by groups of marks.This is optimized for DPM codes. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### LM_STATISTICS_POSTAL_CODE
-Localizes barcodes by groups of connected blocks and lines.This is optimized for postal codes. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### LM_CENTRE
-Localizes barcodes from the centre of the image. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### LM_ONED_FAST_SCAN
-Localizes 1D barcodes in a fast mode. This mode is designed for reading 1D barcodes in a very fast mode. This mode has the following arguments for further customizing.
-
-- [ScanStride](#scanstride)
-- [ScanDirection](#scandirection)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-## Setting Methods
-
-### As `PublicRuntimeSettings` Member
-`LocalizationModes` can be set dynamically during runtime as a member of `PublicRuntimeSettings` struct, it is an array with 8 [`LocalizationMode`]({{ site.enumerations }}parameter-mode-enums.html#localizationmode) Enumeration items.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->localizationModes[0] = LM_SCAN_DIRECTLY;
-pSettings->localizationModes[1] = LM_CONNECTED_BLOCKS;
-reader->UpdateRuntimeSettings(pSettings);
-reader->SetModeArgument("LocalizationModes", 0, "ScanStride", "5");
-delete pSettings;
-//...other codes
-```
-
-
-**Remarks**
-`GetModeArgument` and `SetModeArgument` need to be called for getting and setting [`Arguments`](#candidate-argument-list).
-
-
-**See Also**
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- [`LocalizationMode` Enumeration]({{ site.enumerations }}parameter-mode-enums.html#localizationmode)
-- `GetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#getmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_getmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#getmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#get_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument)
-- `SetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#setmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_setmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#setmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#set_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument)
-
-
-### As JSON Parameter
-`LocalizationModes` as a JSON parameter is a JSON Object array. Each JSON object is defined as below.
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| Mode | Any one in Candidate Mode List as string | (Required) Specifies a mode for deformation resisting. |
-| ScanStride | A number from value range of ScanStride | (Optional) Sets the Argument [ScanStride](#scanstride). |
-| ScanDirection | A number from value range of ScanDirection | (Optional) Sets the Argument [ScanDirection](#scandirection). |
-| LibraryFileName | A string from value range of LibraryFileName | (Optional) Sets the Argument [LibraryFileName](#libraryfilename). |
-| LibraryParameters | A string from value range of LibraryParameters | (Optional) Sets the Argument [LibraryParameters](#libraryparameters). |
-
-
-
-**JSON Parameter Example**
-```
-{
- "LocalizationModes": [
- {
- "Mode": "LM_SCAN_DIRECTLY",
- "ScanStride": 5
- },
- {
- "Mode": "LM_CONNECTED_BLOCKS"
- }
- ]
-}
-```
-
-
-
-## Candidate Argument List
-- [ScanStride](#scanstride)
-- [ScanDirection](#scandirection)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### ScanStride
-Sets the stride in pixels between scans when searching for barcodes.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [0, 0x7fffffff] | 0 | LM_SCAN_DIRECTLY LM_ONED_FAST_SCAN |
-
-**Remarks**
- - 0: automatically set by the library.
- - When the set value is greater than half the width or height of current image, the actual processing is 0.
-
-**Performance Adaptability**
-A smaller value may improve the Read Rate but slow down the Speed.
-
-### ScanDirection
-Sets the scan direction when searching barcode.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [0, 2] | 0 | LM_SCAN_DIRECTLY LM_ONED_FAST_SCAN |
-
-**Remarks**
- - 0: Both vertical and horizontal direction.
- - 1: Vertical direction.
- - 2: Horizontal direction.
-
-### LibraryFileName
-Sets the file name of the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing file name. | "" | All modes |
-
-
-**Remarks**
-The library must be in the same place with Dynamsoft Barcode Reader Library.
-
-
-### LibraryParameters
-Sets the parameters passed to the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | ----------- |
-| *string* | A string value representing parameters. | "" | All modes |
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to use different localization modes]({{ site.scenario_settings }}how-to-set-localization-modes.html)
\ No newline at end of file
diff --git a/parameters/reference/localization-modes-v9.2.0.md b/parameters/reference/localization-modes-v9.2.0.md
deleted file mode 100644
index 4ced8e48..00000000
--- a/parameters/reference/localization-modes-v9.2.0.md
+++ /dev/null
@@ -1,219 +0,0 @@
----
-layout: default-layout
-title: LocalizationModes - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for LocalizationModes.
-keywords: LocalizationModes, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/localization-modes-v9.2.0.html
----
-
-
-# LocalizationModes
-
-`LocalizationModes` is a parameter to control how to localize barcodes. It consists of one or more modes, each mode represents a way to implement the localization.
-
-
-## Candidate Mode List
-- LM_CONNECTED_BLOCKS
-- LM_STATISTICS
-- LM_LINES
-- LM_SCAN_DIRECTLY
-- LM_STATISTICS_MARKS
-- LM_STATISTICS_POSTAL_CODE
-- LM_CENTRE
-- LM_ONED_FAST_SCAN
-
-### LM_CONNECTED_BLOCKS
-Localizes barcodes by searching for connected blocks. This algorithm usually gives best result and it is recommended to set ConnectedBlocks to the highest priority. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### LM_STATISTICS
-Localizes barcodes by groups of contiguous black-white regions. This is optimized for QRCode and DataMatrix. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### LM_LINES
-Localizes barcodes by searching for groups of lines. This is optimized for 1D and PDF417 barcodes. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### LM_SCAN_DIRECTLY
-Localizes barcodes quickly. This mode is recommended in interactive scenario. This mode has the following arguments for further customizing.
-
-- [ScanStride](#scanstride)
-- [ScanDirection](#scandirection)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### LM_STATISTICS_MARKS
-Localizes barcodes by groups of marks.This is optimized for DPM codes. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### LM_STATISTICS_POSTAL_CODE
-Localizes barcodes by groups of connected blocks and lines.This is optimized for postal codes. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### LM_CENTRE
-Localizes barcodes from the centre of the image. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### LM_ONED_FAST_SCAN
-Localizes 1D barcodes in a fast mode. This mode is designed for reading 1D barcodes in a very fast mode. This mode has the following arguments for further customizing.
-
-- [ScanStride](#scanstride)
-- [ScanDirection](#scandirection)
-- [ConfidenceThreshold](#confidencethreshold)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-## Setting Methods
-
-### As `PublicRuntimeSettings` Member
-`LocalizationModes` can be set dynamically during runtime as a member of `PublicRuntimeSettings` struct, it is an array with 8 [`LocalizationMode`]({{ site.enumerations }}parameter-mode-enums.html#localizationmode) Enumeration items.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->localizationModes[0] = LM_SCAN_DIRECTLY;
-pSettings->localizationModes[1] = LM_CONNECTED_BLOCKS;
-reader->UpdateRuntimeSettings(pSettings);
-reader->SetModeArgument("LocalizationModes", 0, "ScanStride", "5");
-delete pSettings;
-//...other codes
-```
-
-
-**Remarks**
-`GetModeArgument` and `SetModeArgument` need to be called for getting and setting [`Arguments`](#candidate-argument-list).
-
-
-**See Also**
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- [`LocalizationMode` Enumeration]({{ site.enumerations }}parameter-mode-enums.html#localizationmode)
-- `GetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#getmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_getmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#getmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#get_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument)
-- `SetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#setmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_setmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#setmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#set_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument)
-
-
-### As JSON Parameter
-`LocalizationModes` as a JSON parameter is a JSON Object array. Each JSON object is defined as below.
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| Mode | Any one in Candidate Mode List as string | (Required) Specifies a mode for deformation resisting. |
-| ScanStride | A number from value range of ScanStride | (Optional) Sets the Argument [ScanStride](#scanstride). |
-| ScanDirection | A number from value range of ScanDirection | (Optional) Sets the Argument [ScanDirection](#scandirection). |
-| ConfidenceThreshold | A number from value range of ConfidenceThreshold | (Optional) Sets the Argument [ConfidenceThreshold](#confidencethreshold). |
-| LibraryFileName | A string from value range of LibraryFileName | (Optional) Sets the Argument [LibraryFileName](#libraryfilename). |
-| LibraryParameters | A string from value range of LibraryParameters | (Optional) Sets the Argument [LibraryParameters](#libraryparameters). |
-
-
-
-**JSON Parameter Example**
-```
-{
- "LocalizationModes": [
- {
- "Mode": "LM_SCAN_DIRECTLY",
- "ScanStride": 5
- },
- {
- "Mode": "LM_CONNECTED_BLOCKS"
- }
- ]
-}
-```
-
-
-
-## Candidate Argument List
-- [ScanStride](#scanstride)
-- [ScanDirection](#scandirection)
-- [ConfidenceThreshold](#confidencethreshold)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### ScanStride
-Sets the stride in pixels between scans when searching for barcodes.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [0, 0x7fffffff] | 0 | LM_SCAN_DIRECTLY LM_ONED_FAST_SCAN |
-
-**Remarks**
- - 0: automatically set by the library.
- - When the set value is greater than half the width or height of current image, the actual processing is 0.
-
-**Performance Adaptability**
-A smaller value may improve the Read Rate but slow down the Speed.
-
-### ScanDirection
-Sets the scan direction when searching barcode.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [0, 2] | 0 | LM_SCAN_DIRECTLY LM_ONED_FAST_SCAN |
-
-**Remarks**
- - 0: Both vertical and horizontal direction.
- - 1: Vertical direction.
- - 2: Horizontal direction.
-
-### ConfidenceThreshold
-Sets the confidence threshold.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [0, 100] | 60 | LM_ONED_FAST_SCAN |
-
-**Remarks**
- - The localization result will be discarded if its conficence is less then the threshold.
-
-
-### LibraryFileName
-Sets the file name of the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing file name. | "" | All modes |
-
-
-**Remarks**
-The library must be in the same place with Dynamsoft Barcode Reader Library.
-
-
-### LibraryParameters
-Sets the parameters passed to the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | ----------- |
-| *string* | A string value representing parameters. | "" | All modes |
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to use different localization modes]({{ site.scenario_settings }}how-to-set-localization-modes.html)
diff --git a/parameters/reference/localization-modes.md b/parameters/reference/localization-modes.md
deleted file mode 100644
index ac32ff1b..00000000
--- a/parameters/reference/localization-modes.md
+++ /dev/null
@@ -1,228 +0,0 @@
----
-layout: default-layout
-title: LocalizationModes - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for LocalizationModes.
-keywords: LocalizationModes, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/localization-modes.html
----
-
-
-# LocalizationModes
-
-`LocalizationModes` determines how to localize barcodes. It consists of one or more modes, each mode representing a different localization process.
-
-
-## Candidate Mode List
-- LM_CONNECTED_BLOCKS
-- LM_STATISTICS
-- LM_LINES
-- LM_SCAN_DIRECTLY
-- LM_STATISTICS_MARKS
-- LM_STATISTICS_POSTAL_CODE
-- LM_CENTRE
-- LM_ONED_FAST_SCAN
-
-### LM_CONNECTED_BLOCKS
-Localizes barcodes by searching for connected blocks. This algorithm usually gives best result and it is recommended to set ConnectedBlocks to the highest priority. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### LM_STATISTICS
-Localizes barcodes by groups of contiguous black-white regions. This is optimized for QRCode and DataMatrix. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### LM_LINES
-Localizes barcodes by searching for groups of lines. This is optimized for 1D and PDF417 barcodes. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### LM_SCAN_DIRECTLY
-Localizes barcodes quickly. This mode is recommended in interactive scenario. This mode has the following arguments for further customizing.
-
-- [ScanStride](#scanstride)
-- [ScanDirection](#scandirection)
-- [IsOneDStacked](#isonedstacked)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### LM_STATISTICS_MARKS
-Localizes barcodes by groups of marks.This is optimized for DPM codes. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### LM_STATISTICS_POSTAL_CODE
-Localizes barcodes by groups of connected blocks and lines.This is optimized for postal codes. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### LM_CENTRE
-Localizes barcodes from the centre of the image. This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### LM_ONED_FAST_SCAN
-Localizes 1D barcodes in a fast mode. This mode is designed for reading 1D barcodes in a very fast mode. This mode has the following arguments for further customizing.
-
-- [ScanStride](#scanstride)
-- [ScanDirection](#scandirection)
-- [ConfidenceThreshold](#confidencethreshold)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-## Setting Methods
-
-### As `PublicRuntimeSettings` Member
-`LocalizationModes` can be set dynamically during runtime as a member of `PublicRuntimeSettings` struct, it is an array with 8 `LocalizationMode` Enumeration items.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->localizationModes[0] = LM_SCAN_DIRECTLY;
-pSettings->localizationModes[1] = LM_CONNECTED_BLOCKS;
-reader->UpdateRuntimeSettings(pSettings);
-reader->SetModeArgument("LocalizationModes", 0, "ScanStride", "5");
-delete pSettings;
-//...other codes
-```
-
-
-**Remarks**
-`GetModeArgument` and `SetModeArgument` need to be called for getting and setting [`Arguments`](#candidate-argument-list).
-
-
-**See Also**
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- `LocalizationMode:` [JavaScript]({{ site.js_enumerations }}EnumLocalizationMode.html) \| [C]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=c#localizationmode) \| [C++]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=cpp#localizationmode) \| [.NET]({{ site.dotnet_enumerations }}parameter-mode-enums.html#localizationmode) \| [Python]({{ site.python_enumerations }}parameter-mode-enums.html#localizationmode) \| [Java]({{ site.java_enumerations }}parameter-mode-enums.html#localizationmode) \| [Java-Android]({{ site.mobile_enumerations }}localization-mode.html?lang=android) \| [Objective-C & Swift]({{ site.mobile_enumerations }}localization-mode.html?lang=objc,swift)
-- `GetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#getmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_getmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#getmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#get_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument)
-- `SetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#setmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_setmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#setmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#set_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument)
-
-
-### As JSON Parameter
-`LocalizationModes` as a JSON parameter is a JSON Object array. Each JSON object is defined as below.
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| Mode | Any one in Candidate Mode List as string | (Required) Specifies a mode for deformation resisting. |
-| ScanStride | A number from value range of ScanStride | (Optional) Sets the Argument [ScanStride](#scanstride). |
-| ScanDirection | A number from value range of ScanDirection | (Optional) Sets the Argument [ScanDirection](#scandirection). |
-| ConfidenceThreshold | A number from value range of ConfidenceThreshold | (Optional) Sets the Argument [ConfidenceThreshold](#confidencethreshold). |
-| IsOneDStacked | A number from value range of IsOneDStacked | (Optional) Sets the Argument [IsOneDStacked](#isonedstacked). |
-| LibraryFileName | A string from value range of LibraryFileName | (Optional) Sets the Argument [LibraryFileName](#libraryfilename). |
-| LibraryParameters | A string from value range of LibraryParameters | (Optional) Sets the Argument [LibraryParameters](#libraryparameters). |
-
-
-
-**JSON Parameter Example**
-```
-{
- "LocalizationModes": [
- {
- "Mode": "LM_SCAN_DIRECTLY",
- "ScanStride": 5
- },
- {
- "Mode": "LM_CONNECTED_BLOCKS"
- }
- ]
-}
-```
-
-
-
-## Candidate Argument List
-- [ScanStride](#scanstride)
-- [ScanDirection](#scandirection)
-- [ConfidenceThreshold](#confidencethreshold)
-- [IsOneDStacked](#isonedstacked)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### ScanStride
-Sets the stride in pixels between scans when searching for barcodes.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [0, 0x7fffffff] | 0 | LM_SCAN_DIRECTLY LM_ONED_FAST_SCAN |
-
-**Remarks**
- - 0: automatically set by the library.
- - When the set value is greater than half the width or height of current image, the actual processing is 0.
-
-**Performance Adaptability**
-A smaller value may improve the Read Rate but slow down the Speed.
-
-### ScanDirection
-Sets the scan direction when searching barcode.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [0, 2] | 0 | LM_SCAN_DIRECTLY LM_ONED_FAST_SCAN |
-
-**Remarks**
- - 0: Both vertical and horizontal direction.
- - 1: Vertical direction.
- - 2: Horizontal direction.
-
-### ConfidenceThreshold
-Sets the confidence threshold.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [0, 100] | 60 | LM_ONED_FAST_SCAN |
-
-**Remarks**
- - The localization result will be discarded if its confidence is less then the threshold.
-
-### IsOneDStacked
-Sets whether the oned barcodes are stacked.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [0, 1] | 0 | LM_SCAN_DIRECTLY |
-
-### LibraryFileName
-Sets the file name of the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing file name. | "" | All modes |
-
-
-**Remarks**
-The library must be in the same place with Dynamsoft Barcode Reader Library.
-
-
-### LibraryParameters
-Sets the parameters passed to the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | ----------- |
-| *string* | A string value representing parameters. | "" | All modes |
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to use different localization modes]({{ site.scenario_settings }}how-to-set-localization-modes.html)
diff --git a/parameters/reference/max-algorithm-thread-count.md b/parameters/reference/max-algorithm-thread-count.md
deleted file mode 100644
index 80208cc3..00000000
--- a/parameters/reference/max-algorithm-thread-count.md
+++ /dev/null
@@ -1,73 +0,0 @@
----
-layout: default-layout
-title: MaxAlgorithmThreadCount - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for MaxAlgorithmThreadCount.
-keywords: MaxAlgorithmThreadCount, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/max-algorithm-thread-count.html
----
-
-
-# MaxAlgorithmThreadCount
-
-`MaxAlgorithmThreadCount` defines the number of threads the image processing algorithm will use to decode barcodes. It is defined as below:
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *int* | [1, 4] | 4 | `ImageParameter` |
-
-
-## Setting Methods
-`MaxAlgorithmThreadCount` is supported to be set through `RuntimeSetting` or JSON template.
-
-### As `PublicRuntimeSettings` Member
-`MaxAlgorithmThreadCount` can be set dynamically during runtime as a member of `PublicRuntimeSettings` struct.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->maxAlgorithmThreadCount = 1;
-reader->UpdateRuntimeSettings(pSettings);
-delete pSettings;
-//...other codes
-```
-
-
-**See Also**
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-
-
-### As JSON Parameter
-`MaxAlgorithmThreadCount` as a JSON parameter is a number value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| MaxAlgorithmThreadCount | A number from [1, 4] |
-
-
-**JSON Example**
-```
-{
- "MaxAlgorithmThreadCount": 1
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
diff --git a/parameters/reference/min-quiet-zone-width.md b/parameters/reference/min-quiet-zone-width.md
deleted file mode 100644
index b445fc86..00000000
--- a/parameters/reference/min-quiet-zone-width.md
+++ /dev/null
@@ -1,58 +0,0 @@
----
-layout: default-layout
-title: MinQuietZoneWidth - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for MinQuietZoneWidth.
-keywords: MinQuietZoneWidth, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/min-quiet-zone-width.html
----
-
-
-# MinQuietZoneWidth
-
-`MinQuietZoneWidth` defines the minimum width (in moduleSize) of the barcode quiet zone. It is defined as below:
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *int* | [0, 0x7fffffff] | 4 | `FormatSpecification` |
-
-
-**Remarks**
-- The unit is a multiplier of the barcode module size. For example, if barcode module is 2px and MinQuietZoneWidth is 4, then the width of quiet zone is 8px.
-
-
-## Setting Methods
-`MinQuietZoneWidth` can be set via JSON template.
-
-### As JSON Parameter
-`MinQuietZoneWidth` as a JSON parameter is a number value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| MinQuietZoneWidth | A number from [0, 0x7fffffff] |
-
-
-**JSON Example**
-```
-{
- "MinQuietZoneWidth": 1
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [Configure parameters for a certain barcode format]({{ site.scenario_settings }}format-specification.html#minquietzonewidth)
diff --git a/parameters/reference/min-ratio-of-barcode-zone-width-to-height.md b/parameters/reference/min-ratio-of-barcode-zone-width-to-height.md
deleted file mode 100644
index 3c04d3da..00000000
--- a/parameters/reference/min-ratio-of-barcode-zone-width-to-height.md
+++ /dev/null
@@ -1,57 +0,0 @@
----
-layout: default-layout
-title: MinRatioOfBarcodeZoneWidthToHeight - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for MinRatioOfBarcodeZoneWidthToHeight.
-keywords: MinRatioOfBarcodeZoneWidthToHeight, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/min-ratio-of-barcode-zone-width-to-height.html
----
-
-
-# MinRatioOfBarcodeZoneWidthToHeight
-
-`MinRatioOfBarcodeZoneWidthToHeight` defines the minimum ratio (width/height as a percentage) of the barcode zone. It is defined as below:
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *int* | [0, 10000] | 0 | `FormatSpecification` |
-
-**Remarks**
-
-- 0: means no limitation.
-
-## Setting Methods
-`MinRatioOfBarcodeZoneWidthToHeight` can be set via JSON template.
-
-### As JSON Parameter
-`MinRatioOfBarcodeZoneWidthToHeight` as a JSON parameter is a number value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| MinRatioOfBarcodeZoneWidthToHeight | A number from [0, 10000] |
-
-**JSON Example**
-
-```
-{
- "MinRatioOfBarcodeZoneWidthToHeight": 100
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to filter out results]({{ site.scenario_settings }}decode-result.html)
diff --git a/parameters/reference/min-result-confidence-v8.6.0.md b/parameters/reference/min-result-confidence-v8.6.0.md
deleted file mode 100644
index 5b1c92e5..00000000
--- a/parameters/reference/min-result-confidence-v8.6.0.md
+++ /dev/null
@@ -1,73 +0,0 @@
----
-layout: default-layout
-title: MinResultConfidence - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for MinResultConfidence.
-keywords: MinResultConfidence, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
----
-
-
-# MinResultConfidence
-
-`MinResultConfidence` defines the minimum confidence of the result. It is defined as below:
-
-| Value Type | Value Range | Default Value |
-| ---------- | ----------- | ------------- |
-| *int* | [0, 100] | 0 |
-
-
-## Setting Methods
-`MinResultConfidence` is supported to be set through `RuntimeSetting` or JSON template.
-
-### As `PublicRuntimeSettings` Member
-`MinResultConfidence` can be set dynamically during runtime as a member of `PublicRuntimeSettings` struct.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->minResultConfidence = 30;
-reader->UpdateRuntimeSettings(pSettings);
-delete pSettings;
-//...other codes
-```
-
-
-**See Also**
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-
-
-### As JSON Parameter
-`MinResultConfidence` as a JSON parameter is a number value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| MinResultConfidence | A number from [0, 100] |
-
-
-**JSON Example**
-```
-{
- "MinResultConfidence": 30
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to filter out results]({{ site.scenario_settings }}decode-result.html)
\ No newline at end of file
diff --git a/parameters/reference/min-result-confidence.md b/parameters/reference/min-result-confidence.md
deleted file mode 100644
index 52ef7802..00000000
--- a/parameters/reference/min-result-confidence.md
+++ /dev/null
@@ -1,74 +0,0 @@
----
-layout: default-layout
-title: MinResultConfidence - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for MinResultConfidence.
-keywords: MinResultConfidence, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/min-result-confidence.html
----
-
-
-# MinResultConfidence
-
-`MinResultConfidence` defines the minimum confidence of the result. It is defined as below:
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *int* | [0, 100] | 30 | `FormatSpecification` |
-
-
-## Setting Methods
-`MinResultConfidence` is supported to be set through `RuntimeSetting` or JSON template.
-
-### As `PublicRuntimeSettings` Member
-`MinResultConfidence` can be set dynamically during runtime as a member of `PublicRuntimeSettings` struct.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->minResultConfidence = 30;
-reader->UpdateRuntimeSettings(pSettings);
-delete pSettings;
-//...other codes
-```
-
-
-**See Also**
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-
-
-### As JSON Parameter
-`MinResultConfidence` as a JSON parameter is a number value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| MinResultConfidence | A number from [0, 100] |
-
-
-**JSON Example**
-```
-{
- "MinResultConfidence": 30
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to filter out results]({{ site.scenario_settings }}decode-result.html)
diff --git a/parameters/reference/mirror-mode.md b/parameters/reference/mirror-mode.md
deleted file mode 100644
index e93d13bb..00000000
--- a/parameters/reference/mirror-mode.md
+++ /dev/null
@@ -1,60 +0,0 @@
----
-layout: default-layout
-title: MirrorMode - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for MirrorMode.
-keywords: MirrorMode, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/mirror-mode.html
----
-
-
-# MirrorMode
-
-`MirrorMode` defines whether to decode mirrored barcodes. It is defined as below:
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *string* | "MM_NORMAL" "MM_MIRROR" "MM_BOTH" | For `QRCode`, `DataMatrix`, `PDF417`, `AZTEC`, `Micro QR Code`, `Micro PDF417`, `DotCode` and `Pharmacode Two-Track`, it's "MM_BOTH". For other barcode types, it's "MM_NORMAL". | `FormatSpecification` |
-
-**Remarks**
-- "MM_NORMAL": Doesn't decode mirror barcodes.
-- "MM_MIRROR": Decodes mirror barcodes only.
-- "MM_BOTH": Decodes both normal and mirror barcodes.
-
-
-
-## Setting Methods
-`MirrorMode` can be set via JSON template.
-
-### As JSON Parameter
-`MirrorMode` as a JSON parameter is a number value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| MirrorMode | "MM_NORMAL", "MM_MIRROR" or "MM_BOTH" as a string |
-
-
-**JSON Example**
-```
-{
- "MirrorMode": "MM_NORMAL"
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [Configure parameters for a certain barcode format]({{ site.scenario_settings }}format-specification.html)
diff --git a/parameters/reference/module-size-range-array.md b/parameters/reference/module-size-range-array.md
deleted file mode 100644
index 4f696e92..00000000
--- a/parameters/reference/module-size-range-array.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-layout: default-layout
-title: ModuleSizeRangeArray - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for ModuleSizeRangeArray.
-keywords: ModuleSizeRangeArray, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/module-size-range-array.html
----
-
-
-# ModuleSizeRangeArray
-
-`ModuleSizeRangeArray` defines the range of module size (in pixels) while barcode searching and result filtering. It is not set by default which means there is no limitation on the barcode module size.
-
-## Setting Methods
-`ModuleSizeRangeArray` can be set via JSON template.
-
-### As JSON Parameter
-`ModuleSizeRangeArray` as a JSON parameter is a JSON Object array defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| ModuleSizeRangeArray | A JSON Object array while each Object is defined as below. |
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| MinValue | A number from [0, 0x7fffffff] | Sets the minimum barcode module size. |
-| MaxValue | A number from [0, 0x7fffffff] | Sets the maximum barcode module size. |
-
-
-**JSON Example**
-```
-{
- "ModuleSizeRangeArray": [
- {
- "MinValue": 3,
- "MaxValue": 20
- }
- ]
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [Configure parameters for a certain barcode format]({{ site.scenario_settings }}format-specification.html)
diff --git a/parameters/reference/msi-code-check-digit-calculation.md b/parameters/reference/msi-code-check-digit-calculation.md
deleted file mode 100644
index c248972d..00000000
--- a/parameters/reference/msi-code-check-digit-calculation.md
+++ /dev/null
@@ -1,53 +0,0 @@
----
-layout: default-layout
-title: MSICodeCheckDigitCalculation - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for MSICodeCheckDigitCalculation.
-keywords: MSICodeCheckDigitCalculation, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/msi-code-check-digit-calculation.html
----
-
-
-# MSICodeCheckDigitCalculation
-
-`MSICodeCheckDigitCalculation` defines the scheme used for calculating a check digit of an MSI barcode. It is defined as below:
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *string* | "MSICCDC_NO_CHECK_DIGIT" "MSICCDC_MOD_10" "MSICCDC_MOD_11" "MSICCDC_MOD_1110" "MSICCDC_MOD_1010" | "MSICCDC_MOD_10" | `FormatSpecification` |
-
-
-## Setting Methods
-`MSICodeCheckDigitCalculation` can be set via JSON template.
-
-### As JSON Parameter
-`MSICodeCheckDigitCalculation` as a JSON parameter is a number value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| MSICodeCheckDigitCalculation | "MSICCDC_NO_CHECK_DIGIT", "MSICCDC_MOD_10", "MSICCDC_MOD_11", "MSICCDC_MOD_1110" or "MSICCDC_MOD_1010" as a string |
-
-
-**JSON Example**
-```
-{
- "MSICodeCheckDigitCalculation": "MSICCDC_MOD_10"
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
diff --git a/parameters/reference/pages.md b/parameters/reference/pages.md
deleted file mode 100644
index e7b9a3d3..00000000
--- a/parameters/reference/pages.md
+++ /dev/null
@@ -1,53 +0,0 @@
----
-layout: default-layout
-title: Pages - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for Pages.
-keywords: Pages, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/pages.html
----
-
-
-# Pages
-
-`Pages` defines pages or the range of pages of a file (.tiff or .pdf) for barcode searching. By default, there is no restriction on the number of pages that can be decoded in a single file.
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *string* | N/A | `""` | `ImageParameter` |
-
-## Setting Methods
-`Pages` can be set via JSON template.
-
-### As JSON Parameter
-`Pages` as a JSON parameter is a string value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| Pages | A string of one or more of the following data, separated by commas: 1. One int value which represents a specified page index; 2. One Expression, start index and stop index connected with ""-"", which represents a specified page index range; |
-
-
-**JSON Example**
-```
-{
- "Pages": "0,3,5,7-10"
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to process multi-page TIF & PDF]({{ site.scenario_settings }}multipage-imgs-and-pdf.html)
diff --git a/parameters/reference/partition-modes.md b/parameters/reference/partition-modes.md
deleted file mode 100644
index 6e603856..00000000
--- a/parameters/reference/partition-modes.md
+++ /dev/null
@@ -1,44 +0,0 @@
----
-layout: default-layout
-title: PartitionModes - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for PartitionModes.
-keywords: PartitionModes, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/partition-modes.html
----
-
-
-# PartitionModes
-
-`PartitionModes` is used to select the mode used to apply partition process when decoding QRCode and DataMatrix. It is defined as below:
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *string array* | "PM_WHOLE_BARCODE" "PM_ALIGNMENT_PARTITION" | ["PM_WHOLE_BARCODE","PM_ALIGNMENT_PARTITION"] | `FormatSpecification` |
-
-**Remarks**
-
-- PM_WHOLE_BARCODE: Take the whole barcode for decoding.
-- PM_ALIGNMENT_PARTITION: Partition the barcode to blocks based on alignment.
-- It works only for QRCode and DataMatrix.
-
-## Setting Methods
-
-`PartitionModes` can be set via JSON template.
-
-### As JSON Parameter
-
-`PartitionModes` as a JSON parameter is a string array defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| PartitionModes | A string array while each array item can be "PM_WHOLE_BARCODE" or "PM_ALIGNMENT_PARTITION" |
-
-**JSON Example**
-
-```json
-{
- "PartitionModes": ["PM_WHOLE_BARCODE"]
-}
-```
diff --git a/parameters/reference/patchcode-searching-margins.md b/parameters/reference/patchcode-searching-margins.md
deleted file mode 100644
index 1d9af206..00000000
--- a/parameters/reference/patchcode-searching-margins.md
+++ /dev/null
@@ -1,49 +0,0 @@
----
-layout: default-layout
-title: PatchCodeSearchingMargins - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for PatchCodeSearchingMargins.
-keywords: PatchCodeSearchingMargins, parameter reference, parameter
-permalink: /parameters/reference/patchcode-searching-margins.html
----
-
-
-# PatchCodeSearchingMargins
-
-`PatchCodeSearchingMargins` defines the margins where to search PatchCode.
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *int* | *see [this section](#as-json-parameter)* | *see [this section](#as-json-parameter)* | `FormatSpecification` |
-
-## Setting Methods
-`PatchCodeSearchingMargins` can be set via JSON template.
-
-### As JSON Parameter
-`PatchCodeSearchingMargins` as a JSON parameter is a JSON Object defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| PatchCodeSearchingMargins | A JSON object defined as below |
-
-| Key Name | Key Value | Default Value | Description |
-| -------- | --------- | ------------- | ----------- |
-| Top | A number from [1, 0x7fffffff] when MeasuredByPercentage=0 or [1, 50] when MeasuredByPercentage=1 | 20 | The height of the top margin. When MeasuredByPercentage=1, it's the percentage value of the image height. When MeasuredByPercentage=0, it's a pixel value. |
-| Left | A number from [1, 0x7fffffff] when MeasuredByPercentage=0 or [1, 50] when MeasuredByPercentage=1 | 20 | The width of the left margin. When MeasuredByPercentage=1, it's the percentage value of the image width. When MeasuredByPercentage=0, it's a pixel value. |
-| Right | A number from [1, 0x7fffffff] when MeasuredByPercentage=0 or [1, 50] when MeasuredByPercentage=1 | 20 | The width of the right margin. When MeasuredByPercentage=1, it's the percentage value of the image width. When MeasuredByPercentage=0, it's a pixel value. |
-| Bottom | A number from [1, 0x7fffffff] when MeasuredByPercentage=0 or [1, 50] when MeasuredByPercentage=1 | 20 | The height of the bottom margin. When MeasuredByPercentage=1, it's the percentage value of the image height. When MeasuredByPercentage=0, it's a pixel value. |
-| MeasuredByPercentage | A number from [0, 1] | 1 | Sets whether or not to use percentages to measure the PatchCodeSearchingMargins size. |
-
-**JSON Example**
-
-```json
-{
- "PatchCodeSearchingMargins":
- {
- "Top": 25,
- "Left": 25,
- "Right": 25,
- "Bottom": 25,
- "MeasuredByPercentage": 1
- }
-}
-```
diff --git a/parameters/reference/pdf-raster-dpi-v9.4.0.md b/parameters/reference/pdf-raster-dpi-v9.4.0.md
deleted file mode 100644
index 32532ef6..00000000
--- a/parameters/reference/pdf-raster-dpi-v9.4.0.md
+++ /dev/null
@@ -1,80 +0,0 @@
----
-layout: default-layout
-title: PDFRasterDPI - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for PDFRasterDPI.
-keywords: PDFRasterDPI, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/pdf-raster-dpi-v9.4.0.html
----
-
-
-# PDFRasterDPI
-
-`PDFRasterDPI` defines the resolution used for rasterizing a PDF file. It is defined as below:
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *int* | [100, 600] | 300 | `ImageParameter` |
-
-
-**Remarks**
-When decoding a PDF file using `DecodeFile` method, the library will convert the pdf file to image(s) first, then perform barcode recognition.
-
-
-
-## Setting Methods
-`PDFRasterDPI` is supported to be set through `RuntimeSetting` or JSON template.
-
-### As `PublicRuntimeSettings` Member
-`PDFRasterDPI` can be set dynamically during runtime as a member of `PublicRuntimeSettings` struct.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->pdfRasterDPI = 300;
-reader->UpdateRuntimeSettings(pSettings);
-delete pSettings;
-//...other codes
-```
-
-
-
-**See Also**
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-
-
-### As JSON Parameter
-`PDFRasterDPI` as a JSON parameter is a number value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| PDFRasterDPI | A number from [100, 600] |
-
-
-**JSON Example**
-```
-{
- "PDFRasterDPI": 300
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to process multi-page TIF & PDF]({{ site.scenario_settings }}multipage-imgs-and-pdf.html)
diff --git a/parameters/reference/pdf-raster-dpi.md b/parameters/reference/pdf-raster-dpi.md
deleted file mode 100644
index f13cdea6..00000000
--- a/parameters/reference/pdf-raster-dpi.md
+++ /dev/null
@@ -1,80 +0,0 @@
----
-layout: default-layout
-title: PDFRasterDPI - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for PDFRasterDPI.
-keywords: PDFRasterDPI, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/pdf-raster-dpi.html
----
-
-
-# PDFRasterDPI
-
-`PDFRasterDPI` defines the resolution used for rasterizing a PDF file. It is defined as below:
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *int* | [100, 3000] | 300 | `ImageParameter` |
-
-
-**Remarks**
-When decoding a PDF file using `DecodeFile` method, the library will convert the pdf file to image(s) first, then perform barcode recognition.
-
-
-
-## Setting Methods
-`PDFRasterDPI` is supported to be set through `RuntimeSetting` or JSON template.
-
-### As `PublicRuntimeSettings` Member
-`PDFRasterDPI` can be set dynamically during runtime as a member of `PublicRuntimeSettings` struct.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->pdfRasterDPI = 300;
-reader->UpdateRuntimeSettings(pSettings);
-delete pSettings;
-//...other codes
-```
-
-
-
-**See Also**
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-
-
-### As JSON Parameter
-`PDFRasterDPI` as a JSON parameter is a number value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| PDFRasterDPI | A number from [100, 3000] |
-
-
-**JSON Example**
-```
-{
- "PDFRasterDPI": 300
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to process multi-page TIF & PDF]({{ site.scenario_settings }}multipage-imgs-and-pdf.html)
diff --git a/parameters/reference/pdf-reading-mode.md b/parameters/reference/pdf-reading-mode.md
deleted file mode 100644
index 5e3751b7..00000000
--- a/parameters/reference/pdf-reading-mode.md
+++ /dev/null
@@ -1,92 +0,0 @@
----
-layout: default-layout
-title: PDFReadingMode - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for PDFReadingMode.
-keywords: PDFReadingMode, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/pdf-reading-mode.html
----
-
-
-# PDFReadingMode
-
-`PDFReadingMode` determines how to read barcodes from PDF files.
-
-## Candidate Mode List
-- PDFRM_AUTO
-- PDFRM_VECTOR
-- PDFRM_RASTER
-
-### PDFRM_AUTO
-Lets the library choose a mode automatically.
-
-### PDFRM_VECTOR
-Detects barcode from vector data in PDF file.
-
-**Remarks**
- - The `PDFRM_VECTOR` mode only works for linear barcodes at this point.
-
-### PDFRM_RASTER
-Converts the PDF file to image(s) first, then detects barcode.
-
-**Remarks**
- - The `PDFRM_RASTER` mode works for all barcode formats, including linear barcode, PDF417, QR code, and other 2D codes.
-
-## Setting Methods
-
-### As `PublicRuntimeSettings` Member
-`PDFReadingMode` can be set dynamically during runtime as a member of `PublicRuntimeSettings` struct, it is one of the `PDFReadingMode` Enumeration items.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->pdfReadingMode = PDFRM_VECTOR;
-reader->UpdateRuntimeSettings(pSettings);
-delete pSettings;
-//...other codes
-```
-
-
-**See Also**
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- `PDFReadingMode:` [JavaScript]({{ site.js_enumerations }}EnumPDFReadingMode.html) \| [C]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=c#pdfreadingmode) \| [C++]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=cpp#pdfreadingmode) \| [.NET]({{ site.dotnet_enumerations }}parameter-mode-enums.html#pdfreadingmode) \| [Python]({{ site.python_enumerations }}parameter-mode-enums.html#pdfreadingmode) \| [Java]({{ site.java_enumerations }}parameter-mode-enums.html#pdfreadingmode) \| [Java-Android]({{ site.mobile_enumerations }}pdf-reading-mode.html?lang=android) \| [Objective-C & Swift]({{ site.mobile_enumerations }}pdf-reading-mode.html?lang=objc,swift)
-
-
-### As JSON Parameter
-`PDFReadingMode` as a JSON parameter is a JSON Object defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| Mode | Any one in Candidate Mode List as string |
-
-
-
-**JSON Parameter Example**
-```
-{
- "PDFReadingMode": {
- "Mode" : "PDFRM_VECTOR"
- }
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
diff --git a/parameters/reference/region-definition/index.md b/parameters/reference/region-definition/index.md
deleted file mode 100644
index 4e516cb8..00000000
--- a/parameters/reference/region-definition/index.md
+++ /dev/null
@@ -1,87 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Parameter Reference - RegionDefinition Object
-description: This article shows RegionDefinition Object of Dynamsoft Barcode Reader.
-keywords: parameter reference, parameters, RegionDefinition
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-permalink: /parameters/reference/region-definition/index.html
----
-
-# RegionDefinition Object Parameters
-
-## Content Organization Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`RegionDefinition.Name`](#name) | The name of the RegionDefinition object. |
- | [`RegionDefinition.FormatSpecificationNameArray`](#formatspecificationnamearray) | The names of the referenced FormatSpecification object(s). |
-
-### Name
-
-The name of the RegionDefinition object.
-
-**Remarks**
-
-It must be a unique name.
-
-**JSON Definition**
-
-| Parent Object | Key Name | Key Value Type | Default Value |
-| ------------- | -------- | -------------- | ------------- |
-| RegionDefinition | Name | *string* | It must be a mandatory setting value. |
-
-**JSON Example**
-
-```
-{
- "Name":"Region1"
-}
-```
-
-
-### FormatSpecificationNameArray
-
-The names of the referenced FormatSpecification object(s).
-
-**Remarks**
-An array item is a name of any available `FormatSpecifications`.
-
-**JSON Definition**
-
-| Parent Object | Key Name | Key Value Type | Default Value |
-| ----------- | ------------------- | ---------- | ------------- |
-| RegionDefinition | FormatSpecificationNameArray | *string Array* | `null` |
-
-**JSON Example**
-```
-{
- "FormatSpecificationNameArray":[
- "FormatSpecification1",
- "FormatSpecification2"
- ]
-}
-```
-
-## Cost Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`RegionDefinition.ExpectedBarcodesCount`](../expected-barcodes-count.md) | Sets the expected number of barcodes to be decoded for the current region. |
-
-## Format Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`RegionDefinition.BarcodeFormatIds`](../barcode-format-ids.md) | Sets which types of barcode(s) in BarcodeFormat group 1 to be read in this region. |
- | [`RegionDefinition.BarcodeFormatIds_2`](../barcode-format-ids-2.md) | Sets which types of barcode(s) in BarcodeFormat group 2 to be read in this region. |
-
-## Image Process Control
-
- | Parameter Name | Description |
- | -------------- | ----------- |
- | [`RegionDefinition.Top`](../region.md) | The top-most coordinate or percentage of the region. |
- | [`RegionDefinition.Left`](../region.md) | The left-most coordinate or percentage of the region. |
- | [`RegionDefinition.Right`](../region.md) | The right-most coordinate or percentage of the region. |
- | [`RegionDefinition.Bottom`](../region.md) | The bottom-most coordinate or percentage of the region. |
- | [`RegionDefinition.MeasuredByPercentage`](../region.md) | Sets whether or not to use percentages to measure the Region size. |
diff --git a/parameters/reference/region-predetection-modes-v8.1.2.md b/parameters/reference/region-predetection-modes-v8.1.2.md
deleted file mode 100644
index e9cb0333..00000000
--- a/parameters/reference/region-predetection-modes-v8.1.2.md
+++ /dev/null
@@ -1,295 +0,0 @@
----
-layout: default-layout
-title: RegionPredetectionModes - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for RegionPredetectionModes.
-keywords: RegionPredetectionModes, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
----
-
-
-# RegionPredetectionModes
-
-`RegionPredetectionModes` is a parameter to control how to find a region of interesting. It consists of one or more modes, each mode represents a way to find a region.
-
-
-## Candidate Mode List
-- RPM_AUTO
-- RPM_GENERAL
-- RPM_GENERAL_RGB_CONTRAST
-- RPM_GENERAL_GRAY_CONTRAST
-- RPM_GENERAL_HSV_CONTRAST
-
-### RPM_AUTO
-Lets the library choose a mode automatically.
-
-### RPM_GENERAL
-Takes the whole image as a region.
-This mode has the following arguments for further customizing.
-
-### RPM_GENERAL_RGB_CONTRAST
-Detects region using the general algorithm based on RGB colour contrast.
-This mode has the following arguments for further customizing.
-
-- [MinImageDimension](#minimagedimension)
-- [Sensitivity](#sensitivity)
-- [SpatialIndexBlockSize](#spatialindexblocksize)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### RPM_GENERAL_GRAY_CONTRAST
-Detects region using the general algorithm based on gray contrast.
-This mode has the following arguments for further customizing.
-
-- [MinImageDimension](#minimagedimension)
-- [Sensitivity](#sensitivity)
-- [SpatialIndexBlockSize](#spatialindexblocksize)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### RPM_GENERAL_HSV_CONTRAST
-Detects region using the general algorithm based on HSV colour contrast.
-This mode has the following arguments for further customizing.
-
-- [AspectRatioRange](#aspectratiorange )
-- [ForeAndBackgroundColours](#foreandbackgroundcolours)
-- [HeightRange](#heightrange)
-- [MinImageDimension](#minimagedimension)
-- [RelativeBarcodeRegions](#relativebarcoderegions)
-- [Sensitivity](#sensitivity)
-- [SpatialIndexBlockSize](#spatialindexblocksize)
-- [WidthRange](#widthrange)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-
-
-## Setting Methods
-
-### As `PublicRuntimeSettings` Member
-`RegionPredetectionModes` can be set dynamically during runtime as a member of `FurtherModes`, which is a member of `PublicRuntimeSettings` struct, it is an array with 8 [`RegionPredetectionMode`]({{ site.enumerations }}parameter-mode-enums.html#regionpredetectionmode) Enumeration items.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->regionPredetectionModes[0] = RPM_GENERAL_RGB_CONTRAST;
-reader->UpdateRuntimeSettings(pSettings);
-reader->SetModeArgument("RegionPredetectionModes", 0, "Sensitivity", "5");
-delete pSettings;
-//...other codes
-```
-
-
-**Remarks**
-`GetModeArgument` and `SetModeArgument` need to be called for getting and setting [`Arguments`](#candidate-argument-list).
-
-
-**See Also**
-- `FurtherModes:` [C]({{ site.structs }}FurtherModes.html?src=c) \| [C++]({{ site.structs }}FurtherModes.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/FurtherModes.html) \| [Java]({{ site.java_api }}class/FurtherModes.html) \| [Java-Android]({{ site.android_api }}auxiliary-FurtherModes.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iFurtherModes.html)
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- [`RegionPredetectionMode` Enumeration]({{ site.enumerations }}parameter-mode-enums.html#regionpredetectionmode)
-- `GetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#getmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_getmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#getmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#get_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument)
-- `SetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#setmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_setmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#setmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#set_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument)
-
-
-### As JSON Parameter
-`RegionPredetectionModes` as a JSON parameter is a JSON Object array. Each JSON object is defined as below.
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| Mode | Any one in Candidate Mode List as string | (Required) Specifies a mode to find a region. |
-| AspectRatioRange | A string from value range of AspectRatioRange | (Optional) Sets the Argument [AspectRatioRange](#aspectratiorange). |
-| ForeAndBackgroundColours | A string from value range of ForeAndBackgroundColours | (Optional) Sets the Argument [ForeAndBackgroundColours](#foreandbackgroundcolours). |
-| HeightRange | A string from value range of HeightRange | (Optional) Sets the Argument [HeightRange](#heightrange). |
-| MinImageDimension | A number from value range of MinImageDimension | (Optional) Sets the Argument [MinImageDimension](#minimagedimension). |
-| RelativeBarcodeRegions | A string from value range of RelativeBarcodeRegions | (Optional) Sets the Argument [RelativeBarcodeRegions](#relativebarcoderegions). |
-| Sensitivity | A number from value range of Sensitivity | (Optional) Sets the Argument [Sensitivity](#sensitivity). |
-| SpatialIndexBlockSize | A number from value range of SpatialIndexBlockSize | (Optional) Sets the Argument [SpatialIndexBlockSize](#spatialindexblocksize). |
-| WidthRange | A string from value range of WidthRange | (Optional) Sets the Argument [WidthRange](#widthrange). |
-| LibraryFileName | A string from value range of LibraryFileName | (Optional) Sets the Argument [LibraryFileName](#libraryfilename). |
-| LibraryParameters | A string from value range of LibraryParameters | (Optional) Sets the Argument [LibraryParameters](#libraryparameters). |
-
-
-
-**JSON Parameter Example**
-```
-{
- "RegionPredetectionModes": [
- {
- "Mode": "RPM_GENERAL_RGB_CONTRAST",
- "Sensitivity": 5
- },
- {
- "Mode": "RPM_GENERAL_HSV_CONTRAST",
- "WidthRange": "[100, 200]"
- }
- ]
-}
-```
-
-
-
-## Candidate Argument List
-- [AspectRatioRange](#aspectratiorange )
-- [ForeAndBackgroundColours](#foreandbackgroundcolours)
-- [HeightRange](#heightrange)
-- [MinImageDimension](#minimagedimension)
-- [RelativeBarcodeRegions](#relativebarcoderegions)
-- [Sensitivity](#sensitivity)
-- [SpatialIndexBlockSize](#spatialindexblocksize)
-- [WidthRange](#widthrange)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-
-### AspectRatioRange
-Specifies a set (or multiple sets) of aspect ratio range for filtering the predetected region.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing aspect ratio range sets. | "" | RPM_GENERAL_HSV_CONTRAST |
-
-
-**Remarks**
- - A set of aspect ratio range is defined as [`MinAspectRatio`, `MaxAspectRatio`].
- - Using a "";"" to separate multiple sets.
- - Value range of `MinAspectRatio`, `MaxAspectRatio`: [1,10000]
- - Aspect ratio equals to *height/width\*100*, while the height and width is from the bounding rectangle of the predetected region.
-
-
-
-### ForeAndBackgroundColours
-Specifies a set (or multiple sets) of the foreground and background colours used for region predetection algorithm.
-
-| Value Type | Value Range | Default Value |
-| ---------- | ----------- | ------------- |
-| *string* | A string value representing one or more colour sets. | "" |
-
-
-**Remarks**
- - This argument is **mandatory** for RPM_GENERAL_HSV_CONTRAST mode. If there is no manual setting, no region can be detected.
- - A set of the foreground and background colours is defined as [`ForegroundColour`, `BackgroundColour`, `Tolerance`].
- - Using a "";"" to separate multiple sets.
- - `ForegroundColour`and `BackgroundColour` are the Hue values in the HSV colour space for defining the foreground and background colours of the regions you want to predetect. The value -1 means black, gray, white.
- - `Tolerance` is the allowable deviation of the Hue value defined by `ForegroundColour`.
- - Value range of `ForegroundColour`, `BackgroundColour`: [-1,360]
- - Value range of `Tolerance`: [0, 360]
-
-
-### HeightRange
-Specifies a set (or multiple sets) of height range for filtering the predetected region.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing height range sets. | "" | RPM_GENERAL_HSV_CONTRAST |
-
-
-**Remarks**
- - A set of height is defined as [`MinHeight`, `MaxHeight`].
- - Using a "";"" to separate multiple sets.
- - Value range of `MinHeight`, `MaxHeight`: [1, 0x7fffffff]
- - The height value is the height of the bounding rectangle of the predetected region.
-
-
-### MinImageDimension
-Sets the minimum image dimension (in pixels) to enable region pre-detection.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [16384, 0x7fffffff] | 262144 | RPM_GENERAL_HSV_CONTRAST RPM_GENERAL_RGB_CONTRAST RPM_GENERAL_GRAY_CONTRAST |
-
-**Remarks**
- The library will enable the region pre-detection feature only when the image dimension is larger than the given value.
-
-
-### RelativeBarcodeRegions
- Sets the barcode regions relative to the predetected region.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing one or more regions. | "" | RPM_GENERAL_HSV_CONTRAST |
-
-
-**Remarks**
- - Each region need to be defined as [`Left`, `Top`, `Right`, `Bottom`, `Index`]. If you want to define multiple regions, you can use a "";"" to separate them. If there is no region defined, the library will consider the predetected regions as barcode regions.
- - `Left`, `Top`, `Right`, `Bottom` are four percentage values relative to top-left corner of the predetected region.
- - `Index` means the index of a specific colour set in [`ForeAndBackgroundColours`](#foreandbackgroundcolours) which the current region is applied to. If the value of `index` is set to -1, the current region will be applied to all colour sets in [`ForeAndBackgroundColours`](#foreandbackgroundcolours).
- - Value range of `Left`, `Top`, `Right`, `Bottom`: [-10000,10000]
- - Value range of `Index`: [-1, 0x7fffffff]
-
-
-### Sensitivity
-Sets the sensitivity used for region predetection algorithm.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [1, 9] | 1 | RPM_GENERAL_HSV_CONTRAST RPM_GENERAL_RGB_CONTRAST RPM_GENERAL_GRAY_CONTRAST |
-
-**Remarks**
- A larger value means the library will take more effort to detect regions.
-
-
-### SpatialIndexBlockSize
-Sets the spatial index block size used for region predetection algorithm.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [1, 32] | 5 | RPM_GENERAL_HSV_CONTRAST RPM_GENERAL_RGB_CONTRAST RPM_GENERAL_GRAY_CONTRAST |
-
-**Remarks**
- The block size used for region predetection would be 2 to the power of N. The allowed values of SpatialIndexBlockSize is the power number (N=1,2,3...).
-
-
-### WidthRange
-Specifies a set (or multiple sets) of width range for filtering the predetected region.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing width range sets. | "" | RPM_GENERAL_HSV_CONTRAST |
-
-
-**Remarks**
- - A set of width is defined as [`MinWidth`, `MaxWidth`].
- - Using a "";"" to separate multiple sets.
- - Value range of `MinWidth`, `MaxWidth`: [1, 0x7fffffff]
- - The width value is the width of the bounding rectangle of the predetected region.
-
-
-
-### LibraryFileName
-Sets the file name of the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing file name. | "" | All modes |
-
-
-**Remarks**
- The library must be in the same place with Dynamsoft Barcode Reader Library.
-
-
-### LibraryParameters
-Sets the parameters passed to the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | ----------- |
-| *string* | A string value representing parameters. | "" | All modes |
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to configure region predetection]({{ site.scenario_settings }}how-to-use-region-predetection.html)
\ No newline at end of file
diff --git a/parameters/reference/region-predetection-modes.md b/parameters/reference/region-predetection-modes.md
deleted file mode 100644
index 297a5eba..00000000
--- a/parameters/reference/region-predetection-modes.md
+++ /dev/null
@@ -1,313 +0,0 @@
----
-layout: default-layout
-title: RegionPredetectionModes - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for RegionPredetectionModes.
-keywords: RegionPredetectionModes, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/region-predetection-modes.html
----
-
-
-# RegionPredetectionModes
-
-`RegionPredetectionModes` determines how to find a region of interest. It consists of one or more modes, each mode representing a different way to find a region.
-
-
-## Candidate Mode List
-- RPM_AUTO
-- RPM_GENERAL
-- RPM_GENERAL_RGB_CONTRAST
-- RPM_GENERAL_GRAY_CONTRAST
-- RPM_GENERAL_HSV_CONTRAST
-
-### RPM_AUTO
-Lets the library choose a mode automatically.
-
-### RPM_GENERAL
-Takes the whole image as a region.
-This mode has the following arguments for further customizing.
-
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### RPM_GENERAL_RGB_CONTRAST
-Detects region using the general algorithm based on RGB colour contrast.
-This mode has the following arguments for further customizing.
-
-- [MinImageDimension](#minimagedimension)
-- [Sensitivity](#sensitivity)
-- [SpatialIndexBlockSize](#spatialindexblocksize)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### RPM_GENERAL_GRAY_CONTRAST
-Detects region using the general algorithm based on gray contrast.
-This mode has the following arguments for further customizing.
-
-- [MinImageDimension](#minimagedimension)
-- [Sensitivity](#sensitivity)
-- [SpatialIndexBlockSize](#spatialindexblocksize)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### RPM_GENERAL_HSV_CONTRAST
-Detects region using the general algorithm based on HSV colour contrast.
-This mode has the following arguments for further customizing.
-
-- [AspectRatioRange](#aspectratiorange )
-- [FindAccurateBoundary](#findaccurateboundary)
-- [ForeAndBackgroundColours](#foreandbackgroundcolours)
-- [HeightRange](#heightrange)
-- [MinImageDimension](#minimagedimension)
-- [RelativeBarcodeRegions](#relativebarcoderegions)
-- [Sensitivity](#sensitivity)
-- [SpatialIndexBlockSize](#spatialindexblocksize)
-- [WidthRange](#widthrange)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-
-
-## Setting Methods
-
-### As `PublicRuntimeSettings` Member
-`RegionPredetectionModes` can be set dynamically during runtime as a member of `FurtherModes`, which is a member of `PublicRuntimeSettings` struct, it is an array with 8 `RegionPredetectionMode` Enumeration items.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->regionPredetectionModes[0] = RPM_GENERAL_RGB_CONTRAST;
-reader->UpdateRuntimeSettings(pSettings);
-reader->SetModeArgument("RegionPredetectionModes", 0, "Sensitivity", "5");
-delete pSettings;
-//...other codes
-```
-
-
-**Remarks**
-`GetModeArgument` and `SetModeArgument` need to be called for getting and setting [`Arguments`](#candidate-argument-list).
-
-
-**See Also**
-- `FurtherModes:` [C]({{ site.structs }}FurtherModes.html?src=c) \| [C++]({{ site.structs }}FurtherModes.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/FurtherModes.html) \| [Java]({{ site.java_api }}class/FurtherModes.html) \| [Java-Android]({{ site.android_api }}auxiliary-FurtherModes.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iFurtherModes.html)
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- `RegionPredetectionMode:` [JavaScript]({{ site.js_enumerations }}EnumRegionPredetectionMode.html) \| [C]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=c#regionpredetectionmode) \| [C++]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=cpp#regionpredetectionmode) \| [.NET]({{ site.dotnet_enumerations }}parameter-mode-enums.html#regionpredetectionmode) \| [Python]({{ site.python_enumerations }}parameter-mode-enums.html#regionpredetectionmode) \| [Java]({{ site.java_enumerations }}parameter-mode-enums.html#regionpredetectionmode) \| [Java-Android]({{ site.mobile_enumerations }}region-predetection-mode.html?lang=android) \| [Objective-C & Swift]({{ site.mobile_enumerations }}region-predetection-mode.html?lang=objc,swift)
-- `GetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#getmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_getmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#getmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#get_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument)
-- `SetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#setmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_setmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#setmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#set_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument)
-
-
-### As JSON Parameter
-`RegionPredetectionModes` as a JSON parameter is a JSON Object array. Each JSON object is defined as below.
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| Mode | Any one in Candidate Mode List as string | (Required) Specifies a mode to find a region. |
-| AspectRatioRange | A string from value range of AspectRatioRange | (Optional) Sets the Argument [AspectRatioRange](#aspectratiorange). |
-| FindAccurateBoundary | A number from value range of FindAccurateBoundary | (Optional) Sets the Argument [FindAccurateBoundary](#findaccurateboundary). |
-| ForeAndBackgroundColours | A string from value range of ForeAndBackgroundColours | (Optional) Sets the Argument [ForeAndBackgroundColours](#foreandbackgroundcolours). |
-| HeightRange | A string from value range of HeightRange | (Optional) Sets the Argument [HeightRange](#heightrange). |
-| MinImageDimension | A number from value range of MinImageDimension | (Optional) Sets the Argument [MinImageDimension](#minimagedimension). |
-| RelativeBarcodeRegions | A string from value range of RelativeBarcodeRegions | (Optional) Sets the Argument [RelativeBarcodeRegions](#relativebarcoderegions). |
-| Sensitivity | A number from value range of Sensitivity | (Optional) Sets the Argument [Sensitivity](#sensitivity). |
-| SpatialIndexBlockSize | A number from value range of SpatialIndexBlockSize | (Optional) Sets the Argument [SpatialIndexBlockSize](#spatialindexblocksize). |
-| WidthRange | A string from value range of WidthRange | (Optional) Sets the Argument [WidthRange](#widthrange). |
-| LibraryFileName | A string from value range of LibraryFileName | (Optional) Sets the Argument [LibraryFileName](#libraryfilename). |
-| LibraryParameters | A string from value range of LibraryParameters | (Optional) Sets the Argument [LibraryParameters](#libraryparameters). |
-
-
-
-**JSON Parameter Example**
-```
-{
- "RegionPredetectionModes": [
- {
- "Mode": "RPM_GENERAL_RGB_CONTRAST",
- "Sensitivity": 5
- },
- {
- "Mode": "RPM_GENERAL_HSV_CONTRAST",
- "WidthRange": "[100, 200]"
- }
- ]
-}
-```
-
-
-
-## Candidate Argument List
-- [AspectRatioRange](#aspectratiorange )
-- [FindAccurateBoundary](#findaccurateboundary)
-- [ForeAndBackgroundColours](#foreandbackgroundcolours)
-- [HeightRange](#heightrange)
-- [MinImageDimension](#minimagedimension)
-- [RelativeBarcodeRegions](#relativebarcoderegions)
-- [Sensitivity](#sensitivity)
-- [SpatialIndexBlockSize](#spatialindexblocksize)
-- [WidthRange](#widthrange)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-
-### AspectRatioRange
-Specifies a set (or multiple sets) of aspect ratio range for filtering the predetected region.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing aspect ratio range sets. | "" | RPM_GENERAL_HSV_CONTRAST |
-
-
-**Remarks**
- - A set of aspect ratio range is defined as [`MinAspectRatio`, `MaxAspectRatio`].
- - Using a "";"" to separate multiple sets.
- - Value range of `MinAspectRatio`, `MaxAspectRatio`: [1,10000]
- - Aspect ratio equals to *height/width\*100*, while the height and width is from the bounding rectangle of the predetected region.
-
-
-### FindAccurateBoundary
-Sets whether to enable finding accurate boundary.
-
-| Value Type | Value Range | Default Value |
-| ---------- | ----------- | ------------- |
-| *int* | [0, 1] | 0 |
-
-**Remarks**
- - 0: disable.
- - 1: enable.
-
-
-### ForeAndBackgroundColours
-Specifies a set (or multiple sets) of the foreground and background colours used for region predetection algorithm.
-
-| Value Type | Value Range | Default Value |
-| ---------- | ----------- | ------------- |
-| *string* | A string value representing one or more colour sets. | "" |
-
-
-**Remarks**
- - This argument is **mandatory** for RPM_GENERAL_HSV_CONTRAST mode. If there is no manual setting, no region can be detected.
- - A set of the foreground and background colours is defined as [`ForegroundColour`, `BackgroundColour`, `Tolerance`].
- - Using a "";"" to separate multiple sets.
- - `ForegroundColour`and `BackgroundColour` are the Hue values in the HSV colour space for defining the foreground and background colours of the regions you want to predetect. The value -1 means black, gray, white.
- - `Tolerance` is the allowable deviation of the Hue value defined by `ForegroundColour`.
- - Value range of `ForegroundColour`, `BackgroundColour`: [-1,360]
- - Value range of `Tolerance`: [0, 360]
-
-
-### HeightRange
-Specifies a set (or multiple sets) of height range for filtering the predetected region.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing height range sets. | "" | RPM_GENERAL_HSV_CONTRAST |
-
-
-**Remarks**
- - A set of height is defined as [`MinHeight`, `MaxHeight`].
- - Using a "";"" to separate multiple sets.
- - Value range of `MinHeight`, `MaxHeight`: [1, 0x7fffffff]
- - The height value is the height of the bounding rectangle of the predetected region.
-
-
-### MinImageDimension
-Sets the minimum image dimension (in pixels) to enable region pre-detection.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [16384, 0x7fffffff] | 262144 | RPM_GENERAL_HSV_CONTRAST RPM_GENERAL_RGB_CONTRAST RPM_GENERAL_GRAY_CONTRAST |
-
-**Remarks**
- The library will enable the region pre-detection feature only when the image dimension is larger than the given value.
-
-
-### RelativeBarcodeRegions
- Sets the barcode regions relative to the predetected region.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing one or more regions. | "" | RPM_GENERAL_HSV_CONTRAST |
-
-
-**Remarks**
- - Each region need to be defined as [`Left`, `Top`, `Right`, `Bottom`, `Index`]. If you want to define multiple regions, you can use a "";"" to separate them. If there is no region defined, the library will consider the predetected regions as barcode regions.
- - `Left`, `Top`, `Right`, `Bottom` are four percentage values relative to top-left corner of the predetected region.
- - `Index` means the index of a specific colour set in [`ForeAndBackgroundColours`](#foreandbackgroundcolours) which the current region is applied to. If the value of `index` is set to -1, the current region will be applied to all colour sets in [`ForeAndBackgroundColours`](#foreandbackgroundcolours).
- - Value range of `Left`, `Top`, `Right`, `Bottom`: [-10000,10000]
- - Value range of `Index`: [-1, 0x7fffffff]
-
-
-### Sensitivity
-Sets the sensitivity used for region predetection algorithm.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [1, 9] | 1 | RPM_GENERAL_HSV_CONTRAST RPM_GENERAL_RGB_CONTRAST RPM_GENERAL_GRAY_CONTRAST |
-
-**Remarks**
- A larger value means the library will take more effort to detect regions.
-
-
-### SpatialIndexBlockSize
-Sets the spatial index block size used for region predetection algorithm.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [1, 32] | 5 | RPM_GENERAL_HSV_CONTRAST RPM_GENERAL_RGB_CONTRAST RPM_GENERAL_GRAY_CONTRAST |
-
-**Remarks**
- The block size used for region predetection would be 2 to the power of N. The allowed values of SpatialIndexBlockSize is the power number (N=1,2,3...).
-
-
-### WidthRange
-Specifies a set (or multiple sets) of width range for filtering the predetected region.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing width range sets. | "" | RPM_GENERAL_HSV_CONTRAST |
-
-
-**Remarks**
- - A set of width is defined as [`MinWidth`, `MaxWidth`].
- - Using a "";"" to separate multiple sets.
- - Value range of `MinWidth`, `MaxWidth`: [1, 0x7fffffff]
- - The width value is the width of the bounding rectangle of the predetected region.
-
-
-
-### LibraryFileName
-Sets the file name of the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing file name. | "" | All modes |
-
-
-**Remarks**
- The library must be in the same place with Dynamsoft Barcode Reader Library.
-
-
-### LibraryParameters
-Sets the parameters passed to the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | ----------- |
-| *string* | A string value representing parameters. | "" | All modes |
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to configure region predetection]({{ site.scenario_settings }}how-to-use-region-predetection.html)
diff --git a/parameters/reference/region.md b/parameters/reference/region.md
deleted file mode 100644
index b4b5bf74..00000000
--- a/parameters/reference/region.md
+++ /dev/null
@@ -1,93 +0,0 @@
----
-layout: default-layout
-title: Region - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for Region.
-keywords: Region, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/region.html
----
-
-
-# Region
-
-`Region` defines a region in where to search barcodes. By default, DBR does not restrict the reading region. It is defined by RegionTop, RegionLeft, RegionRight, RegionBottom, and RegionMeasuredByPercentage:
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *int* | *see [this section](#as-json-parameter)* | *see [this section](#as-json-parameter)* | `RegionDefinition` |
-
-## Setting Methods
-`Region` is supported to be set through `PublicRuntimeSettings` or JSON template.
-
-### As `PublicRuntimeSettings` Member
-`Region` can be set dynamically during runtime as a member of `PublicRuntimeSettings` struct.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->region.regionTop = 25;
-pSettings->region.regionLeft = 25;
-pSettings->region.regionBottom = 75;
-pSettings->region.regionRight = 75;
-pSettings->region.regionMeasuredByPercentage = 1;
-reader->UpdateRuntimeSettings(pSettings);
-delete pSettings;
-//...other codes
-```
-
-
-**See Also**
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-
-
-### As JSON Parameter
-`Region` as a JSON parameter is a RegionDefinition Object defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| RegionDefinition | A JSON object defined as below |
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| Name | A string value representing a unique name | The name of the RegionDefinition object. |
-| Top | A number from [0, 0x7fffffff] when MeasuredByPercentage=0 or [0, 100] when MeasuredByPercentage=1 | The top-most coordinate or percentage of the region. |
-| RegionLeft | A number from [0, 0x7fffffff] when MeasuredByPercentage=0 or [0, 100] when MeasuredByPercentage=1 | The left-most coordinate or percentage of the region. |
-| Right | A number from [0, 0x7fffffff] when MeasuredByPercentage=0 or [0, 100] when MeasuredByPercentage=1 | The right-most coordinate or percentage of the region. |
-| Bottom | A number from [0, 0x7fffffff] when MeasuredByPercentage=0 or [0, 100] when MeasuredByPercentage=1 | The bottom-most coordinate or percentage of the region. |
-| MeasuredByPercentage | A number from [0, 1] | Sets whether or not to use percentages to measure the Region size. |
-
-
-**JSON Example**
-```
-{
- "RegionDefinition":
- {
- "Name": "RD1",
- "Top": 25,
- "Left": 25,
- "Right": 75,
- "Bottom": 75,
- "MeasuredByPercentage": 1
- }
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
diff --git a/parameters/reference/require-start-stop-chars.md b/parameters/reference/require-start-stop-chars.md
deleted file mode 100644
index 2dbcc3e9..00000000
--- a/parameters/reference/require-start-stop-chars.md
+++ /dev/null
@@ -1,60 +0,0 @@
----
-layout: default-layout
-title: RequireStartStopChars - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for RequireStartStopChars.
-keywords: RequireStartStopChars, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/require-start-stop-chars.html
----
-
-
-# RequireStartStopChars
-
-`RequireStartStopChars` defines whether the start and stop characters are required when searching for common 1D barcodes. It is defined as below:
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *int* | [0, 1] | 1 | `FormatSpecification` |
-
-
-**Remarks**
-- 0: start and stop characters are not required.
-- 1: start and stop characters are required.
-
-
-
-## Setting Methods
-`RequireStartStopChars` can be set via JSON template.
-
-### As JSON Parameter
-`RequireStartStopChars` as a JSON parameter is a number value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| RequireStartStopChars | A number from [0, 1] |
-
-
-**JSON Example**
-```
-{
- "RequireStartStopChars": 1
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [Configure parameters for a certain barcode format]({{ site.scenario_settings }}format-specification.html#requirestartstopchars)
diff --git a/parameters/reference/result-coordinate-type.md b/parameters/reference/result-coordinate-type.md
deleted file mode 100644
index 83b1a36d..00000000
--- a/parameters/reference/result-coordinate-type.md
+++ /dev/null
@@ -1,84 +0,0 @@
----
-layout: default-layout
-title: ResultCoordinateType - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for ResultCoordinateType.
-keywords: ResultCoordinateType, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/result-coordinate-type.html
----
-
-
-# ResultCoordinateType
-
-`ResultCoordinateType` defines the returned coordinate type.
-
-## Candidate Mode List
-- RCT_PIXEL
-- RCT_PERCENTAGE
-
-### RCT_PIXEL
-Returns the coordinate in pixel value.
-
-
-### RCT_PERCENTAGE
-Returns the coordinate as a percentage value.
-
-
-## Setting Methods
-`ResultCoordinateType` is supported to be set through `RuntimeSetting` or JSON template.
-
-### As `PublicRuntimeSettings` Member
-`ResultCoordinateType` can be set dynamically during runtime as a member of `PublicRuntimeSettings` struct, it is one of the `ResultCoordinateType` Enumeration items.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->resultCoordinateType = RCT_PERCENTAGE;
-reader->UpdateRuntimeSettings(pSettings);
-delete pSettings;
-//...other codes
-```
-
-
-**See Also**
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- `ResultCoordinateType:` [JavaScript]({{ site.js_enumerations }}EnumResultCoordinateType.html) \| [C]({{ site.c_cpp_enumerations }}result-enums.html?src=c#resultcoordinatetype) \| [C++]({{ site.c_cpp_enumerations }}result-enums.html?src=cpp#resultcoordinatetype) \| [.NET]({{ site.dotnet_enumerations }}result-enums.html#resultcoordinatetype) \| [Python]({{ site.python_enumerations }}result-enums.html#resultcoordinatetype) \| [Java]({{ site.java_enumerations }}result-enums.html#resultcoordinatetype) \| [Java-Android]({{ site.mobile_enumerations }}result-coordinate-type.html?lang=android) \| [Objective-C & Swift]({{ site.mobile_enumerations }}result-coordinate-type.html?lang=objc,swift)
-
-
-### As JSON Parameter
-`ResultCoordinateType` as a JSON parameter is a string value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| ResultCoordinateType | Any one in ResultCoordinateType Enumeration as string |
-
-
-
-**JSON Parameter Example**
-```
-{
- "ResultCoordinateType": "RCT_PERCENTAGE"
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to filter and sort results]({{ site.scenario_settings }}decode-result.html)
diff --git a/parameters/reference/return-barcode-zone-clarity.md b/parameters/reference/return-barcode-zone-clarity.md
deleted file mode 100644
index 21118a01..00000000
--- a/parameters/reference/return-barcode-zone-clarity.md
+++ /dev/null
@@ -1,80 +0,0 @@
----
-layout: default-layout
-title: ReturnBarcodeZoneClarity - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for ReturnBarcodeZoneClarity.
-keywords: ReturnBarcodeZoneClarity, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/return-barcode-zone-clarity.html
----
-
-
-# ReturnBarcodeZoneClarity
-
-`ReturnBarcodeZoneClarity` defines whether to return the clarity of the barcode zone. It is defined as below:
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *int* | [0, 1] | 0 | `ImageParameter` |
-
-
-**Remarks**
-- 0: do not return the clarity of the barcode zone.
-- 1: return the clarity of the barcode zone.
-
-
-
-## Setting Methods
-`ReturnBarcodeZoneClarity` is supported to be set through `RuntimeSetting` or JSON template.
-
-### As `PublicRuntimeSettings` Member
-`ReturnBarcodeZoneClarity` can be set dynamically during runtime as a member of `PublicRuntimeSettings` struct.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->returnBarcodeZoneClarity = 1;
-reader->UpdateRuntimeSettings(pSettings);
-delete pSettings;
-//...other codes
-```
-
-
-**See Also**
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-
-
-### As JSON Parameter
-`ReturnBarcodeZoneClarity` as a JSON parameter is a number value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| ReturnBarcodeZoneClarity | A number from [0, 1] |
-
-
-**JSON Example**
-```
-{
- "ReturnBarcodeZoneClarity": 1
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to filter and sort results]({{ site.scenario_settings }}decode-result.html)
diff --git a/parameters/reference/return-partial-barcode-value.md b/parameters/reference/return-partial-barcode-value.md
deleted file mode 100644
index 1657e4bd..00000000
--- a/parameters/reference/return-partial-barcode-value.md
+++ /dev/null
@@ -1,60 +0,0 @@
----
-layout: default-layout
-title: ReturnPartialBarcodeValue - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for ReturnPartialBarcodeValue.
-keywords: ReturnPartialBarcodeValue, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/return-partial-barcode-value.html
----
-
-
-# ReturnPartialBarcodeValue
-
-`ReturnPartialBarcodeValue` defines whether to return partial barcode value(s). It is defined as below:
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *int* | [0, 1] | 1 | `FormatSpecification` |
-
-
-**Remarks**
-- 0: do not return partial barcode value(s).
-- 1: return partial barcode value(s).
-
-
-
-## Setting Methods
-`ReturnPartialBarcodeValue` can be set via JSON template.
-
-
-### As JSON Parameter
-`ReturnPartialBarcodeValue` as a JSON parameter is a number value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| ReturnPartialBarcodeValue | A number from [0, 1] |
-
-
-**JSON Example**
-```
-{
- "ReturnPartialBarcodeValue": 1
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
diff --git a/parameters/reference/scale-down-threshold.md b/parameters/reference/scale-down-threshold.md
deleted file mode 100644
index 7ba1851b..00000000
--- a/parameters/reference/scale-down-threshold.md
+++ /dev/null
@@ -1,79 +0,0 @@
----
-layout: default-layout
-title: ScaleDownThreshold - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for ScaleDownThreshold.
-keywords: ScaleDownThreshold, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/scale-down-threshold.html
----
-
-
-# ScaleDownThreshold
-
-`ScaleDownThreshold` defines the threshold for image shrinking. It is defined as below:
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *int* | [512, 0x7fffffff] | 2300 | `ImageParameter` |
-
-
-**Remarks**
-If the shorter edge size is larger than the given value, the library will calculate the required height and width of the barcode image and shrink the image to that size before localization. Otherwise, it will perform barcode localization on the original image.
-
-
-
-## Setting Methods
-`ScaleDownThreshold` is supported to be set through `RuntimeSetting` or JSON template.
-
-### As `PublicRuntimeSettings` Member
-`ScaleDownThreshold` can be set dynamically during runtime as a member of `PublicRuntimeSettings` struct.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->scaleDownThreshold = 2300;
-reader->UpdateRuntimeSettings(pSettings);
-delete pSettings;
-//...other codes
-```
-
-
-
-**See Also**
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-
-
-### As JSON Parameter
-`ScaleDownThreshold` as a JSON parameter is a number value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| ScaleDownThreshold | A number from [512, 0x7fffffff] |
-
-
-**JSON Example**
-```
-{
- "ScaleDownThreshold": 2300
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
diff --git a/parameters/reference/scale-up-modes.md b/parameters/reference/scale-up-modes.md
deleted file mode 100644
index 36b1f70e..00000000
--- a/parameters/reference/scale-up-modes.md
+++ /dev/null
@@ -1,186 +0,0 @@
----
-layout: default-layout
-title: ScaleUpModes - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for ScaleUpModes.
-keywords: ScaleUpModes, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/scale-up-modes.html
----
-
-
-# ScaleUpModes
-
-`ScaleUpModes` determines the process for scaling up an image used for detecting barcodes with small module size. It consists of one or more modes, each mode represents a way to implement the scale-up.
-
-## Candidate Mode List
-
-- SUM_AUTO
-- SUM_LINEAR_INTERPOLATION
-- SUM_NEAREST_NEIGHBOUR_INTERPOLATION
-
-### SUM_AUTO
-
-Lets the library choose a mode automatically.
-
-### SUM_LINEAR_INTERPOLATION
-Scales up using the linear interpolation method. This mode has the following arguments for further customizing.
-
-- [AcuteAngleWithXThreshold](#acuteanglewithxthreshold)
-- [ModuleSizeThreshold](#modulesizethreshold)
-- [TargetModuleSize](#targetmodulesize)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### SUM_NEAREST_NEIGHBOUR_INTERPOLATION
-Scales up using the linear interpolation method. This mode has the following arguments for further customizing.
-
-- [AcuteAngleWithXThreshold](#acuteanglewithxthreshold)
-- [ModuleSizeThreshold](#modulesizethreshold)
-- [TargetModuleSize](#targetmodulesize)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-
-## Setting Methods
-
-### As `PublicRuntimeSettings` Member
-`ScaleUpModes` can be set dynamically during runtime as a member of `FurtherModes`, which is a member of `PublicRuntimeSettings` struct, it is an array with 8 `ScaleUpMode` Enumeration items.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->scaleUpModes[0] = SUM_LINEAR_INTERPOLATION;
-reader->UpdateRuntimeSettings(pSettings);
-reader->SetModeArgument("ScaleUpModes", 0, "ModuleSizeThreshold", "4");
-delete pSettings;
-//...other codes
-```
-
-
-**Remarks**
-`GetModeArgument` and `SetModeArgument` need to be called for getting and setting [`Arguments`](#candidate-argument-list).
-
-
-**See Also**
-- `FurtherModes:` [C]({{ site.structs }}FurtherModes.html?src=c) \| [C++]({{ site.structs }}FurtherModes.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/FurtherModes.html) \| [Java]({{ site.java_api }}class/FurtherModes.html) \| [Java-Android]({{ site.android_api }}auxiliary-FurtherModes.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iFurtherModes.html)
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- `ScaleUpMode:` [JavaScript]({{ site.js_enumerations }}EnumScaleUpMode.html) \| [C]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=c#scaleupmode) \| [C++]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=cpp#scaleupmode) \| [.NET]({{ site.dotnet_enumerations }}parameter-mode-enums.html#scaleupmode) \| [Python]({{ site.python_enumerations }}parameter-mode-enums.html#scaleupmode) \| [Java]({{ site.java_enumerations }}parameter-mode-enums.html#scaleupmode) \| [Java-Android]({{ site.mobile_enumerations }}scale-up-mode.html?lang=android) \| [Objective-C & Swift]({{ site.mobile_enumerations }}scale-up-mode.html?lang=objc,swift)
-- `GetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#getmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_getmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#getmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#get_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument)
-- `SetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#setmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_setmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#setmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#set_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument)
-
-
-### As JSON Parameter
-`ScaleUpModes` as a JSON parameter is a JSON Object array. Each JSON object is defined as below.
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| Mode | Any one in Candidate Mode List as string | (Required) Specifies a mode for scaling up an image. |
-| AcuteAngleWithXThreshold | A number from value range of AcuteAngleWithXThreshold | (Optional) Sets the Argument [AcuteAngleWithXThreshold](#acuteanglewithxthreshold). |
-| ModuleSizeThreshold | A number from value range of ModuleSizeThreshold | (Optional) Sets the Argument [modulesizethreshold](#modulesizethreshold). |
-| TargetModuleSize | A number from value range of TargetModuleSize | (Optional) Sets the Argument [TargetModuleSize](#targetmodulesize). |
-| LibraryFileName | A string from value range of LibraryFileName | (Optional) Sets the Argument [LibraryFileName](#libraryfilename). |
-| LibraryParameters | A string from value range of LibraryParameters | (Optional) Sets the Argument [LibraryParameters](#libraryparameters). |
-
-
-
-**JSON Parameter Example**
-```
-{
- "ScaleUpModes": [
- {
- "Mode": "SUM_LINEAR_INTERPOLATION",
- "ModuleSizeThreshold": 4,
- "TargetModuleSize": 8
- },
- {
- "Mode": "SUM_NEAREST_NEIGHBOUR_INTERPOLATION",
- "ModuleSizeThreshold": 4,
- "TargetModuleSize": 6
- }
- ]
-}
-```
-
-
-
-## Candidate Argument List
-- [AcuteAngleWithXThreshold](#acuteanglewithxthreshold)
-- [ModuleSizeThreshold](#modulesizethreshold)
-- [TargetModuleSize](#targetmodulesize)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### AcuteAngleWithXThreshold
-Sets the acute angle threshold for scale-up.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [-1, 90] | -1 | SUM_LINEAR_INTERPOLATION SUM_NEAREST_NEIGHBOUR_INTERPOLATION |
-
-**Remarks**
-- -1: means automatically set by the library.
-- If the module size of the barcode is smaller than the [ModuleSizeThreshold](#modulesizethreshold) and the acute angle with X of the barcode is larger than the [AcuteAngleWithXThreshold](#acuteanglewithxthreshold), the barcode will be enlarged by a scale factor of N (the value of N is a power of 2) till N * modulesize >= [TargetModuleSize](#targetmodulesize).
-
-### ModuleSizeThreshold
-Sets the module size threshold for scale-up.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [0, 0x7fffffff] | 0 | SUM_LINEAR_INTERPOLATION SUM_NEAREST_NEIGHBOUR_INTERPOLATION |
-
-**Remarks**
-- 0: means automatically set by the library.
-- If the module size of the barcode is smaller than the [ModuleSizeThreshold](#modulesizethreshold) and the acute angle with X of the barcode is larger than the [AcuteAngleWithXThreshold](#acuteanglewithxthreshold), the barcode will be enlarged by a scale factor of N (the value of N is a power of 2) till N * modulesize >= [TargetModuleSize](#targetmodulesize).
-
-
-
-### TargetModuleSize
-Sets the target module size for scale-up.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [0, 0x7fffffff] | 0 | SUM_LINEAR_INTERPOLATION SUM_NEAREST_NEIGHBOUR_INTERPOLATION |
-
-**Remarks**
-- 0: means automatically set by the library.
-- If the module size of the barcode is smaller than the [ModuleSizeThreshold](#modulesizethreshold) and the acute angle with X of the barcode is larger than the [AcuteAngleWithXThreshold](#acuteanglewithxthreshold), the barcode will be enlarged by a scale factor of N (the value of N is a power of 2) till N * modulesize >= [TargetModuleSize](#targetmodulesize).
-
-
-### LibraryFileName
-Sets the file name of the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing file name. | "" | All modes |
-
-
-**Remarks**
- The library must be in the same place with Dynamsoft Barcode Reader Library.
-
-
-### LibraryParameters
-Sets the parameters passed to the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | ----------- |
-| *string* | A string value representing parameters. | "" | All modes |
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to configure ScaleUpModes]({{ site.scenario_settings }}how-to-set-scaleup-modes.html)
diff --git a/parameters/reference/standard-format.md b/parameters/reference/standard-format.md
deleted file mode 100644
index b37e6aa5..00000000
--- a/parameters/reference/standard-format.md
+++ /dev/null
@@ -1,53 +0,0 @@
----
-layout: default-layout
-title: StandardFormat - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for StandardFormat.
-keywords: StandardFormat, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/standard-format.html
----
-
-
-# StandardFormat
-
-`StandardFormat` defines the standard barcode format. It is not set by default.
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *string* | [*`BarcodeFormat`*]({{ site.enumerations }}format-enums.html#barcodeformat) / [*`BarcodeFormat_2`*]({{ site.enumerations }}format-enums.html#barcodeformat_2) | `""` | `FormatSpecification` |
-
-## Setting Methods
-`StandardFormat` can be set via JSON template.
-
-### As JSON Parameter
-`StandardFormat` as a JSON parameter is a string value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| StandardFormat | a string value from one of the [`BarcodeFormat`]({{ site.enumerations }}format-enums.html#barcodeformat) or [`BarcodeFormat_2`]({{ site.enumerations }}format-enums.html#barcodeformat_2) Enumeration items. |
-
-
-**JSON Example**
-```
-{
- "StandardFormat": "BF_CODE128"
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [Configure parameters for a certain barcode format]({{ site.scenario_settings }}format-specification.html)
diff --git a/parameters/reference/tail-module-ratio.md b/parameters/reference/tail-module-ratio.md
deleted file mode 100644
index a76776f4..00000000
--- a/parameters/reference/tail-module-ratio.md
+++ /dev/null
@@ -1,53 +0,0 @@
----
-layout: default-layout
-title: TailModuleRatio - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for TailModuleRatio.
-keywords: TailModuleRatio, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/tail-module-ratio.html
----
-
-
-# TailModuleRatio
-
-`TailModuleRatio` defines the module count and module size ratio of the barcode tail part. By default, there is no restriction on the tail module count or module size ratio.
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *string* | N/A | `""` | `FormatSpecification` |
-
-## Setting Methods
-`TailModuleRatio` can be set via JSON template.
-
-### As JSON Parameter
-`TailModuleRatio` as a JSON parameter is a string value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| TailModuleRatio | a string representing the module count and module size |
-
-
-**JSON Example**
-```
-{
- "TailModuleRatio": "2331112"
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [Configure parameters for a certain barcode format]({{ site.scenario_settings }}format-specification.html)
diff --git a/parameters/reference/terminate-phase.md b/parameters/reference/terminate-phase.md
deleted file mode 100644
index 37283232..00000000
--- a/parameters/reference/terminate-phase.md
+++ /dev/null
@@ -1,99 +0,0 @@
----
-layout: default-layout
-title: TerminatePhase - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for TerminatePhase.
-keywords: TerminatePhase, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/terminate-phase.html
----
-
-
-# TerminatePhase
-
-`TerminatePhase` defines the phase where the algorithm stops. It can be one of following values.
-
-## Candidate Value List
-- TP_REGION_PREDETECTED
-- TP_IMAGE_PREPROCESSED
-- TP_IMAGE_BINARIZED
-- TP_BARCODE_LOCALIZED
-- TP_BARCODE_TYPE_DETERMINED
-- TP_BARCODE_RECOGNIZED
-
-### TP_REGION_PREDETECTED
-Exits the barcode reading algorithm after the region predetection is done.
-
-### TP_IMAGE_PREPROCESSED
-Exits the barcode reading algorithm after the region predetection and image pre-processing is done.
-
-### TP_IMAGE_BINARIZED
-Exits the barcode reading algorithm after the region predetection, image pre-processing, and image binarization are done.
-
-### TP_BARCODE_LOCALIZED
-Exits the barcode reading algorithm after the region predetection, image pre-processing, image binarization, and barcode localization are done.
-
-### TP_BARCODE_TYPE_DETERMINED
-Exits the barcode reading algorithm after the region predetection, image pre-processing, image binarization, barcode localization, and barcode type determining are done.
-
-### TP_BARCODE_RECOGNIZED
-Exits the barcode reading algorithm after the region predetection, image pre-processing, image binarization, barcode localization, barcode type determining, and barcode recognition are done.
-
-
-
-## Setting Methods
-
-### As `PublicRuntimeSettings` Member
-`TerminatePhase` can be set dynamically during runtime as a member of `PublicRuntimeSettings` struct, it is one of the `TerminatePhase` Enumeration items.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->terminatePhase = TP_BARCODE_LOCALIZED;
-reader->UpdateRuntimeSettings(pSettings);
-delete pSettings;
-//...other codes
-```
-
-
-**See Also**
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- `TerminatePhase:` [JavaScript]({{ site.js_enumerations }}EnumTerminatePhase.html) \| [C]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=c#textfiltermode) \| [C++]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=cpp#textfiltermode) \| [.NET]({{ site.dotnet_enumerations }}parameter-mode-enums.html#textfiltermode) \| [Python]({{ site.python_enumerations }}parameter-mode-enums.html#textfiltermode) \| [Java]({{ site.java_enumerations }}parameter-mode-enums.html#textfiltermode) \| [Java-Android]({{ site.mobile_enumerations }}terminate-phase.html?lang=android) \| [Objective-C & Swift]({{ site.mobile_enumerations }}terminate-phase.html?lang=objc,swift)
-
-
-### As JSON Parameter
-`TerminatePhase` as a JSON parameter is a string value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| TerminatePhase | Any one in TerminatePhase Enumeration as string |
-
-
-
-**JSON Parameter Example**
-```
-{
- "TerminatePhase": "TP_BARCODE_LOCALIZED"
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to terminate the process]({{ site.scenario_settings }}terminate.html)
diff --git a/parameters/reference/text-assisted-correction-mode.md b/parameters/reference/text-assisted-correction-mode.md
deleted file mode 100644
index 0abc3d79..00000000
--- a/parameters/reference/text-assisted-correction-mode.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-layout: default-layout
-title: ImageParameter Object - TextAssistedCorrectionMode - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for ImageParameter Object - TextAssistedCorrectionMode.
-keywords: TextAssistedCorrectionMode, ImageParameter, image process control parameters, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/text-assisted-correction-mode.html
----
-
-# TextAssistedCorrectionMode
-
-**Not support yet.**
diff --git a/parameters/reference/text-filter-modes.md b/parameters/reference/text-filter-modes.md
deleted file mode 100644
index a3264723..00000000
--- a/parameters/reference/text-filter-modes.md
+++ /dev/null
@@ -1,150 +0,0 @@
----
-layout: default-layout
-title: TextFilterModes - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for TextFilterModes.
-keywords: TextFilterModes, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/text-filter-modes.html
----
-
-
-# TextFilterModes
-
-`TextFilterModes` determines how to filter texts on an image. It consists of one or more modes, each mode represents a way to implement the filtering.
-
-
-## Candidate Mode List
-- TFM_GENERAL_CONTOUR
-
-### TFM_GENERAL_CONTOUR
-Filters text using the general algorithm based on contour. This mode has the following arguments for further customizing.
-
-- [MinImageDimension](#minimagedimension)
-- [Sensitivity](#sensitivity)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-
-
-## Setting Methods
-
-### As `PublicRuntimeSettings` Member
-`TextFilterModes` can be set dynamically during runtime as a member of `FurtherModes`, which is a member of `PublicRuntimeSettings` struct, it is an array with 8 `TextFilterMode` Enumeration items.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->textFilterModes[0] = TFM_GENERAL_CONTOUR;
-reader->UpdateRuntimeSettings(pSettings);
-reader->SetModeArgument("TextFilterModes", 0, "Sensitivity", "5");
-delete pSettings;
-//...other codes
-```
-
-
-**Remarks**
-`GetModeArgument` and `SetModeArgument` need to be called for getting and setting [`Arguments`](#candidate-argument-list).
-
-
-**See Also**
-- `FurtherModes:` [C]({{ site.structs }}FurtherModes.html?src=c) \| [C++]({{ site.structs }}FurtherModes.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/FurtherModes.html) \| [Java]({{ site.java_api }}class/FurtherModes.html) \| [Java-Android]({{ site.android_api }}auxiliary-FurtherModes.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iFurtherModes.html)
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- `TextFilterMode:` [JavaScript]({{ site.js_enumerations }}EnumTextFilterMode.html) \| [C]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=c#textfiltermode) \| [C++]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=cpp#textfiltermode) \| [.NET]({{ site.dotnet_enumerations }}parameter-mode-enums.html#textfiltermode) \| [Python]({{ site.python_enumerations }}parameter-mode-enums.html#textfiltermode) \| [Java]({{ site.java_enumerations }}parameter-mode-enums.html#textfiltermode) \| [Java-Android]({{ site.mobile_enumerations }}text-filter-mode.html?lang=android) \| [Objective-C & Swift]({{ site.mobile_enumerations }}text-filter-mode.html?lang=objc,swift)
-- `GetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#getmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_getmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#getmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#get_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument)
-- `SetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#setmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_setmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#setmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#set_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument)
-
-
-### As JSON Parameter
-`TextFilterModes` as a JSON parameter is a JSON Object array. Each JSON object is defined as below.
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| Mode | Any one in Candidate Mode List as string | (Required) Specifies a mode for text filtering. |
-| MinImageDimension | A number from value range of MinImageDimension | (Optional) Sets the Argument [MinImageDimension](#minimagedimension). |
-| Sensitivity | A number from value range of Sensitivity | (Optional) Sets the Argument [Sensitivity](#sensitivity). |
-| LibraryFileName | A string from value range of LibraryFileName | (Optional) Sets the Argument [LibraryFileName](#libraryfilename). |
-| LibraryParameters | A string from value range of LibraryParameters | (Optional) Sets the Argument [LibraryParameters](#libraryparameters). |
-
-
-
-**JSON Parameter Example**
-```
-{
- "TextFilterModes": [
- {
- "Mode": "TFM_GENERAL_CONTOUR",
- "Sensitivity": 5
- }
- ]
-}
-```
-
-
-
-## Candidate Argument List
-- [MinImageDimension](#minimagedimension)
-- [Sensitivity](#sensitivity)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-### MinImageDimension
-Sets the minimum image dimension (in pixels) to enable text filtering.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [65536, 0x7fffffff] | 65536 | TFM_GENERAL_CONTOUR |
-
-**Remarks**
-The library will enable the region pre-detection feature only when the image dimension is larger than the given value.
-
-### Sensitivity
-Sets the sensitivity used for text filtering.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [0, 9] | 0 | TFM_GENERAL_CONTOUR |
-
-**Remarks**
- - 0: automatically set by the library.
- - A larger value means the library will take more effort to filter text.
-
-
-
-### LibraryFileName
-Sets the file name of the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing file name. | "" | All modes |
-
-
-**Remarks**
- The library must be in the same place with Dynamsoft Barcode Reader Library.
-
-
-### LibraryParameters
-Sets the parameters passed to the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | ----------- |
-| *string* | A string value representing parameters. | "" | All modes |
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to configure TextFilterModes]({{ site.scenario_settings }}text-filter.html#)
diff --git a/parameters/reference/text-result-order-modes.md b/parameters/reference/text-result-order-modes.md
deleted file mode 100644
index 18785397..00000000
--- a/parameters/reference/text-result-order-modes.md
+++ /dev/null
@@ -1,97 +0,0 @@
----
-layout: default-layout
-title: TextResultOrderModes - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for TextResultOrderModes.
-keywords: TextResultOrderModes, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/text-result-order-modes.html
----
-
-
-# TextResultOrderModes
-
-`TextResultOrderModes` defines the order of the returned text results. It consists of one or more modes, each mode represents a way to order the result.
-
-
-## Candidate Mode List
-- TROM_CONFIDENCE
-- TROM_POSITION
-- TROM_FORMAT
-
-
-### TROM_CONFIDENCE
-Returns the text results in descending order by confidence.
-
-### TROM_POSITION
-Returns the text results in positional order - from top to bottom, and left to right.
-
-### TROM_FORMAT
-Returns the text results in alphabetical and numerical order by barcode format string.
-
-
-## Setting Methods
-
-### As `PublicRuntimeSettings` Member
-`TextResultOrderModes` can be set dynamically during runtime as a member of `PublicRuntimeSettings` struct, it is an array with 8 `TextResultOrderMode` Enumeration items.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->textResultOrderModes[0] = TROM_CONFIDENCE;
-reader->UpdateRuntimeSettings(pSettings);
-delete pSettings;
-//...other codes
-```
-
-
-**See Also**
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- `TextResultOrderMode:` [JavaScript]({{ site.js_enumerations }}EnumTextResultOrderMode.html) \| [C]({{ site.c_cpp_enumerations }}result-enums.html?src=c#textresultordermode) \| [C++]({{ site.c_cpp_enumerations }}result-enums.html?src=cpp#textresultordermode) \| [.NET]({{ site.dotnet_enumerations }}result-enums.html#textresultordermode) \| [Python]({{ site.python_enumerations }}result-enums.html#textresultordermode) \| [Java]({{ site.java_enumerations }}result-enums.html#textresultordermode) \| [Java-Android]({{ site.mobile_enumerations }}text-result-order-mode.html?lang=android) \| [Objective-C & Swift]({{ site.mobile_enumerations }}text-result-order-mode.html?lang=objc,swift)
-
-
-### As JSON Parameter
-
-`TextResultOrderModes` as a JSON parameter is a JSON Object array defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| TextResultOrderModes | a JSON object defined as below |
-
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| Mode | Any one in Candidate Mode List as string | (Required) Specifies a mode for ordering. |
-
-
-
-**JSON Parameter Example**
-```
-{
- "TextResultOrderModes": [
- {"Mode"":"TROM_CONFIDENCE"},
- {"Mode":"TROM_POSITION"},
- {"Mode":"TROM_FORMAT"}
- ]
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to filter and order results]({{ site.scenario_settings }}decode-result.html)
diff --git a/parameters/reference/texture-detection-modes.md b/parameters/reference/texture-detection-modes.md
deleted file mode 100644
index 1c63adff..00000000
--- a/parameters/reference/texture-detection-modes.md
+++ /dev/null
@@ -1,138 +0,0 @@
----
-layout: default-layout
-title: TextureDetectionModes - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for TextureDetectionModes.
-keywords: TextureDetectionModes, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/texture-detection-modes.html
----
-
-
-# TextureDetectionModes
-
-`TextureDetectionModes` determines how to detect texture on an image. It consists of one or more modes, each mode represents a way to implement the detection.
-
-
-## Candidate Mode List
-- TDM_GENERAL_WIDTH_CONCENTRATION
-
-
-### TDM_GENERAL_WIDTH_CONCENTRATION
-Detects texture using the general algorithm. This mode has the following arguments for further customizing.
-
-- [Sensitivity](#sensitivity)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-
-
-## Setting Methods
-
-### As `PublicRuntimeSettings` Member
-`TextureDetectionModes` can be set dynamically during runtime as a member of `FurtherModes`, which is a member of `PublicRuntimeSettings` struct, it is an array with 8 `TextureDetectionMode` Enumeration items.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->textureDetectionModes[0] = TDM_GENERAL_WIDTH_CONCENTRATION;
-reader->UpdateRuntimeSettings(pSettings);
-reader->SetModeArgument("TextureDetectionModes", 0, "Sensitivity", "5");
-delete pSettings;
-//...other codes
-```
-
-
-**Remarks**
-`GetModeArgument` and `SetModeArgument` need to be called for getting and setting [`Arguments`](#candidate-argument-list).
-
-
-**See Also**
-- `FurtherModes:` [C]({{ site.structs }}FurtherModes.html?src=c) \| [C++]({{ site.structs }}FurtherModes.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/FurtherModes.html) \| [Java]({{ site.java_api }}class/FurtherModes.html) \| [Java-Android]({{ site.android_api }}auxiliary-FurtherModes.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iFurtherModes.html)
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-- `TextureDetectionMode:` [JavaScript]({{ site.js_enumerations }}EnumTextureDetectionMode.html) \| [C]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=c#texturedetectionmode) \| [C++]({{ site.c_cpp_enumerations }}parameter-mode-enums.html?src=cpp#texturedetectionmode) \| [.NET]({{ site.dotnet_enumerations }}parameter-mode-enums.html#texturedetectionmode) \| [Python]({{ site.python_enumerations }}parameter-mode-enums.html#texturedetectionmode) \| [Java]({{ site.java_enumerations }}parameter-mode-enums.html#texturedetectionmode) \| [Java-Android]({{ site.mobile_enumerations }}texture-detection-mode.html?lang=android) \| [Objective-C & Swift]({{ site.mobile_enumerations }}texture-detection-mode.html?lang=objc,swift)
-- `GetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#getmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_getmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#getmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#get_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#getmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#getmodeargument)
-- `SetModeArgument:` [JavaScript]({{ site.js_api}}BarcodeReader.html#setmodeargument) \| [C]({{ site.c_methods }}parameter-and-runtime-settings-basic.html#dbr_setmodeargument) \| [C++]({{ site.cpp_methods }}parameter-and-runtime-settings-basic.html#setmodeargument) \| [.NET]({{ site.dotnet_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Python]({{ site.python_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#set_mode_argument) \| [Java]({{ site.java_api }}BarcodeReader/parameter-and-runtime-settings-basic.html#setmodeargument) \| [Java-Android]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument) \| [Objective-C & Swift]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#setmodeargument)
-
-
-### As JSON Parameter
-`TextureDetectionModes` as a JSON parameter is a JSON Object array. Each JSON object is defined as below.
-
-| Key Name | Key Value | Description |
-| -------- | --------- | ----------- |
-| Mode | Any one in Candidate Mode List as string | (Required) Specifies a mode for text filtering. |
-| Sensitivity | A number from value range of Sensitivity | (Optional) Sets the Argument [Sensitivity](#sensitivity). |
-| LibraryFileName | A string from value range of LibraryFileName | (Optional) Sets the Argument [LibraryFileName](#libraryfilename). |
-| LibraryParameters | A string from value range of LibraryParameters | (Optional) Sets the Argument [LibraryParameters](#libraryparameters). |
-
-
-
-**JSON Parameter Example**
-```
-{
- "TextureDetectionModes": [
- {
- "Mode": "TDM_GENERAL_WIDTH_CONCENTRATION",
- "Sensitivity": 5
- }
- ]
-}
-```
-
-
-
-## Candidate Argument List
-- [Sensitivity](#sensitivity)
-- [LibraryFileName](#libraryfilename)
-- [LibraryParameters](#libraryparameters)
-
-
-### Sensitivity
-Sets the sensitivity used for texture detection.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *int* | [1, 9] | 5 | TDM_GENERAL_WIDTH_CONCENTRATION |
-
-**Remarks**
- A larger value means the library will take more effort to detect texture.
-
-
-
-### LibraryFileName
-Sets the file name of the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | --------- |
-| *string* | A string value representing file name. | "" | All modes |
-
-
-**Remarks**
- The library must be in the same place with Dynamsoft Barcode Reader Library.
-
-
-### LibraryParameters
-Sets the parameters passed to the library to load dynamically.
-
-| Value Type | Value Range | Default Value | Valid For |
-| ---------- | ----------- | ------------- | ----------- |
-| *string* | A string value representing parameters. | "" | All modes |
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to deal with image textures]({{ site.scenario_settings }}texture-detection.html#)
diff --git a/parameters/reference/time-out.md b/parameters/reference/time-out.md
deleted file mode 100644
index 5f65c7d4..00000000
--- a/parameters/reference/time-out.md
+++ /dev/null
@@ -1,74 +0,0 @@
----
-layout: default-layout
-title: Timeout - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for Timeout.
-keywords: Timeout, parameter reference, parameter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /parameters/reference/time-out.html
----
-
-
-# Timeout
-
-`Timeout` defines the maximum amount of time (in milliseconds) that should be spent searching for a barcode per page. It does not include the time taken to load/decode an image (Tiff, PNG, etc) from disk into memory. It is defined as below:
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *int* | [0, 0x7fffffff] | 10000 | `ImageParameter` |
-
-
-## Setting Methods
-`Timeout` is supported to be set through `RuntimeSetting` or JSON template.
-
-### As `PublicRuntimeSettings` Member
-`Timeout` can be set dynamically during runtime as a member of `PublicRuntimeSettings` struct.
-
-
-**Code Snippet in C++**
-```cpp
-//...other codes
-PublicRuntimeSettings* pSettings = new PublicRuntimeSettings;
-int errorCode = reader->GetRuntimeSettings(pSettings);
-pSettings->timeout = 500;
-reader->UpdateRuntimeSettings(pSettings);
-delete pSettings;
-//...other codes
-```
-
-
-**See Also**
-- `PublicRuntimeSettings:` [JavaScript]({{ site.js_api }}interface/RuntimeSettings.html) \| [C]({{ site.structs }}PublicRuntimeSettings.html?src=c) \| [C++]({{ site.structs }}PublicRuntimeSettings.html?src=cpp) \| [.NET]({{ site.dotnet_api }}struct/PublicRuntimeSettings.html) \| [Python]({{ site.python_api }}class/PublicRuntimeSettings.html) \| [Java]({{ site.java_api }}class/PublicRuntimeSettings.html) \| [Java-Android]({{ site.android_api }}auxiliary-PublicRuntimeSettings.html) \| [Objective-C & Swift]({{ site.oc_api }}auxiliary-iPublicRuntimeSettings.html)
-
-
-### As JSON Parameter
-`Timeout` as a JSON parameter is a number value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| Timeout | A number from [0, 0x7fffffff] |
-
-
-**JSON Example**
-```
-{
- "Timeout": 500
-}
-```
-
-
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [How to terminate the process]({{ site.scenario_settings }}terminate.html)
diff --git a/parameters/reference/verify-check-digit.md b/parameters/reference/verify-check-digit.md
deleted file mode 100644
index 55121a53..00000000
--- a/parameters/reference/verify-check-digit.md
+++ /dev/null
@@ -1,44 +0,0 @@
----
-layout: default-layout
-title: VerifyCheckDigit - Dynamsoft Barcode Reader Parameter Reference
-description: This page shows Dynamsoft Barcode Reader Parameter Reference for VerifyCheckDigit.
-keywords: VerifyCheckDigit, parameter reference, parameter
-permalink: /parameters/reference/verify-check-digit.html
----
-
-
-# VerifyCheckDigit
-
-`VerifyCheckDigit` specifies whether to verify the check digit in barcodes where this check digit is optional. It is defined as below:
-
-| Value Type | Value Range | Default Value | Template Structure Type |
-| ---------- | ----------- | ------------- | ----------------------- |
-| *int* | [0, 1] | 0 | `FormatSpecification` |
-
-**Remarks**
-- 0: Do not verify the check digit.
-- 1: Verify the check digit and if it does not match, no result will be returned. Do not set this parameter to 1 for barcodes without an optional check digit.
-- It is valid only for Code 11.
-
-
-## Setting Methods
-`VerifyCheckDigit` can be set via JSON template.
-
-### As JSON Parameter
-`VerifyCheckDigit` as a JSON parameter is an int value defined as below.
-
-| Key Name | Key Value |
-| -------- | --------- |
-| VerifyCheckDigit | 0 or 1 |
-
-
-**JSON Example**
-```
-{
- "VerifyCheckDigit": 1
-}
-```
-
-## Related Articles
-- [Use RuntimeSettings or Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html)
-- [Configure parameters for a certain barcode format]({{ site.scenario_settings }}format-specification.html)
diff --git a/parameters/scenario-settings/barcode-format-and-expected-barcode-counts-v7.6.0.md b/parameters/scenario-settings/barcode-format-and-expected-barcode-counts-v7.6.0.md
deleted file mode 100644
index 3098aca7..00000000
--- a/parameters/scenario-settings/barcode-format-and-expected-barcode-counts-v7.6.0.md
+++ /dev/null
@@ -1,57 +0,0 @@
----
-layout: default-layout
-title: How to set the barcode format and the number of barcodes expected to be detected
-description: This article describes how to set the barcode format and the number of barcodes expected to be detected, and the effect of these settings.
-keywords: barcode format, expected barcode counts
-needAutoGenerateSidebar: false
-permalink: /parameters/scenario-settings/barcode-format-and-expected-barcode-counts-v7.6.0.html
----
-
-# How to set the barcode format and the number of barcodes expected to be detected
-
-DBR can handle various common barcode formats on the market and is well suited to supporting multi-code scenes on an image. In order to support all barcode formats and solve all codes appearing in the figure, it will consume a certain amount of time. If you don't want to consume extra time, you can set the required barcode format through [`BarcodeFormatIds`]({{ site.parameters_reference }}barcode-format-ids.html), [`BarcodeFormatIds_2`]({{ site.parameters_reference }}barcode-format-ids-2.html), and set the number of barcodes expected to be detected through [`ExpectedBarcodesCount`]({{ site.parameters_reference }}expected-barcodes-count.html).
-
-## `BarcodeFormatIds`,`BarcodeFormatIds_2`
-
-These two parameters are used to set the required barcode format to be decoded. Barcode formats not specified will not be processed. You can speed up DBR processing by eliminating barcode formats that you don't care about. For specific enumeration values for the parameters, please refer to our API documents [`BarcodeFormatIds`]({{ site.parameters_reference }}barcode-format-ids.html), [`BarcodeFormatIds_2`]({{ site.parameters_reference }}barcode-format-ids-2.html).
-
-
-## `ExpectedBarcodesCount`
-
-This parameter is used to set the number of barcodes expected to be detected for each image. When the number of detected barcodes is greater than or equal to this parameter, the DBR algorithm will terminate. DBR can handle scenes with multiple barcodes in one image. Using this setting to specify the expected number of barcodes to read you can save time once the expected number of reads have occurred.
-
-## Example
-
-The following demonstrates the two configuration methods of RuntimeSetting and JSON template
-
-```c++
-CBarcodeReader* reader = new CBarcodeReader();
-reader->InitLicense("enter your license");
-PublicRuntimeSettings* runtimeSettings = new PublicRuntimeSettings();
-reader->GetRuntimeSettings(runtimeSettings); //get runtime settings
-runtimeSettings->barcodeFormatIds = BF_ALL; //set barcode format. BF_ALL means all barcode formats
-runtimeSettings->barcodeFormatIds_2 = BF2_NULL; //set barcode format2
-runtimeSettings->expectedBarcodesCount = 1; //set the number of barcodes expected to be detected to 1
-char sError[512];
-reader->UpdateRuntimeSettings(runtimeSettings, sError, 512); //update runtime settings
-reader->DecodeFile("file path", ""); //decode
-TextResultArray* paryResult = NULL;
-reader->GetAllTextResults(&paryResult); //get decode result
-CBarcodeReader::FreeTextResults(&paryResult);
-delete runtimeSettings;
-delete reader;
-```
-
-```json
-{
- "Version":"3.0",
- "ImageParameter":
- {
- "Name":"IP1",
- "BarcodeFormatIds":["BF_ALL"],
- "BarcodeFormatIds_2":["BF2_NULL"],
- "ExpectedBarcodesCount":1
- }
-}
-```
-
diff --git a/parameters/scenario-settings/deblur-level-v7.6.0.md b/parameters/scenario-settings/deblur-level-v7.6.0.md
deleted file mode 100644
index ab555af8..00000000
--- a/parameters/scenario-settings/deblur-level-v7.6.0.md
+++ /dev/null
@@ -1,47 +0,0 @@
----
-layout: default-layout
-description: How to configure DeblurLevel
-title: How to configure DeblurLevel
-keywords: deblur level
-needAutoGenerateSidebar: false
-permalink: /parameters/scenario-settings/deblur-level-v7.6.0.html
----
-
-# How to configure DeblurLevel
-
-In this part, we will introduce the parameter that specifies the attempt level of sampling decoding - [`DeblurLevel`]({{ site.parameters_reference }}deblur-level.html). There are a variety of approaches in DBR algorithm for sample decoding. The DeblurLevel can be set to a range of 0 to 9. The larger the value, the more preprocessing modes the DBR algorithm can apply for decoding, the more likely it is to extract the barcode value, and the slower it will be if the decoding fails. Users could adjust the value based on their actual situation.
-
-You could configure the DeblurLevel in RuntimeSetting:
-
-```cpp
-CBarcodeReader * reader = new CBarcodeReader();
-reader->InitLicense("Input your License");
-char error[512];
-PublicRuntimeSettings *settings = new PublicRuntimeSettings();
-read->GetRuntimeSettings(settings); //Load current RuntimeSettings
-settings->deblurLevel = 9; //Configure deblurLevel
-reader->UpdateRunTimeSettings(settings); //Update RuntimeSettings
-ret = reader->DecodeFile("Input file path",""); //Decoding
-TextResultArray *pResults = NULL;
-Reader->GetAllTextResults(&pResults); //Get result
-CBarcodeReader::FreeTextResults(&pResults);
-delete reader;
-delete settings;
-```
-
-You could also configure the parameter by loading JSON template.
-
-```javascript
-{
- "Version":"3.0",
- "ImageParameter":
- {
- "Name":"IP1",
- "BarcodeFormatIds":["BF_ALL"],
- "DeblurLevel":9
- }
-}
-```
-
-
-
diff --git a/parameters/scenario-settings/decode-result-v7.6.0.md b/parameters/scenario-settings/decode-result-v7.6.0.md
deleted file mode 100644
index 5d73df6c..00000000
--- a/parameters/scenario-settings/decode-result-v7.6.0.md
+++ /dev/null
@@ -1,187 +0,0 @@
----
-layout: default-layout
-description: This article describes how to filter and sort decoding results and related parameters
-title: How to filter and sort decoding results
-keywords: decode result
-permalink: /parameters/scenario-settings/decode-result-v7.6.0.html
----
-
-# How to filter and sort decoding results
-
-The `DBR` decoding result contains a variety of information, and we provide flexible parameters to filter and sort the results you care about.
-
-## Angle, width, height and text length of the decoded result
-
-You can set the angle, width, height, and text length requirements that the decoded result should meet through parameters, and the results that do not meet the setting requirements will be filtered out.
-
-- [`BarcodeAngleRangeArray`]({{ site.parameters_reference }}barcode-angle-range-array.html)
-
- Set the angle range that the returned result needs to meet, the value range is [0,360] (in degrees).
-
- The definition of Angle in `DBR` is: the angle between the vector at the lower left corner of the barcode as the starting point and the end point at the lower right corner of the barcode and the X axis, clockwise is positive. Let us take actual pictures to illustrate the angle
-
- ![1D Angle Example][4]
-
- ![QR Angle Example][5]
-
- ![DataMatrix Angle Example][2]
-
- ![Aztec Angle Example][1]
-
- ![Maxicode Angle Example][3]
-- [`BarcodeHeightRangeArray`]({{ site.parameters_reference }}barcode-height-range-array.html)
-
- Set the height range that the returned result needs to meet, the value range is [0,0x7ffffffff] (in pixels);
-
-- [`BarcodeWidthRangeArray`]({{ site.parameters_reference }}barcode-width-range-array.html)
-
- Set the width range that the returned result needs to meet, the value range is [0,0x7ffffffff] (in pixels);
-
-- [`BarcodeBytesLengthRangeArray`]({{ site.parameters_reference }}barcode-bytes-length-range-array.html)
-
- Set the length range that Bytes needs to meet in the returned result, the value range is [0,0x7ffffffff] (in bytes);
-
-- [`BarcodeTextLengthRangeArray`]({{ site.parameters_reference }}barcode-text-length-range-array.html)
-
- Set the length range of the Text in the returned result, the value range is [0,0x7ffffffff] (in the number of characters).
-
-## Use Regular Expression
-
-You can use [`BarcodeTextRegExPattern`]({{ site.parameters_reference }}barcode-text-regex-pattern.html) to specify the regular expression requirements that must be met when `DBR` returns the result text. The default value is empty which means there is no limitation.
-
-For example, if we set [`BarcodeTextRegExPattern`]({{ site.parameters_reference }}barcode-text-regex-pattern.html) as "[0-9]\d{4,11}", then the result text should be 4 to 11 digits. If the result is 123456 which matches the expression, it will be returned. If it is 123 which has only 3 digits or a123456 which has a letter in it, they don't match the expression and will not be returned.
-
-For more info, check out About Regular [Expression](https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/28hw3sce(v=vs.100))
-
-## Use Confidence Score
-
-The decoding result of `DBR` will have a confidence score, and the result with too low score may be wrong. You can use [`MinResultConfidence`]({{ site.parameters_reference }}min-result-confidence.html) to specify the minimum score that `DBR` needs to meet to return results. The default value is 0, which means there is no limit on the score of the returned result.
-
-Please refer to the following sample program for how to obtain the confidence of the returned result
-
-```cpp
-CBarcodeReader* reader = new CBarcodeReader();
-reader->InitLicense("LICENSE-KEY");
-reader->DecodeFile("FILE-PATH", "");
-TextResultArray* pResult = NULL;
-reader->GetAllTextResults(&pResult);
-int iCount = pResult->resultsCount;
-for(int j = 0; j < iCount; j++)
-{
- TextResult* pBarcode = pResults->results[j];
- LocalizationResult* pLocRes = pBarcode->localizationResult;
- printf("confidence:%d\n",pLocRes->confidence);
-}
-CBarcodeReader::FreeTextResults(&pResult);
-delete reader;
-```
-
-## Coordinate format of decoding result position
-
-For the position coordinates of the decoding result, the parameter [`ResultCoordinateType`]({{ site.parameters_reference }}result-coordinate-type.html) can be used to specify whether the coordinates are in pixels or percentage.
-
-|Name|Notes|
-|------|-----|
-|RCT_PERCENTAGE|The x of the returned coordinate point is the percentage of the image width, and y is the percentage of the image height|
-|RCT_PIXEL|The default. The coordinate point of the returned result is the pixel coordinate point|
-
-## Ordering
-
-[`TextResultOrderModes`]({{ site.parameters_reference }}text-result-order-modes.html) is used to sort the decoding results.
-
-|Name|Notes|
-|------|-----|
-|TROM_CONFIDENCE|Sort in descending order according to the score of the returned result|
-|TROM_POSITION|According to the coordinate position of the returned result, sort from top to bottom and from left to right|
-|TROM_FORMAT|Sort letters and numbers according to the code type string of the returned result|
-|TROM_SKIP|Skip the sorting|
-
-## Clarity
-
-[`ReturnBarcodeZoneClarity`]({{ site.parameters_reference }}return-barcode-zone-clarity.html) specifies whether to return the clarity of the barcode region detected on the image. It can be set to 0 or 1. The default value is 0 which means no clarity is returned. To return the clarity, set it to 1.
-
-`DBR` uses the gray gradient changes of adjacent pixels to measure the clarity of the code area. The value range of `BarcodeZoneClarity` is 0~100, the larger the number, the clearer it is.
-
-Please refer to the following sample program on how to obtain
-
-```cpp
-CBarcodeReader* reader = new CBarcodeReader();
-reader->InitLicense("LICENSE-KEY");
-PublicRuntimeSettings* runtimeSettings = new PublicRuntimeSettings();
-reader->GetRuntimeSettings(runtimeSettings);
-runtimeSettings->returnBarcodeZoneClarity = 1;
-char sError[512];
-reader->UpdateRuntimeSettings(runtimeSettings, sError, 512);
-reader->DecodeFile("FILE-PATH", "");
-TextResultArray* pResult = NULL;
-reader->GetAllTextResults(&pResult);
-int iCount = pResult->resultsCount;
-for(int j = 0; j < iCount; j++)
-{
- TextResult* pBarcode = pResults->results[j];
- ExtendResult* pExResult = pBarcode->result[0];
- printf("clarity:%d\n", pExResult->clarity);
-}
-CBarcodeReader::FreeTextResults(&pResult);
-delete runtimeSettings;
-delete reader;
-```
-
-## Sample template
-
-```json
-{
- "Version": "3.0",
- "ImageParameter": {
- "FormatSpecificationNameArray": [
- "FP_1"
- ],
- "TextResultOrderModes": [
- {
- "Mode": "TROM_CONFIDENCE"
- }
- ], //Order the results by confidence score
- "ResultCoordinateType": "RCT_PIXEL", //Return the coordinates in pixels
- "ReturnBarcodeZoneClarity": 0 //Do not return the clarity
- },
- "FormatSpecification": {
- "Name": " FP_1",
- "BarcodeAngleRangeArray": null, //Do not limit the angle
- "BarcodeBytesLengthRangeArray": [
- {
- "MaxValue": 20,
- "MinValue": 0
- }
- ], // Limit the number of the resulting bytes to 0~20
- "BarcodeFormatIds": [
- "BF_CODE_39"
- ],
- "BarcodeTextRegExPattern": "[0-9]\\d{4}", //Limit the result to be a 4-digit string
- "BarcodeHeightRangeArray": [
- {
- "MaxValue": 500,
- "MinValue": 0
- }
- ], // Limit the resulting barcode height to 0~500 px
- "BarcideWidthRangeArray": [
- {
- "MaxValue": 200,
- "MinValue": 100
- }
- ],//Limit the resulting barcode width to 100~200 px
- "MinResultConfidence": 30 // Limit the results by confidence score (>30)
- }
-}
-
-```
-
-[1]:assets\decode-result\aztec_angle_example.png
-[2]:assets\decode-result\dm_angle_example.png
-[3]:assets\decode-result\maxicode_angle_example.png
-[4]:assets\decode-result\oned_angle_example.png
-[5]:assets\decode-result\qr_angle_example.png
-
-
-
-
-
diff --git a/parameters/scenario-settings/dpm-decoding-v7.6.0.md b/parameters/scenario-settings/dpm-decoding-v7.6.0.md
deleted file mode 100644
index 577f7427..00000000
--- a/parameters/scenario-settings/dpm-decoding-v7.6.0.md
+++ /dev/null
@@ -1,64 +0,0 @@
----
-layout: default-layout
-description: This article introduces how to read DPM codes.
-title: How to read DPM codes
-keywords: DPM, Direct Part Marking
-needAutoGenerateSidebar: false
-permalink: /parameters/scenario-settings/dpm-decoding-v7.6.0.html
----
-
-# How to read DPM codes
-
-## What is DPM (Direct Part Marking)?
-
-It is the process of creating permanent markings on the surface of a part to help identify it. DPM Codes are used widely in industrial part tracking, from electronics manufacturing to automotive assembly. Atypical from general scenarios, DPM Codes present more challenges, including light reflection interference from the surface the code is printed on, low contrast, and complex background texture. DBR may not be able to handle these problems well by default, so this is where the parameter [`DPMCodeReadingModes`]({{ site.parameters_reference }}dpm-code-reading-modes.html#dpmcodereadingmodes) comes handy.
-
-For reference, here are two sample images of DPM codes:
-
-![DPM sample image1][1]
-![DPM sample image2][2]
-
-## How to configure the Barcode Reader to read DPM Codes
-
-To enable the DPM feature, you first need to add `LM_STATISTICS_MARKS` to the LocalizationModes and then add `DPMCRM_GENERAL` to [`DPMCodeReadingModes`]({{ site.parameters_reference }}dpm-code-reading-modes.html#dpmcodereadingmodes).
-
-`LM_STATISTICS_MARKS` is a dot matrix-based localization method specifically for DPM code and DotCode. For the allowed enumeration values of [`DPMCodeReadingModes`]({{ site.parameters_reference }}dpm-code-reading-modes.html#dpmcodereadingmodes), please refer to its documentation page.
-
-In order to facilitate the configuration, adding `DPMCRM_GENERAL` to [`DPMCodeReadingModes`]({{ site.parameters_reference }}dpm-code-reading-modes.html#dpmcodereadingmodes) automatically adds `LM_STATISTICS_MARKS` to LocalizationModes. Therefore, if you would like to enable DPM, you only need to set [`DPMCodeReadingModes`]({{ site.parameters_reference }}dpm-code-reading-modes.html#dpmcodereadingmodes) to `DPMCRM_GENERAL`.
-
-## Example
-
-The following code snippet shows how to read DPM code via RuntimeSettings and JSON template individually.
-
-- Set via RuntimeSettings:
-```c++
-CBarcodeReader* reader = new CBarcodeReader();
-reader->InitLicense("insert your license here");
-PublicRuntimeSettings* runtimeSettings = new PublicRuntimeSettings();
-reader->GetRuntimeSettings(runtimeSettings); //Get the current RuntimeSettings
-runtimeSettings->furtherModes.dpmCodeReadingModes[0] = DPMCRM_GENERAL; // Turn on DPM reading mode
-char sError[512];
-reader->UpdateRuntimeSettings(runtimeSettings, sError, 512); // Update RuntimeSettings
-reader->DecodeFile("insert your image file path here", ""); // Start decoding
-TextResultArray* paryResult = NULL;
-reader->GetAllTextResults(&paryResult); // Get results
-CBarcodeReader::FreeTextResults(&paryResult);
-delete runtimeSettings;
-delete reader;
-```
-
-- Set via JSON template
-```Json
-{
- "Version":"3.0",
- "ImageParameter":
- {
- "Name":"IP1",
- "BarcodeFormatIds":["BF_ALL"],
- "DPMCodeReadingModes":["DPMCRM_GENERAL"]
- }
-}
-```
-
-[1]:assets\dpm-decoding\DPM-sample1.png
-[2]:assets\dpm-decoding\DPM-sample2.png
diff --git a/parameters/scenario-settings/format-specification-v7.6.0.md b/parameters/scenario-settings/format-specification-v7.6.0.md
deleted file mode 100644
index a38418dd..00000000
--- a/parameters/scenario-settings/format-specification-v7.6.0.md
+++ /dev/null
@@ -1,336 +0,0 @@
----
-layout: default-layout
-description: This article describes how to configure the FormatSpecification parameter to decode a particular barcode type
-title: Format Specification
-keywords: nonstandard barcode, specification
-needAutoGenerateSidebar: false
-permalink: /parameters/scenario-settings/format-specification-v7.6.0.html
----
-
-# Barcode format specification
-If you want to configure parameters for a certain barcode type, you can use the FormatSpecification. If the FormatSpecification configuration conflicts with the global Image Parameter, the configuration of the FormatSpecification has a higher priority. In this guide, we will introduce the following parameters and their applicable scenarios:
-
-- [BarcodeFormatIds,BarcodeFormatIds_2](#BarcodeFormatIds,BarcodeFormatIds_2)
-
- Specifies the barcode type to which the current FormatSpecification configuration applies
-
-- [MirrorMode](#MirrorMode)
-
- Specifies the image processing mode for decoding
-
-- [RequireStartStopChars](#RequireStartStopChars)
-
- Specifies whether the start and end characters are required for decoding
-
-- [AllModuleDeviation](#AllModuleDeviation)
-
- Specifies The deviation of the specified bar size from the standard bar size
-
-- [HeadModuleRati,TailModuleRatio](#HeadModuleRatio,TailModuleRatio)
-
- Species the number and size of customized bars at the head and tail of non-standard 1D barcode
-
-- [StandardFormat](#StandardFormat)
-
- Species a standard barcode format for non-standard 1D character set
-
-- [AustralianPostEncodingTable](#AustralianPostEncodingTable)
-
- Species the decoding table used by the Customer Information Field in the AustralianPost Code
-
-- [MinQuietZoneWidth](#MinQuietZoneWidth)
-
- Species the minimum width of the barcode quiet zone
-
-- [ModuleSizeRangeArray](#ModuleSizeRangeArray)
-
- Species the size range of the module size to search for barcode
-
-- [Others](#Others)
-
-## BarcodeFormatIds,BarcodeFormatIds_2
-This parameter specifies the code type of the current FormatSpecification setting.
-
-## MirrorMode
-This parameter specifies the mirroring mode for decoding. Sometimes the image and the real scene happen to be mirror images of each other. For 2D barcodes, mirroring may cause the decoding to fail. In this case, we could configure the MirrorMode to correct the situation. The default value of MirrorMode is MM_NORMAL, which means it will only attempt to solve the original image.
-
-
-
-| Enumerations | Value | Note |
-|-----------|--------|----------------------|
-| MM_NORMAL | 0x01 | Keep the original image for the decoding process |
-| MM_MIRROR | 0x02 | Decode the mirror image |
-| MM_BOTH | 0x04 | Try both of the above methods. Default value |
-
-Below are two sample diagrams of normal and mirror QR
-
-Normal QR
-
-![normal QR][1]
-
-Mirror QR
-
-![mirror QR][2]
-
-Here is an JSON template where we configure the QR code type for mirroring
-```javascript
-{
- "ImageParameter": {
- "Name": "ImageParameter1",
- "Description": "This is mirror mode demonstrate",
- "FormatSpecificationNameArray": ["FP_1"]
- },
- "FormatSpecificationArray": [
- {
- "Name": "FP_1",
- "BarcodeFormatIds": ["BF_QR_CODE"],
- "MirrorMode":"MM_MIRROR"
- }
- ],
- "Version": "3.0"
-}
-```
-
-## RequireStartStopChars
-1D barcodes usually have fixed start and end characters. Normally, DBR can only decode a barcode properly if it finds the start and end characters. However, in some cases, the actual situation may be missing the start and end characters. RequireStartStopChars is designed to read these non-standard barcodes and is used to specify whether the start and end characters need to be found during 1D decoding. This parameter can be set to 0 or 1. 0 means no start and end characters are needed; 1 represents the need for a start and end.
-
-The figure below shows a standard Code39 with start and end characters
-
-![standard-code39][3]
-
-Below is a Code39 with the same code value but no start and end characters
-
-![code39 without start and end pattern][4]
-
-Here is an JSON template where we don't need a start and end character to decode Code39
-
-```json
-{
- "ImageParameter": {
- "Name": "ImageParameter1",
- "Description": "This is RequireStartStopChars demonstrate",
- "FormatSpecificationNameArray": ["FP_1"]
- },
- "FormatSpecificationArray": [
- {
- "Name": "FP_1",
- "BarcodeFormatIds": ["BF_CODE_39"],
- "RequireStartStopChars":0
- }
- ],
- "Version": "3.0"
-}
-```
-
-## AllModuleDeviation
-
-This parameter specifies the width deviation value of a non-standard 1D barcode type, in moduleSize, with the default value of 0.
-
-In some cases, it is possible for the real 1D barcode width to have an X moduleSize deviation relative to the standard barcode width. By default, DBR will not be able to handle these non-standard cases. Thus, you need to set the AllModuleDeviation to a certain deviation value when facing a non-standard barcode.
-
-
-When this parameter is used, the following parameters should be used together
-- `FormatSpecification.BarcodeFormatIds_2`
-You need to set `FormatSpecification.BarcodeFormatIds_2` to `NON_STANDARD_BARCODE`, which indicates that you will now define a new non-standard barcode format.
-- `FormatSpecification.StandardFormat`
-You need to set `StandardFormat` to a certain standard 1D barcode format, which specifics barcode format you are currently referring to as a non-standard character standard, such as `BF_CODE128`
-- `ImageParameter.BarcodeFormatIds_2`
-You need to set `ImageParameter.BarcodeFormatIds_2` to `NON_STANDARD_BARCODE`, which means you will deal with just defined non-standard barcode.
-
-To illustrate this with a practical example, below is a standard Code128, moduleSize 2px
-
-![standard-code128][5]
-
-Next is a non-standard Code128, each bar of which is 4px (2 module size) larger than the standard bar
-
-![code128-deviation][6]
-
-We can set AllModuleDeviation to 2, so that the deviation value of 2 moduleSize will be used during decoding, as a result, the barcode value will be correctly extracted. The following Json template demonstrates the complete configuration.
-
-```json
-{
- "ImageParameter": {
- "Name": "ImageParameter1",
- "Description": "This is deviation demonstrate",
- "FormatSpecificationNameArray": ["FP_1"],
- "BarcodeFormatIds_2": ["BF2_NONSTANDARD_BARCODE"]
- },
- "FormatSpecificationArray": [
- {
- "Name": "FP_1",
- "BarcodeFormatIds_2": ["BF2_NONSTANDARD_BARCODE"],
- "StandardFormat": "BF_CODE_128",
- "AllModuleDeviation":2
-
- }
- ],
- "Version": "3.0"
-}
-```
-
-## HeadModuleRatio, TailModuleRatio
-Normally, the start and stop characters of 1D barcodes have a standard fixed proportion, but in reality, there may also be situations where the proportion is not standard.
-
-In this situation, If there is a fixed deviation between standard proportion and the non-standard proportion, we could try to set the value of [`AllModuleDeviation`](##AllModuleDeviation) to customize the proportion; If there is an irregular deviation, you can customize the proportion using `HeadModuleRatio` and `TailModuleRatio`.
-
-The following parameters are also needed to customize the head-tail proportion
-- `FormatSpecification.BarcodeFormatIds_2`
-You need to set `FormatSpecification.BarcodeFormatIds_2` to `NON_STANDARD_BARCODE`, which indicates that you will now define a new non-standard barcode format.
-- `FormatSpecification.StandardFormat`
-You need to set `StandardFormat` to a certain standard 1D barcode format, which specifies the barcode format you are currently referring to as a non-standard character standard. In the case that `BF_CODE128` is set, subset (A, B and C) needs to specify in `Code128Subset`.
-- `ImageParameter.BarcodeFormatIds_2`
-You need to set `ImageParameter.BarcodeFormatIds_2` to `NON_STANDARD_BARCODE`, which means you will deal with just defined non-standard barcode.
-
-Here we use a non-standard Code128 for illustration.
-As shown in the figure below, The start character proportion is 2:1:1:3:3:1, which does not conform to the proportion of start characters as defined in the Code128 standard, and its stop character proportion is 2:3:3:2:2:2:2:3, which also does not conform to the stop character proportion.
-
-
-![nonstandard-start-end][7]
-
-Standard code128 with the same value is shown below
-
-![standard-start-end][8]
-
-By default, DBR will not be able to read the above code128. In this case, in order to read the above non-standard code128, you could set `HeadModuleRatio` and `TailModuleRatio` as `"211331"` and `"2332223"` respectively. And set `Code128Subset` to `"C"`. The complete JSON configuration is as follows
-
-```json
-{
- "ImageParameter": {
- "Name": "ImageParameter1",
- "Description": "This is HeadModuleRatio and TailModuleRatio demonstrate",
- "FormatSpecificationNameArray": ["FP_1"],
- "BarcodeFormatIds_2": ["BF2_NONSTANDARD_BARCODE"]
- },
- "FormatSpecificationArray": [
- {
- "Name": "FP_1",
- "BarcodeFormatIds_2": [
- "BF2_NONSTANDARD_BARCODE"
- ],
- "StandardFormat":"BF_CODE_128",
- "HeadModuleRatio": "211331",
- "TailModuleRatio": "2332223",
- "Code128Subset": "C"
- }
- ],
- "Version": "3.0"
-}
-```
-
-## StandardFormat
-
-This parameter specifies the character set of the standard barcode type referenced by the non-standard 1D character set. It should be used together with [`AllModuleDeviation`](##AllModuleDeviation), [`HeadModuleRatio`](##HeadModuleRatio,TailModuleRatio), [`TailModuleRatio`](##HeadModuleRatio,TailModuleRatio), we will not explain this parameter in detail here.
-
-## AustralianPostEncodingTable
-
-The AustralianPost Code has a section of customer information area, which can be decoded using two standard defined decoding tables (N table, C table). This parameter can be set to specify either N table or C table for decoding. Please refer to the AustralianPostcode standard documentation for specific definitions of these two code tables.
-
-This parameter can be set to "C" or "N" and the default value is "C".
-
-You also need to set `FormatSpecification.BarcodeFormatIds_2` to `BF2_AUSTRALIANPOST`.
-
-
-## MinQuietZoneWidth
-
-There should be enough white space on both sides of the standard barcode as a quiet area. But in reality, there may not be enough white space. In this case, we can use the `MinQuietZoneWidth` to set the minimum quiet area size, in ModuleSize, with a default value of 4.
-
-![barcode-quietzone-definition][9]
-
-Here is a sample image with a very narrow quiet zone
-
-![barcode-narrow-wide-quietzone][11]
-
-We can set MinQuietZoneWidth to 1 or less, as a result, the above sample image can be properly decoded.
-
-```json
-{
- "ImageParameter": {
- "Name": "ImageParameter1",
- "Description": "This is quiet zone demonstrate",
- "FormatSpecificationNameArray":["FP_1"],
- "DeblurLevel": 1
- },
- "FormatSpecificationArray": [
- {
- "Name": "FP_1",
- "BarcodeFormatIds": ["BF_CODE_128"],
- "MinQuietZoneWidth":3
- }
- ],
- "Version": "3.0"
-}
-```
-
-## ModuleSizeRangeArray
-
-This parameter specifies a certain modulesize range for barcode searching, barcodes which do not meet the criteria will not be decoded,
-
-The default value is null, meaning that the moduleSize of the barcode is not limited
-
-You can set the range to [0,0x7fffffff] in pixels.
-
-JSON template
-
-```json
-{
- "ImageParameter": {
- "Name": "ImageParameter1",
- "Description": "This is template demonstrate",
- "FormatSpecificationNameArray":["FP_1"]
- },
- "FormatSpecificationArray": [
- {
- "Name": "FP_1",
- "BarcodeFormatIds": [
- "BF_CODE_39"
- ],
- "ModuleSizeRangeArray":[
- {
- "MaxValue":100,
- "MinValue":10
- }
- ]
- }
- ],
- "Version": "3.0"
-}
-```
-
-
-
-## Others
-The usage of the other parameters in `FormatSpecification` will be covered in more detail in other related documentation than we will expand on in this article.
-- BarcodeAngleRangeArray, BarcodeBytesLengthRangeArray, BarcodeHeightRangeArray, BarcodeTextLengthRangeArray, BarcodeWidthRangeArray, BarcodeTextRegExPattern, MinResultConfidence.
-
-Please refer to [Barcode Results][12]
-
-- AccompanyingTextRecognitionModes
-Please refer to [RecogniseAccompanyingText][14]
-
-[1]:assets/format-specification/normal-qr.png
-
-[2]:assets/format-specification/mirror-qr.png
-
-[3]:assets/format-specification/standard-code39.png
-
-[4]:assets/format-specification/code39-without-start-end.png
-
-[5]:assets/format-specification/standard-code128.png
-
-[6]:assets/format-specification/code128-deviation.png
-
-[7]:assets/format-specification/nonstandard-start-end.png
-
-[8]:assets/format-specification/standard-start-end.png
-
-[9]:assets/format-specification/barcode-quietzone-definition.png
-
-[10]:assets/format-specification/barcode-with-wide-quietzone.png
-
-[11]:assets/format-specification/barcode-with-narrow-quietzone.png
-
-[12]:decode-result.html
-
-[14]:recognise-accompanying-text.html
-
-
diff --git a/parameters/scenario-settings/how-to-set-barcode-complement-modes-v7.6.0.md b/parameters/scenario-settings/how-to-set-barcode-complement-modes-v7.6.0.md
deleted file mode 100644
index 5fb7813b..00000000
--- a/parameters/scenario-settings/how-to-set-barcode-complement-modes-v7.6.0.md
+++ /dev/null
@@ -1,71 +0,0 @@
----
-layout: default-layout
-description: Decode incomplete barcodes by using BarcodeComplementModes
-title: How to set barcode complement modes
-keywords: BarcodeComplementModes, damaged image
-permalink: /parameters/scenario-settings/how-to-set-barcode-complement-modes-v7.6.0.html
----
-
-# How to decode incomplete barcodes
-
-In some case, due to misprinting, barcodes may have incomplete parts. For example, a QR code that is missing the position detection pattern (See the sample image below). In this case, you can enable the barcode completion logic in Dynamsoft Barcode Reader(DBR) by turning on [`BarcodeComplementModes`]({{ site.parameters_reference }}barcode-complement-modes.html#barcodecomplementmodes). DBR will then automatically attempt to complete and correct the location information that is incorrect or lost due to misprinting according to the structure characteristics of the corresponding barcode type. The barcode completion logic only supports QR code and Data Matrix at present. BarcodeComplementModes is disabled by default, you can enable it based on your requirements.
-
-Here are two examples with imcomplete barcodes
-![barcode-complement-modes-sample-image-dm][1]
-![barcode-complement-modes-sample-image-qr][2]
-
-## Sample code snippets
-
-### Enable BarcodeComplementModes
-
-``` c++
-CBarcodeReader* reader = new CBarcodeReader();
-reader->InitLicense("Input your license");
-PublicRuntimeSettings* runtimeSettings = new PublicRuntimeSettings();
-reader->GetRuntimeSettings(runtimeSettings); //Get current settings
-runtimeSettings->furtherModes.barcodeComplementModes[0] = BCM_GENERAL; //Enable barcode completion logic
-char sError[512];
-reader->UpdateRuntimeSettings(runtimeSettings, sError, 512);
-reader->DecodeFile("Path to your image file", ""); //Decode image
-TextResultArray* paryResult = NULL;
-reader->GetAllTextResults(&paryResult); //Get results
-int iCount = paryResult->resultsCount;
-for (int i = 0; i < iCount; i++)
-{
- printf("Text: %s", paryResult->results[i]->barcodeText); //print results
-}
-CBarcodeReader::FreeTextResults(&paryResult);
-delete runtimeSettings;
-delete reader;
-```
-
-### JSON template
-
-``` json
-{
- "Version":"3.0",
- "ImageParameterContentArray":
- [
- {
- "Name":"Test1",
- "FormatSpecificationNameArray":["FP_1"],
- "ExpectedBarcodesCount":0,
- "MaxAlgorithmThreadCount":4,
- "BarcodeFormatIds":["BF_ALL"],
- "BarcodeComplementModes":["BCM_GENERAL"],
- "DeblurLevel":9
- }
- ],
- "FormatSpecificationArray":
- [
- {
- "Name":"FP_1",
- "BarcodeFormatIds":["BF_PDF417","BF_QR_CODE","BF_DATAMATRIX"],
- "MirrorMode":"MM_Both"
- }
- ]
-}
-```
-
-[1]:assets\how-to-set-barcode-complement-modes\barcode-complement-modes-sample-image-dm.png
-[2]:assets\how-to-set-barcode-complement-modes\barcode-complement-modes-sample-image-qr.png
diff --git a/parameters/scenario-settings/how-to-set-binarization-modes-v7.6.0.md b/parameters/scenario-settings/how-to-set-binarization-modes-v7.6.0.md
deleted file mode 100644
index df6fb848..00000000
--- a/parameters/scenario-settings/how-to-set-binarization-modes-v7.6.0.md
+++ /dev/null
@@ -1,210 +0,0 @@
----
-layout: default-layout
-description: This article introduces how to configure the binarization parameters
-title: How to configure the binarization parameters
-keywords: BinarizationModes, IntermediateResultType.IRT_BINARIZED_IMAGE
-needAutoGenerateSidebar: false
-permalink: /parameters/scenario-settings/how-to-set-binarization-modes-v7.6.0.html
----
-
-# How to configure the binarization parameters
-
-This article introduces how to adjust the configurable parameters in the binarization process to obtain better results. DBR provides two binarization modes, BM_THRESHOLD and BM_LOCAL_BLOCK.
-
-You can set the intermediate result IRT_BINARIZED_IMAGE to output and observe the effect of the binary image in the process of adjusting parameters. We will introduce the two methods respectively in the following sections.
-
-## BM_THRESHOLD
-
-`BM_THRESHOLD` uses a global threshold to binarize the image. If the gray value of the pixel is less than the threshold, it will be black in the binary image, otherwise it will be white. This mode has 2 additional argument parameters that can be set:
-
-- BinarizationThreshold
-
-The global threshold used for binarization. By default, the algorithm will automatically calculate the threshold based on the image, or you can specify the threshold manually.
-
-- ImagePreprocessingModesIndex
-
-Sets the binarization parameter for specific image pre-processing.
-
-## BM_LOCAL_BLOCK
-
-As mentioned above, we use a unified threshold for binarization, but this might not be good in all cases. If an image has different lighting conditions in different areas, `BM_LOCAL_BLOCK` can help. In this case, our algorithm determines the threshold for a pixel based on a small region around it, which makes it more adaptive and gives better results.
-
-`BM_LOCAL_BLOCK` has the followings arguments:
-
-- BlockSizeX
-- BlockSizeY
-- EnableFillBinaryVacancy
-- ImagePreprocessingModesIndex
-- ThreshValueCoefficient
-
-### BlockSizeX and BlockSizeY
-
-You can set the width and height of neighbour pixels when calculating the binarization threshold. Generally, it is recommended to set BlockSizeX and BlockSizeY to 5 - 8 times ModuleSize.
-
-### EnableFillBinaryVacancy
-
-This parameter controls whether to fill the vacant hollows. The default value of this parameter is true.
-
-When the ModuleSize of the picture is large and the BlockSize is small, some bars or dots of the barcode after binarization will be hollowed out. Turning it on can prevent this from happening.
-
-The following images show the original image, enabled and disabled the parameter individually.
-
-![binarization-modes-enablefillbinaryvacancy-original-image-sample][5]
-Original Image
-
-![binarization-modes-enabled-fillbinaryvacancy-image-sample][6]
-![binarization-modes-disabled-fillbinaryvacancy-image-sample][7]
-Left: Enable EnableFillBinaryVacancy. Right: Disable EnableFillBinaryVacancy
-
-### ThreshValueCoefficient
-
-This parameter is an additional constant that needs to be subtracted when calculating the binarization threshold. Usually it is positive, but it can also be zero or negative.
-
-### ImagePreprocessingModesIndex
-
-Sets the binarization parameter for specific image pre-processing.
-
-## Example
-
-In the following sections, we will introduce when and how to use BinarizationModes.
-
-### Different lighting conditions
-
-![uneven-illumination][8]
-
-The picture above has different lighting conditions in different areas. If we use BM_THRESHOLD to set a global value as a threshold, it will be difficult to yield good results. In this case, it is more suitable to use BM_LOCAL_BLOCK to set an adaptive binarization threshold.
-
-The following images show the effects of BM_THRESHOLD (global thresholding) and BM_LOCAL_BLOCK (adaptive thresholding) individually for an image with varying illumination:
-
-![dm-threshold][9]
-![dm-local-block][10]
-
-### Obvious contrast between the barcode and the background but has texture interference
-
-Below we will talk about when and how to use BM_THRESHOLD. In the image below, the contrast between the barcode and the background is very obvious, the gray-scale pixel values are quite different, but the surface of the background is not smooth and has a lot of texture interference.
-
-![noise][11]
-
-If we use BM_LOCAL_BLOCK method, textures on the background will also appear in the binary image, which is not what we want, as follows:
-
-![texture-local-block][12]
-
-Considering that the barcode colour and the background colour are quite different, it is more appropriate to use BM_THRESHOLD, the effect is as follows:
-
-![texture-threshold][13]
-
-### How to adjust BlockSize
-
-![binarization-modes-original-image-sample][1]
-
-If we use the default binarization parameters, the binary image will be like this:
-
-![binarization-modes-binarized-image-sample1][2]
-
-Apparently, the three finder patterns of the QR Code have been destroyed, resulting in the failure to localize the QR code. Here we change BlockSizeX and BlockSizeY to get the following binary image. In this image, the finder patterns of the QR Code are very clear and can be successfully localized and decoded.
-
-![binarization-modes-binarized-image-sample2][3]
-
-Below is the code snippet.
-
-### Set via RuntimeSettings
-
-- Code snippet in C++:
-
-``` c++
-CBarcodeReader* reader = new CBarcodeReader();
-reader->InitLicense("Insert your license here");
-
-PublicRuntimeSettings* runtimeSettings = new PublicRuntimeSettings();
-reader->GetRuntimeSettings(runtimeSettings); // Get the current RuntimeSettings
-runtimeSettings->binarizationModes[0] = BM_LOCAL_BLOCK; // Set the binarization mode
-runtimeSettings->intermediateResultSavingMode = IRSM_FILESYSTEM; // Save the intermediate result to file system
-runtimeSettings->intermediateResultTypes = IRT_BINARIZED_IMAGE; // Export binarized images as intermediate result
-
-char sError[512];
-reader->UpdateRuntimeSettings(runtimeSettings, sError, 512); // Update RuntimeSettings
-error = reader->SetModeArgument("BinarizationModes", 0, "BlockSizeX", "10");
-error = reader->SetModeArgument("BinarizationModes", 0, "BlockSizeY", "10");
-error = reader->SetModeArgument("IntermediateResultSavingMode", 0, "FolderPath", "Insert the output folder path here"); // Replace "Insert the output folder path here" with your own
-reader->DecodeFile("Insert your image path here", "") // Start decoding
-
-TextResultArray* paryResult = NULL;
-reader->GetAllTextResults(&paryResult); // Get results
-int iCount = paryResult->resultsCount;
-for (int i = 0; i < iCount; i++)
-{
- printf("Text: %s", paryResult->results[i]->barcodeText); // Print results
-}
-
-CBarcodeReader::FreeTextResults(&paryResult);
-delete runtimeSettings;
-delete reader;
-```
-
-### Set via JSON template
-- JSON File:
-
-``` json
-{
- "Version":"3.0",
- "ImageParameterContentArray":[
- {
- "Name":"Test1",
- "FormatSpecificationNameArray":["FP_1"],
- "BinarizationModes":["BM_LOCAL_BLOCK(10, 10)"],
- "IntermediateResultSavingMode":"IRSM_FILESYSTEM(Insert the output folder path here)",
- "IntermediateResultTypes":["IRT_BINARIZED_IMAGE"]
- }
- ],
- "FormatSpecificationArray":[
- {
- "Name":"FP_1",
- "BarcodeFormatIds":["BF_PDF417","BF_QR_CODE","BF_DATAMATRIX"],
- "MirrorMode":"MM_Both"
- }
- ]
-}
-```
-
-``` C++
-CBarcodeReader* reader = new CBarcodeReader();
-reader->InitLicense("Insert your license here");
-
-char sError[512];
-reader->InitRuntimeSettingsWithFile("Insert your JSON file path here", CM_OVERWRITE, sError, 512);
-reader->DecodeFile("Insert your image file path here", "");
-
-TextResultArray* paryResult = NULL;
-reader->GetAllTextResults(&paryResult); // Get results
-int iCount = paryResult->resultsCount;
-for (int i = 0; i < iCount; i++)
-{
- printf("Text: %s", paryResult->results[i]->barcodeText); // Print results
-}
-
-CBarcodeReader::FreeTextResults(&paryResult);
-delete reader;
-```
-
-Final Result:
-
-``` md
-Text: Dynamsoft's Barcode Reader SDK enables you to efficiently embed barcode reading functionality in your web, desktop or mobile application using just a few lines of code.
-```
-
-If you use the enhanced module IntermediateResult, you can find the followings in the output result directory:
-![binarization-modes-original-intermediate-results][4]
-
-[1]:assets\how-to-set-binarization-modes\binarization-modes-original-image-sample.png
-[2]:assets\how-to-set-binarization-modes\binarization-modes-binarized-image-sample1.png
-[3]:assets\how-to-set-binarization-modes\binarization-modes-binarized-image-sample2.png
-[4]:assets\how-to-set-binarization-modes\binarization-modes-original-intermediate-results.png
-[5]:assets\how-to-set-binarization-modes\binarization-modes-enablefillbinaryvacancy-original-image-sample.png
-[6]:assets\how-to-set-binarization-modes\binarization-modes-enabled-fillbinaryvacancy-image-sample.png
-[7]:assets\how-to-set-binarization-modes\binarization-modes-disabled-fillbinaryvacancy-image-sample.png
-[8]:assets\how-to-set-binarization-modes\uneven-illumination.png
-[9]:assets\how-to-set-binarization-modes\dm-threshold.png
-[10]:assets\how-to-set-binarization-modes\dm-local-block.png
-[11]:assets\how-to-set-binarization-modes\noise.png
-[12]:assets\how-to-set-binarization-modes\texture-bm-local-block.png
-[13]:assets\how-to-set-binarization-modes\texture-bm-threshold.png
diff --git a/parameters/scenario-settings/how-to-set-localization-modes-v7.6.0.md b/parameters/scenario-settings/how-to-set-localization-modes-v7.6.0.md
deleted file mode 100644
index 2caf40d2..00000000
--- a/parameters/scenario-settings/how-to-set-localization-modes-v7.6.0.md
+++ /dev/null
@@ -1,154 +0,0 @@
----
-layout: default-layout
-description: This article introduces how to use different localization modes to obtain the best barcode localization results for further decoding.
-title: How to use different localization modes
-keywords: localization, barcode area
-needAutoGenerateSidebar: false
-permalink: /parameters/scenario-settings/how-to-set-localization-modes-v7.6.0.html
----
-
-# How to use different localization modes
-
-DBR provides a few localization modes to localize the barcode area. This article will introduce how to select the appropriate localization mode in different scenarios to obtain the best barcode localization results for further decoding.
-
-## LM_CONNECTED_BLOCKS
-
-Localizes barcodes by searching for connected blocks. This is optimized for clear images with obvious connected blocks, as shown below:
-
-![original-barcode][1]
-
-The image has clear connected blocks, which are highlighted below:
-
-![original-barcode-contours][5]
-
-## LM_LINES
-
-Localizes barcodes by searching for groups of lines. It is optimized for images with obvious straight lines. Compared with the LM_CONNECTED_BLOCKS mode, it can handle the situation where some bars (or lines) of the barcode stick to each other.
-
-As shown in the image below, the connected blocks are destroyed because of the existence of two extra lines, which cannot be found by using LM_CONNECTED_BLOCKS.
-
-![contaminated-barcode][2]
-
-But it still has obvious straight line characteristics, as shown in the image below. In this case, using LM_LINES is able to localize the barcode.
-
-![contaminated-barcode-lines][7]
-
-## LM_STATISTICS
-
-Localizes barcodes based on colour statistics. This mode is suitable for scenarios where the barcode area is severely damaged. For example, the original image is very large but the barcode area is small, so the barcode area may be severely damaged after image binarization, as shown in the image below:
-
-
-
-After binarization, the position patterns is damaged, as shown below:
-
-![contaminated-barcode-lines][9]
-
-There are obvious black and white contrast near the barcode area, so the barcode can be successfully localized using LM_STATISTICS mode.
-
-## LM_SCAN_DIRECTLY
-
-Localizes barcodes based on the direct scanning mode. It is the fastest among all localization modes, but it requires high barcode image quality, and the direction of the barcode must be horizontal or vertical. This mode is recommended in the real-time video scanning scenarios.
-
-There are two additional argument parameters ScanStride and ScanDirection in this mode:
-
-- ScanStride
-
- Sets the interval between adjacent scan lines. The unit is pixel. The default value is 0, which means that DBR automatically calculates the interval. The smaller the value is, the more likely it is to locate the code area, but it will also increase the time.
-
-- ScanDirection
-
- Sets the scan direction, the allowed values are 0, 1, 2. The default value is 0, which means scanning in both horizontal and vertical directions. 1 means scanning only in the vertical direction, and 2 means scanning only in the horizontal direction. Setting the appropriate scanning direction can decrease the processing speed.
-
-## LM_STATISTICS_MARKS
-
-Localizes barcodes by dot matrix information. This mode is only applicable to DPM Code and DotCode. Below is a sample image of DotCode:
-
-![dotcode][3]
-
-## LM_STATISTICS_POSTAL_CODE
-
-Localizes barcodes by statistics, connected blocks and straight lines. This mode is only applicable to Postal Code. Below is a sample image of Postal Code:
-
-![postalcode][4]
-
-## LM_CENTRE
-
-Localizes barcodes from centre. This mode uses the central area of the image as the suspected code area and then try to localize and decode.
-
-## Use intermediate results to obtain the localization result
-
-If DBR successfully localizes the barcode zone, you can use the intermediate result IRT_TYPED_BARCODE_ZONE to obtain the localization result. The localization result includes "angle" (the angle of the barcode zone), "barcodeFormat" (barcode format), "confidence" (the confidence value of the barcode zone), "moduleSize" (barcode module size), "pageNumber" (0-based page number), "terminatePhase" (terminate phase), "x1y1x2y2x3y3x4y4" (the coordinates of the barcode zone).
-
-## Example
-
-Code snippet in C++:
-
-```cpp
- char sError[512];
- CBarcodeReader* reader = new CBarcodeReader();
- reader->InitLicense("Insert your license here");
- PublicRuntimeSettings* runtimeSettings = new PublicRuntimeSettings();
- reader->GetRuntimeSettings(runtimeSettings); // Get the current runtime settings
- runtimeSettings->localizationModes[0] = LM_LINES; // Only use LM_LINES as the localization mode
- runtimeSettings->localizationModes[1] = LM_SKIP;
- runtimeSettings->localizationModes[2] = LM_SKIP;
- runtimeSettings->localizationModes[3] = LM_SKIP;
- reader->UpdateRuntimeSettings(runtimeSettings);
- reader->DecodeFile("Insert the image file path here", "");// Start decoding
- TextResultArray* result = NULL;
- reader->GetAllTextResults(&result); // Get results
- int icount = result->resultsCount;
- CBarcodeReader::FreeTextResults(&result);
- delete runtimeSettings;
- delete reader;
-```
-
-Example JSON template:
-
-```json
-{
- "ImageParameter": {
- "Name": "ImageParameter1",
- "Description": "This is LocalizationMode demonstrate",
- "LocalizationModes":[
- {
- "Mode":"LM_CONNECTED_BLOCKS"
- },
- {
- "Mode":"LM_SCAN_DIRECTLY",
- "ScanStride":0,
- "ScanDirection":0
- },
- {
- "Mode":"LM_STATISTICS"
- },
- {
- "Mode":"LM_LINES"
- }
- ],
- "DeblurLevel":9
- },
- "Version": "3.0"
-}
-```
-
-
-
-
-[1]:assets\how-to-set-localization-modes\original-barcode.png
-
-[2]:assets\how-to-set-localization-modes\contaminated-barcode.png
-
-[3]:assets\how-to-set-localization-modes\dotcode.png
-
-[4]:assets\how-to-set-localization-modes\postalcode.png
-
-[5]:assets\how-to-set-localization-modes\original-barcode-contours.png
-
-[6]:assets\how-to-set-localization-modes\contaminated-barcode-contours.png
-
-[7]:assets\how-to-set-localization-modes\contaminated-barcode-lines.png
-
-[8]:assets\how-to-set-localization-modes\original-barcode-lines.png
-
-[9]:assets\how-to-set-localization-modes\binarized-qrcode.png
diff --git a/parameters/scenario-settings/how-to-set-parameters-v7.6.0.md b/parameters/scenario-settings/how-to-set-parameters-v7.6.0.md
deleted file mode 100644
index 89013f81..00000000
--- a/parameters/scenario-settings/how-to-set-parameters-v7.6.0.md
+++ /dev/null
@@ -1,163 +0,0 @@
----
-layout: default-layout
-description: This article introduces two ways to modify the configuration DBR RuntimeSetting and Json template, and their syntax rules
-title: How to set DBR parameters
-keywords: DBR RuntimeSetting Json Template ImageParameter FormatSpecification
-needAutoGenerateSidebar: false
-permalink: /parameters/scenario-settings/how-to-set-parameters-v7.6.0.html
----
-
-# How to set DBR parameters
-DBR provides flexible parameter configuration to meet user's decoding requirements under different scenarios and different needs. Users can modify the configuration through RuntimeSetting and the Json template.
-- RuntimeSetting
-RuntimeSetting is an object that manages various parameters during runtime. If you need to dynamically change the DBR configuration when the program is running, modifying RuntimeSetting will be a good choice. RuntimeSetting only provides some common parameters for setting, the complete parameter setting can be achieved through the Json template.
-- Json template
-The Json template provided by DBR allows you to manage various parameters in the form of configuration files. If your application scenario is relatively fixed and you do not need to change the DBR configuration frequently, the Json template will be a suitable choice. The Json template can be used along side with RuntimeSetting: first use the Json template to read the complete and stable settings, and then use RuntimeSetting for common and variable settings.
-
-Next, we will introduce two methods in detail:
-
-## RuntimeSetting object
-`RuntimeSetting` object manages various parameters of the DBR runtime. The user can change the DBR configuration by modifying the field values in `RuntimeSetting`. This method is suitable for scenarios that require dynamic configuration changes.
-
-First, you need to get the current `RuntimeSetting` object through `GetRuntimeSetting` , modify the corresponding field configuration, and then use `UpdateRuntimeSetting` to make the configuration effective. Specific modifiable field values will be introduced in detail in subsequent documents.
-
-The following example shows changing the `barcodeFormatIds` field in `RuntimeSetting` to set the barcode format that needs to be processed.
-
-```c++
-CBarcodeReader* reader = new CBarcodeReader();
-reader->InitLicense("type your license");
-PublicRuntimeSettings* runtimeSettings = new PublicRuntimeSettings();
-reader->GetRuntimeSettings(runtimeSettings); //get runtime settings
-runtimeSettings->barcodeFormatIds = BF_ALL ; //update the parameter. BF_ALL means all barcode formats
-char sError[512];
-reader->UpdateRuntimeSettings(runtimeSettings, sError, 512); //update runtime settings
-reader->DecodeFile("type your image path", ""); //decode
-TextResultArray* paryResult = NULL;
-reader->GetAllTextResults(&paryResult); //get the decode result
-CBarcodeReader::FreeTextResults(&paryResult);
-delete runtimeSettings;
-delete reader;
-```
-## Json template
-
-DBR allows users to manage parameters in the form of configuration files that follow Json syntax. This method is suitable for the case where the parameter configuration is relatively fixed . The Json template mainly involves `ImageParameter`, `FormatSpecification` and `RegionDefinition` .
-
-`ImageParameter`: Define the global configuration used for the entire image.
-`FormatSpecification`: Define the configuration used for a particular pattern.
-`RegionDefinition` : Define the configuration within a specific area of the image.
-
-Let's go into more detail.
-
-- ImageParameter
-`ImageParameter` defines the global configuration used for the entire image. One or multiple may be defined. We will introduce the specific configurable fields in the subsequent documents.
-When defining an `ImageParameter`, it can be specified by the `ImageParameter` in Json. When defining multiple `ImageParameter`, use the `ImageParameterContentArray`, each `ImageParameter` object needs to specify a different `Name`.
-To use the `ImageParameter` configuration defined in the Json template, first we need to use `InitRuntimeSettingsWithFile` to load a Json file, or use `InitRuntimeSettingsWithString` to load a Json string, and then when calling the DBR decoding function, specify the configuration through `Name` of `ImageParameter`. If not specified, the default `ImageParameter` configuration object will be used.
-The `emSettingPriority` parameters in the `InitRuntimeSettingsWithFile` and `InitRuntimeSettingsWithString` interfaces are used to specify how to operate the default configuration of the DBR when loading the Json configuration. If `CM_IGNORE` is set, the default configuration will not be changed. If set to `CM_OVERWRITE`, the `ImageParameter` configuration you just loaded will be used and the default template will be merged.
-
- The following is a sample Json template. In this example, we use the parameter `pTemplateName` of `DecodeFile` to specify the `ImageParameter` whose `Name` is "IP1".
-
-```json
-// One ImageParameter example {
-{
- "Version": "3.0",
- "ImageParameter": {
- "Name": "IP1",
- "Description": "This is an imageParameter",
- "BarcodeFormatIds": ["BF_ALL"]
- }
-}
-
-//Multiple ImageParameter example{
-{
- "Version": "3.0",
- "ImageParameterContentArray": [
- {
- "Name": "IP1",
- "BarcodeFormatIds": ["BF_ALL"]
- },
- {
- "Name": "IP2",
- "BarcodeFormatIds": ["BF_CODE_39"]
- },
- {
- "Name": "IP3",
- "BarcodeFormatIds": ["BF_CODE_128"]
- }
- ]
-}
-```
-
-```c++
-CBarcodeReader* reader = new CBarcodeReader();
-reader->InitLicense("type your license");
-int ret;
-char sError[512];
-ret = reader->InitRuntimeSettingsWithFile("JsonTemplate.json",CM_OVERWRITE,
-sError,512); ///Load a template configuration
-reader->DecodeFile("type your file path", "ImageParameter1"); //Use the configuration with the Name "IP1"
-TextResultArray* paryResult = NULL;
-reader->GetAllTextResults(&paryResult); //get decode result
-CBarcodeReader::FreeTextResults(&paryResult);
-delete runtimeSettings;
-delete reader;
-```
-- FormatSpecification
-If you only want to configure certain parameters for a specific pattern, then `FormatSpecification` should be used. This object defines the configuration used for a specific barcode format. If the configuration is inconsistent with the global ImageParameter configuration, then `FormatSpecification` has a higher priority. For specific configurable parameters and applicable scenarios, please refer to our documentation for [specific barcode format configuration parameters]().
-In Json, use the `FormatSpecificationArray` to define one or multiple `FormatSpecification` objects, which are distinguished by defining different `Name`.
-Use `FormatSpecificationNameArray` to specify the `Name` that each `FormatSpecification` needs to use.
-
-In the following example, we defined a `FormatSpecification` named "FS_1".
-
-```json
-{
- "ImageParameter": {
- "Name": "ImageParameter1",
- "FormatSpecificationNameArray": ["FS_1"]
- },
- "FormatSpecificationArray": [
- {
- "Name": "FS_1",
- "AllmoduleDeviation": 10,
- "BarcodeFormatIds": ["BF_CODE_39"]
- }
- ],
- "Version": "3.0"
-}
-```
-- RegionDefinition
-If you only care about a specific area on the image instead of the entire image or you want to make additional configurations for a specific area of the image, you should use `RegionDefinition`. Setting the area can help DBR to narrow the range of the image to be processed, which helps to increase the speed.
-The `RegionDefinition` object defines the configuration in the specified area of the image. If the configuration is inconsistent with the global `ImageParameter` configuration, then the RegionDefinition has a higher priority. For specific configurable parameters, please refer to our [detailed documentation][1] on `RegionDefinition` .
-In Json, one or more `RegionDefinitionArray` are defined by `RegionDefinitionArray`, and distinguished by different `Name`.
-
-In the following example, we have defined two `RegionDefinition`, "RP_1" and "RP_2"
-
-```json
-{
- "ImageParameter": {
- "Name": "ImageParameter1",
- "Description": "This is a region template",
- "RegionDefinitionNameArray": ["RP_1", "RP_2"]
- },
- "RegionDefinitionArray": [
- {
- "Name": "RP_1",
- "BarcodeFormatIds": ["BF_CODE_39"],
- "Top": 20,
- "Bottom": 80,
- "Left": 20,
- "Right": 80,
- "MeasuredByPercentage": 1
- },
- {
- "Name": "RP_2",
- "BarcodeFormatIds": ["BF_CODE_93"]
- }
- ],
- "Version": "3.0"
-}
-```
-
-[1]:manually-define-region-of-interest.html
-
-
-
diff --git a/parameters/scenario-settings/how-to-set-scaleup-modes-v7.6.0.md b/parameters/scenario-settings/how-to-set-scaleup-modes-v7.6.0.md
deleted file mode 100644
index 09954cdb..00000000
--- a/parameters/scenario-settings/how-to-set-scaleup-modes-v7.6.0.md
+++ /dev/null
@@ -1,125 +0,0 @@
----
-layout: default-layout
-description: This article introduces how DBR can enlarge the low resolution code area through the ScaleUpModes parameter to improve the decoding success rate.
-title: How to read barcodes with small module sizes
-keywords: ScaleUpModes, blurred image
-needAutoGenerateSidebar: false
-permalink: /parameters/scenario-settings/how-to-set-scaleup-modes-v7.6.0.html
----
-
-# How to read barcodes with small module sizes
-
-In some scenarios, the barcode is relatively small to the entire image and the barcode module size is also very small, making it difficult for our library to read the barcode. In this case, we can enlarge the barcode area through the [`ScaleUpModes`]({{ site.parameters_reference }}scale-up-modes.html#scaleupmodes) parameter to a proper size before starting the recognition process.
-
-Here is an overview of the enumerations for [`ScaleUpModes`]({{ site.parameters_reference }}scale-up-modes.html#scaleupmodes):
-
-|Enumeration |Description|
-|----|---|
-|SUM_SKIP|Do not enlarge the barcode area|
-|SUM_LINEAR_INTERPOLATION|Enlarge the barcode area with linear difference method|
-|SUM_NEAREST_NEIGHBOUR_INTERPOLATION|Enlarge the code area with nearest neighbor interpolation method|
-|SUM_AUTO|Auto detect whether to enlarge the barcode area or not|
-
-The default value for [`ScaleUpModes`]({{ site.parameters_reference }}scale-up-modes.html#scaleupmodes) is SUM_AUTO, which automatically detects whether to enlarge the code area before decoding.
-
-To control the enlarging process manually, you can choose one or all of the other available modes ( SUM_LINEAR_INTERPOLATION, SUM_NEAREST_NEIGHBOUR_INTERPOLATION) at the same time.
-
-When you set the parameter to both SUM_LINEAR_INTERPOLATION and SUM_NEAREST_NEIGHBOUR_INTERPOLATION, you can configure extra arguments to define a custom rule for scaling up. The arguments are as follows:
-
-- AcuteAngleWithXThreshold
- If the acute angle of the barcode with the horizontal axis (X) (see below figure for reference to which angle this is referring to) is greater than the value of AcuteAngleWithXThreshold, the barcode will be enlarged.
-
-- ModuleSizeThreshold
- If the module size of the barcode (see below figure for reference) is less than the value for ModuleSizeThreshold, the barcode will be enlarged.
-
-- TargetModuleSize
- The barcode will be enlarged by N times (N=1,2,3...) till N * ModuleSize is greater than or equal to TargetModuleSize.
-
-**Example**
-Condition: ModuleSizeThreshold = 4, AcuteAngleWithXThreshold = 30, TargetModuleSize = 4
-
-**Result**
-The module size of the barcode in the image is 2 pixels, which is smaller than ModuleSizeThreshold, and the acute angle is larger than AcuteAngleWithXThreshold, so our library will perform scaling up operation. After scaling up, the barcode is enlarged by 2 times since 2 * modulesize >= TargetModuleSize.
-
-![scale up sample image][2]
-
-Below is a sample image in real scenario:
-
-![scale up sample image][1]
-
-The barcode image is a bit blurry and the module size of the barcode is only 2px. By using the default barcode reading settings, the barcode may not be readable. In this case, we can use the [`ScaleUpModes`]({{ site.parameters_reference }}scale-up-modes.html#scaleupmodes) parameter in the following way:
-
-``` C++
-CBarcodeReader* reader = new CBarcodeReader();
-reader->InitLicense("Insert your license here");
-
-PublicRuntimeSettings* runtimeSettings = new PublicRuntimeSettings();
-reader->GetRuntimeSettings(runtimeSettings); // Get the current runtime settings
-runtimeSettings->scaleUpModes[0] = SUM_LINEAR_INTERPOLATION; // Set SUM_LINEAR_INTERPOLATION
-
-char sError[512];
-reader->UpdateRuntimeSettings(runtimeSettings, sError, 512); // Update runtime settings
-reader->SetModeArgument("scaleUpModes", 0, "AcuteAngleWithXThreshold", "0");
-reader->SetModeArgument("scaleUpModes", 0, "ModuleSizeThreshold", "4");
-reader->SetModeArgument("scaleUpModes", 0, "TargetModuleSize", "4");
-reader->DecodeFile("Insert your file path here", "") // Start decoding
-
-TextResultArray* paryResult = NULL;
-reader->GetAllTextResults(&paryResult); // Get results
-int iCount = paryResult->resultsCount;
-for (int i = 0; i < iCount; i++)
-{
- printf("Text: %s", paryResult->results[i]->barcodeText); // Print results
-}
-
-CBarcodeReader::FreeTextResults(&paryResult);
-delete runtimeSettings;
-delete reader;
-```
-
-You can also set the runtime settings (and the [`ScaleUpModes`]({{ site.parameters_reference }}scale-up-modes.html#scaleupmodes)) via a JSON template or string. The first snippet is the JSON template and the second demonstrates how to use that template for the runtime settings:
-
-``` Json
-{
- "Version":"3.0",
- "ImageParameterContentArray":[
- {
- "Name":"Test1",
- "ExpectedBarcodesCount":0,
- "MaxAlgorithmThreadCount":4,
- "BarcodeFormatIds":["BF_ALL"],
- "ScaleUpModes":["SUM_LINEAR_INTERPOLATION(0, 4, 4)"],
- "DeblurLevel":9
- }
- ]
-}
-```
-
-``` C++
-CBarcodeReader* reader = new CBarcodeReader();
-reader->InitLicense("Insert your license here");
-
-char sError[512];
-reader->InitRuntimeSettingsWithFile("insert your JSON file path here", CM_OVERWRITE, sError, 512);
-reader->DecodeFile("insert your image file path here", "");
-
-TextResultArray* paryResult = NULL;
-reader->GetAllTextResults(&paryResult); // Get results
-int iCount = paryResult->resultsCount;
-for (int i = 0; i < iCount; i++)
-{
- printf("Text: %s", paryResult->results[i]->barcodeText); // Print results
-}
-
-CBarcodeReader::FreeTextResults(&paryResult);
-delete reader;
-```
-
-Final result:
-
-``` md
-Text: 16046055491
-```
-
-[1]:assets/how-to-set-scaleup-modes/scale-up-sample-img.png
-[2]:assets/how-to-set-scaleup-modes/scale-up-sample-img2.png
diff --git a/parameters/scenario-settings/image-preprocessing-v7.6.0.md b/parameters/scenario-settings/image-preprocessing-v7.6.0.md
deleted file mode 100644
index 3a5cd38e..00000000
--- a/parameters/scenario-settings/image-preprocessing-v7.6.0.md
+++ /dev/null
@@ -1,126 +0,0 @@
----
-layout: default-layout
-description: This article introduces how to perform image preprocessing according to scene characteristics to improve the success rate of DBR positioning code area
-title: How to preprocess images based on different scenarios
-keywords: image preprocessing
-needAutoGenerateSidebar: false
-permalink: /parameters/scenario-settings/image-preprocessing-v7.6.0.html
----
-
-# How to preprocess images based on different scenarios
-
-The default configuration of `DBR` can handle most common scenarios. However, there are still some specific scenarios where the default configuration of `DBR` cannot locate the code area for decoding. For these specific scenarios, `DBR` has built-in [`ImagePreprocessingModes`]({{ site.parameters_reference }}image-preprocessing-modes.html#imagepreprocessingmodes) to configure the image preprocessing algorithm. For different scenarios, a specific pre-processing algorithm can effectively improve the success rate when detecting areas of interest. This article will detail how to choose the appropriate pre-processing mode according to the scenario.
-
-## Image preprocessing mode
-
-`DBR` provides multiple image preprocessing modes to deal with different situations. After configuring the preprocessing modes, we can judge the effectiveness and make adjustments by looking at the intermediate result `IRT_PREPROCESSED_IMAGE`, which is the pre-processed grayscale image, and `IRT_BINARIZED_IMAGE`, which is the binarized image. Below we will introduce the scenarios where one of the four modes `IPM_GRAY_EQUALIZE`, `IPM_GRAY_SMOOTH`, `IPM_SHARPEN_SMOOTH` and `IPM_MORPHOLOGY` helps.
-
-- `IPM_GRAY_EQUALIZE`
-
-Gray-level equalization, which is used to enhance the contrast of an image. The sample image below demonstrates the effect, before and after grayscale equalization. The colours of the DataMatrix code on the original image (left) is too similar to the background color, which would makes decoding, as is, more difficult. The picture on the right is the result of preprocessing through `IPM_GRAY_EQUALIZE`. The DataMatrix becomes much more pronounced, which will make the subsequent decoding process much easier.
-
-![Before Equalizing][1]![After Equalizing][2]
-
-This mode has an additional parameter `Sensitivity`, where the default value is 5, and the range is [1~9]. When you set `IPM_GRAY_EQUALIZE`, `DBR` does not necessarily perform equalization but will judge whether to perform it based on the gray distribution and `Sensitivity` of the image itself. The greater the value of `Sensitivity`, the more likely that `DBR` will perform the equalization process. Setting it to 9 means that gray-scale equalization must be performed while 1 means to skip the process.
-
-- `IPM_GRAY_SMOOTH`
-
-Grayscale smoothing, which is used to reduce image noise and texture. The following sample image shows a grayscale image with more noise and its corresponding binarized image. Obviously, there are many noises which will be bad for barcode reading.
-
-![Grayscale Before Smoothing][3]![Binarized Before Smoothing][5]
-
-After configuring `IPM_GRAY_SMOOTH` for smoothing. The noise of the binarized image are well handled well as shown below.
-
-![Grayscal After Smoothing][4]![Binarizedd After Smoothing][6]
-
-- `IPM_SHARPEN_SMOOTH`
-
-Sharpening and smoothing are used to reduce blur. The following sample image demonstrates the effect before and after processing in this mode. It is obvious that the processed picture is much clearer.
-
-![Before Sharpen-Smoothing][7]![After Sharpen-Smoothing][8]
-
-- `IPM_MORPHOLOGY`
-
-This mode improves the binarization process by eliminating noise and filling holes through corrosion and expansion operations. It is suitable for whe the barcode area is polluted or destroyed. The following sample image demonstrates the effect.
-
-![Before Morphology][9]![After Morphology][10]
-
-## Combination of pre-processing modes
-
-If the image to be processed is more complicated, you can use the above image preprocessing modes in combination. After configuring multiple modes through [`ImagePreprocessingModes`]({{ site.parameters_reference }}image-preprocessing-modes.html#imagepreprocessingmodes), `DBR` will try each mode in sequence until the number of successful decoded codes meets the expected value (`ExpectedBarcodeCount`), or the algorithm combination is exhausted.
-
-
-## Sample Code
-- Using RuntimeSetting
-
-```c++
-CBarcodeReader* reader = new CBarcodeReader();
-reader->InitLicense("your-license");
-PublicRuntimeSettings* runtimeSettings = new PublicRuntimeSettings();
-reader->GetRuntimeSettings(runtimeSettings);
-runtimeSettings->furtherModes.imagePreprocessingModes[0] = IPM_GRAY_EQUALIZE;
-runtimeSettings->furtherModes.imagePreprocessingModes[1] = IPM_GRAY_SMOOTH;
-runtimeSettings->furtherModes.imagePreprocessingModes[2] = IPM_SHARPEN_SMOOTH;
-runtimeSettings->furtherModes.imagePreprocessingModes[3] = IPM_MORPHOLOGY;
-char sError[512];
-reader->UpdateRuntimeSettings(runtimeSettings, sError, 512);
-reader->SetModeArgument("ImagePreprocessingModes", 0, "Sensitivity", "9", sError, 512);
-reader->SetModeArgument("ImagePreprocessingModes", 1, "SmoothBlockSizeX", "10", sError, 512);
-reader->SetModeArgument("ImagePreprocessingModes", 1, "SmoothBlockSizeY", "10", sError, 512);
-reader->SetModeArgument("ImagePreprocessingModes", 2, "SharpenBlockSizeX", "5", sError, 512);
-reader->SetModeArgument("ImagePreprocessingModes", 2, "SharpenBlockSizeY", "5", sError, 512);
-reader->SetModeArgument("ImagePreprocessingModes", 3, "MorphOperation", "Close", sError, 512);
-reader->SetModeArgument("ImagePreprocessingModes", 3, "MorphOperationKernelSizeX", "7", sError, 512);
-reader->SetModeArgument("ImagePreprocessingModes", 3, "MorphOperationKernelSizeY", "7", sError, 512);
-reader->DecodeFile("file-path", "");
-TextResultArray* paryResult = NULL;
-reader->GetAllTextResults(&paryResult);
-CBarcodeReader::FreeTextResults(&paryResult);
-delete runtimeSettings;
-delete reader;
-```
-
-- Use a JSON template
-
-```Json
-{
- "Version":"3.0",
- "ImageParameter":{
- "Name":"IP1",
- "BarcodeFormatIds":["BF_ALL"],
- "ImagePreprocessingModes": [
- {
- "Mode": "IPM_GRAY_EQUALIZE",
- "Sensitivity": 9
- },
- {
- "Mode": "IPM_GRAY_SMOOTH",
- "SmoothBlockSizeX": 10,
- "SmoothBlockSizeY": 10
- },
- {
- "Mode": "IPM_SHARPEN_SMOOTH",
- "SharpenBlockSizeX": 5,
- "SharpenBlockSizeY": 5
- },
- {
- "Mode": "IPM_MORPHOLOGY",
- "MorphOperation": "Close",
- "MorphOperationKernelSizeX": 7,
- "MorphOperationKernelSizeY": 7
- }
- ]
- }
-}
-```
-
-[1]:assets/image-preprocessing/gray-equalize-sample-1.png
-[2]:assets/image-preprocessing/gray-equalize-sample-2.png
-[3]:assets/image-preprocessing/gray-smooth-sample-1.png
-[4]:assets/image-preprocessing/gray-smooth-sample-2.png
-[5]:assets/image-preprocessing/gray-smooth-sample-3.png
-[6]:assets/image-preprocessing/gray-smooth-sample-4.png
-[7]:assets/image-preprocessing/before-sharpen-sample.png
-[8]:assets/image-preprocessing/after-sharpen-sample.png
-[9]:assets/image-preprocessing/before-close-sample.png
-[10]:assets/image-preprocessing/after-close-sample.png
diff --git a/parameters/scenario-settings/image-scale-and-colour-conversion-v7.6.0.md b/parameters/scenario-settings/image-scale-and-colour-conversion-v7.6.0.md
deleted file mode 100644
index e66a417e..00000000
--- a/parameters/scenario-settings/image-scale-and-colour-conversion-v7.6.0.md
+++ /dev/null
@@ -1,156 +0,0 @@
----
-layout: default-layout
-title: How to set image scaling and colour transformation
-description: This article introduces how to set image scaling, colour image grayscale, grayscale colour inversion and its usage scenarios.
-keywords: scale, grayscale
-needAutoGenerateSidebar: false
-permalink: /parameters/scenario-settings/image-scale-and-colour-conversion-v7.6.0.html
----
-
-# How to set image scaling and colour transformation
-
-Before DBR processes the image, you can set the image scaling, convert colour image to grayscale, and set grayscale transformation. This article will introduce when to enable it and how to configure the parameters.
-
-## Image scaling
-
-DBR may take a while to process the image if it is very large. The parameter [`ScaleDownThreshold`]({{ site.parameters_reference }}scale-down-threshold.html) is used to set the threshold for shrinking the image. The default value is 2300.
-
-If the shorter side length of the image is larger than [`ScaleDownThreshold`]({{ site.parameters_reference }}scale-down-threshold.html), the library will shrink the image by half until the shorter side is less than the threshold.
-
-You can speed up the barcode localization process by setting this parameter to shrink the image size. It makes a difference for large images, but not applicable for small-size images.
-
-## Convert colour image to grayscale
-
-If the image is a colour image, DBR will convert it to grayscale first for further process. You can use [`ColourConversionModes`]({{ site.parameters_reference }}colour-conversion-modes.html#colourconversionmodes) to set the grayscale mode. [`ColourConversionModes`]({{ site.parameters_reference }}colour-conversion-modes.html#colourconversionmodes) has three arguments:
-
-**BlueChannelWeight**: Sets the weight value of Blue Colour Channel used for converting a colour image to a grayscale image.
-**GreenChannelWeight**: Sets the weight value of Green Colour Channel used for converting a colour image to a grayscale image.
-**RedChannelWeight**: Sets the weight value of Red Colour Channel used for converting a colour image to a grayscale image.
-
-The value range of the above arguments is [-1, 1000]. The default value is -1, which means the weight value will be set automatically by the SDK. You can use the intermediate result IRT_COLOUR_CONVERTED_GRAYSCALE_IMAGE to obtain the grayscaled image.
-
-In the following JSON template, we configured 4
-[`ColourConversionModes`]({{ site.parameters_reference }}colour-conversion-modes.html#colourconversionmodes) to convert colour images to grayscale images. The DBR algorithm will cycle these 4 modes in turn until the number of barcode areas >= ExpectedBarcodesCount.
-
-```json
-{
- "ImageParameter": {
- "ColourConversionModes": [
- // Use the default mode for grayscale process
- {
- "Mode": "CICM_GENERAL"
- },
- // Use the Blue channel only for grayscale process
- {
- "Mode": "CICM_GENERAL",
- "BlueChannelWeight": 1000,
- "RedChannelWeight": 0,
- "GreenChannelWeight": 0
- },
- // Use the Red channel only for grayscale process
- {
- "Mode": "CICM_GENERAL",
- "BlueChannelWeight": 0,
- "RedChannelWeight": 1000,
- "GreenChannelWeight": 0
- },
- // Use the Green channel only for grayscale process
- {
- "Mode": "CICM_GENERAL",
- "BlueChannelWeight": 0,
- "RedChannelWeight": 0,
- "GreenChannelWeight": 1000
- }
- ]
- },
- "Version": "3.0"
-}
-```
-
-The following is an original image. We will use the above settings in the template to do the grayscale process, and then observe the grayscaled image through intermediate result IRT_COLOUR_CONVERTED_GRAYSCALE_IMAGE.
-
-![original image before colour conversion][1]
-
-The followings show the grayscaled images respectively using the default mode, the red channel only, the blue channel only, and the green channel only. We can see that using the red channel only produces the best grayscaled image. So for this kind of scenario, it is recommended to use the Red channel only for grayscale process.
-
-![default grayscale image][2]![gray image only by red channel][3]
-
-![gray image only by blue channel][4]![gray image only by green channel][5]
-
-## Grayscale colour inversion transformation
-
-[`GrayscaleTransformationModes`]({{ site.parameters_reference }}grayscale-transformation-modes.html#grayscaletransformationmodes) is used to set colour inversion transformation of the grayscale image.
-
-Generally, the barcode is dark on a light background. But in some situations, the barcodes are inverted - light barcodes on a dark background, as shown below. In this case, you need to set GrayscaleTransformationMode to GTM_INVERTED in order to read the barcode.
-
-![inverted gray image][6]
-
-If there are different barcode colours and backgrounds in the image(s), you can set multiple modes in the [`GrayscaleTransformationModes`]({{ site.parameters_reference }}grayscale-transformation-modes.html#grayscaletransformationmodes). If the parameter is configured as
-`["GTM_ORIGINAL", "GTM_INVERTED"]`, DBR will try two modes in turn to read both normal barcodes and inverted barcodes.
-
-But if most of the barcodes are inverted in the images, then it would be better to set `["GTM_INVERTED", "GTM_ORIGINAL"]` in the [`GrayscaleTransformationModes`]({{ site.parameters_reference }}grayscale-transformation-modes.html#grayscaletransformationmodes).
-
-## Example
-
-The following code snippets respectively demonstrate how to set [`ScaleDownThreshold`]({{ site.parameters_reference }}scale-down-threshold.html), [`ColourConversionModes`]({{ site.parameters_reference }}colour-conversion-modes.html#colourconversionmodes) and [`GrayscaleTransformationModes`]({{ site.parameters_reference }}grayscale-transformation-modes.html#grayscaletransformationmodes) via RuntimeSettings and via JSON template.
-
-```cpp
-CBarcodeReader* reader = new CBarcodeReader();
-reader->InitLicense("Insert your license here");
-PublicRuntimeSettings* runtimeSettings = new PublicRuntimeSettings();
-reader->GetRuntimeSettings(runtimeSettings); // Get the current runtime settings
-runtimeSettings->furtherModes.colourConversionModes[0] = CICM_GENERAL; // Use CICM_GENERAL mode first to convert the colour image to grayscale
-runtimeSettings->furtherModes.grayscaleTransformationModes[0]= GTM_INVERTED;// Set grayscale transformation mode to GTM_INVERTED
-runtimeSettings->scaleDownThreshold = 2000 // When the shorter side length of the image is greater than 2000, the picture will be shrunken
-char sError[512];
-reader->UpdateRuntimeSettings(runtimeSettings, sError, 512); // Update the runtime settings
-reader->DecodeFile("Insert the file path here", "");
-TextResultArray* paryResult = NULL;
-reader->GetAllTextResults(&paryResult);
-CBarcodeReader::FreeTextResults(&paryResult);
-delete runtimeSettings;
-delete reader;
-```
-
-```json
-{
- "ImageParameter": {
- "BarcodeFormatIds": ["BF_ALL"],
- "DeblurLevel": 9,
- "ColourConversionModes": [
- {
- "Mode": "CICM_GENERAL",
- "BlueChannelWeight": 300,
- "RedChannelWeight": 300,
- "GreenChannelWeight": 400
- }
- ],
- "GrayscaleTransformationModes": [
- {
- "Mode": "GTM_INVERTED"
- }
- ],
- "ScaleDownThreshold ": 2000
-
- },
- "Version": "3.0"
-}
-```
-
-
-
-[1]: assets/image-scale-and-colour-conversion/colour-conversion-original-image.png
-
-[2]: assets/image-scale-and-colour-conversion/default-gray-img.png
-
-[3]: assets/image-scale-and-colour-conversion/gray-img-only-red.png
-
-[4]: assets/image-scale-and-colour-conversion/gray-img-only-blue.png
-
-[5]: assets/image-scale-and-colour-conversion/gray-img-only-green.png
-
-[6]: assets/image-scale-and-colour-conversion/inverted-gray-img.png
-
-
-
-
diff --git a/parameters/scenario-settings/intermediate-result-v7.6.0.md b/parameters/scenario-settings/intermediate-result-v7.6.0.md
deleted file mode 100644
index 520c09cb..00000000
--- a/parameters/scenario-settings/intermediate-result-v7.6.0.md
+++ /dev/null
@@ -1,517 +0,0 @@
----
-layout: default-layout
-description: In this article, we will introduce how to obtain and use intermediate results
-title: How to obtain and use intermediate results
-keywords: IntermediateResult
-needAutoGenerateSidebar: false
-permalink: /parameters/scenario-settings/intermediate-result-v7.6.0.html
----
-# How to obtain and use intermediate results
-
-In the process of image processing, DBR has a variety of types of intermediate result. This article will describe in detail the types of these intermediate results and how to obtain and use them.
-
-## Saving options
-
-You can call [`IntermediateResultSavingMode`]({{ site.parameters_reference }}intermediate-result-saving-mode.html#intermediateresultsavingmode)to save intermediate results in memory or in the file system. Its enumerations are the following:
-
-| Enumerator | Value | Note |
-|-----------------|--------|-------------------- |
-| IRSM_MEMORY | 0x01 | Saves intermediate results in memory |
-| IRSM_FILESYSTEM | 0x02 | Saves intermediate results in file system. |
-| IRSM_BOTH | 0x04 | Saves intermediate results in both memory and file system. |
-
-The following code snippet illustrate how to save intermediate results in memory, and obtain from memory:
-
-``` cpp
- int ret = 0;
- char sError[512];
- CBarcodeReader* reader = new CBarcodeReader();
- reader->InitLicense("Input your Lisence");
- PublicRuntimeSettings* runtimeSettings = new PublicRuntimeSettings();
- reader->GetRuntimeSettings(runtimeSettings); //Get current runtime settings
- runtimeSettings->intermediateResultSavingMode = IRSM_MEMORY;//Save intermediate results in memory
- runtimeSettings->intermediateResultTypes = IRT_BINARIZED_IMAGE; //Set intermediate result type to binarized image
- reader->UpdateRuntimeSettings(runtimeSettings);
- ret = reader->DecodeFile("Input image path", ""); //Decoding
- TextResultArray* result = NULL;
- reader->GetAllTextResults(&result);
- int icount = result->resultsCount;
- IntermediateResultArray *iResults = NULL;
- reader->GetIntermediateResults(&iResults);//Get intermediate results
- int rCount = iResults->resultsCount;
- for (int i = 0; i < rCount; i++) //Recursion the intermediate results
- {
- if(iResults->results[i]->dataType == IMRDT_IMAGE)
- {
- int type = 0;
- ImageData* oImg = (ImageData*)iResults->results[i]->results[0];
- switch(oImg->format)
- {
- case IPF_BINARY:
- case IPF_GRAYSCALED:
- case IPF_BINARYINVERTED:
- type = CV_8UC1;
- break;
- case IPF_RGB_888:
- type = CV_8UC3;
- break;
- default:
- break;
- }
-
- if (oImg->format == IPF_BINARY|| oImg->format == IPF_BINARYINVERTED)
- {
- int count = 0;
- int pos = 0;
- int whiteValue = oImg->format == IPF_BINARY?1:0;
-
- unsigned char* binData = new unsigned char[oImg->bytesLength<<3];
- while (pos < oImg->bytesLength)
- {
- for (int bit = 7; bit >= 0; --bit)
- {
- binData[count] = ((oImg->bytes[pos] >> bit) & 0x01) == whiteValue ? 255 : 0;
- count++;
- }
- pos++;
- }
-
- Mat img(oImg->height, oImg->width, type, binData, oImg->stride<<3);
- imshow("Img", img);
- waitKey(0);
- delete[] binData;
- }
- else
- {
- Mat img(oImg->height, oImg->width, type, oImg->bytes, oImg->stride);
- imshow("Img", img);
- waitKey(0);
- }
- }
- else if(iResults->results[i]->dataType == IMRDT_LINESEGMENT)
- {
- for (int j = 0; j < iResults->results[i]->resultsCount;j++)
- {
- LineSegment* lines = (LineSegment*)iResults->results[i]->results[j];
- printf("startpoint (%d,%d)\n", lines->startPoint.x, lines->startPoint.y);
- printf("endpoint (%d,%d)\n", lines->endPoint.x, lines->endPoint.y);
- printf("confidenceCoefficient:%p\n", lines->linesConfidenceCoefficients);
- }
- }
- else if (iResults->results[i]->dataType == IMRDT_CONTOUR)
- {
- for (int j = 0; j < iResults->results[i]->resultsCount; j++)
- {
- Contour* contours = (Contour*)iResults->results[i]->results[j];
- for (int pointId = 0; pointId < contours->pointsCount; pointId++)
- {
- printf("contourPoint (%d,%d)\n", contours->points[pointId].x, contours->points[pointId].y);
- }
- }
- }
- else if (iResults->results[i]->dataType == IMRDT_LOCALIZATIONRESULT)
- {
- LocalizationResult* localization = (LocalizationResult*)iResults->results[i]->results[0];
- printf("confidence:%d\n", localization->confidence);
- }
- else if (iResults->results[i]->dataType == IMRDT_REGIONOFINTEREST)
- {
- RegionOfInterest* region = (RegionOfInterest*)iResults->results[i]->results[0];
- printf("roiId :%d\n", region->roiId);
- printf("top-left point(%d,%d)\n", region->point.x, region->point.y);
- printf("height:%d\n", region->height);
- printf("weight:%d\n", region->width);
- }
- else
- {
- Quadrilateral* quadrilateral = (Quadrilateral*)iResults->results[i]->results[0];
- for (int pointId = 0; pointId < 4; pointId++)
- {
- printf("Point(%d,%d)\n", quadrilateral->points[pointId].x, quadrilateral->points[pointId].y);
- }
- }
- }
-
- CBarcodeReader::FreeTextResults(&result);
- CBarcodeReader::FreeIntermediateResults(&iResults);
- delete runtimeSettings;
- delete reader;
-}
-```
-
-When using IRSM_FILESYSTEMto save the intermediate results, the user should also specify the FolderPath. If there is no FolderPath specified, the intermediate results will be saved in the same directory as DBR library.
-
-The following illustrates how to set the IRSM_FILESYSTEM to save the intermediate results in JSON:
-
-```json
-{
- "ImageParameter": {
- "Name": "ImageParameter1",
- "BarcodeFormatIds": [
- "BF_ALL"
- ],
- "IntermediateResultTypes":["IRT_TRANSFORMED_GRAYSCALE_IMAGE"],
- "IntermediateResultSavingMode":
- {
- "Mode":"IRSM_FILESYSTEM",
- "FolderPath":"C:\\WorkingFolder\\intermediateResult"
-
- }
- },
- "Version": "3.0"
-}
-```
-
-## Type of intermediate results
-
-There are a variety of intermediate result types. You could get the desired intermediate result by specifying the [`IntermediateResultTypes`]({{ site.parameters_reference }}intermediate-result-types.html)parameter, which has the following available enumerations:
-
-|Enumeration |Value |
-|------------------- |----------|
-|IRT_NO_RESULT |0x00000000|
-|IRT_ORIGINAL_IMAGE |0x00000001|
-|IRT_COLOUR_CONVERTED_GRAYSCALE_IMAGE|0x00000002|
-|IRT_TRANSFORMED_GRAYSCALE_IMAGE|0x00000008|
-|IRT_PREDETECTED_REGION|0x00000010|
-|IRT_PREDETECTED_QUADRILATERAL|0x00002000|
-|IRT_PREPROCESSED_IMAGE|0x00000020|
-|IRT_BINARIZED_IMAGE |0x00000040|
-|IRT_CONTOUR |0x00000100|
-|IRT_LINE_SEGMENT |0x00000200|
-|IRT_TEXT_ZONE |0x00000080|
-|IRT_TYPED_BARCODE_ZONE|0x00001000|
-
-Default value is IRT_NO_RESULT. You can specify one or multiple intermediate result types. Next, we will dive into each of the intermediate result types.
-
-### IRT_ORIGINAL_IMAGE
-
-The original image applies for the user who want to have a copy of the original captured image. The typical scenario would be users who use DecodeBuffer or video streaming to read the barcode. If there is a need to check the original image or frame that was used to recognize the barcode, we could set the IntermediateResultTypes to IRT_ORIGINAL_IMAGE to save the original image.
-
-### IRT_COLOUR_CONVERTED_GRAYSCALE_IMAGE
-
-Users who use [`ColourConversionModes`]({{ site.parameters_reference }}colour-conversion-modes.html#colourconversionmodes)to adjust a colour image to a grayscale image could set IntermediateResultTypes to IRT_COLOUR_CONVERTED_GRAYSCALE_IMAGE to observe the result. Following are the original image and grayscale image obtain from intermediate result.
-
-![original colour image][8]
-![grayscale image][9]
-
-### IRT_TRANSFORMED_GRAYSCALE_IMAGE
-
-Users who use [`GrayscaleTransformationModes`]({{ site.parameters_reference }}grayscale-transformation-modes.html#grayscaletransformationmodes)to do the colour conversion on a grayscale image could set IntermediateResultTypes to IRT_TRANSFORMED_GRAYSCALE_IMAGE to observe the result. Following are the original image and transformed grayscale image obtained from intermediate result.
-
-![original-inverted][16]
-![inverted image][17]
-
-JSON template
-
-```json
-{
- "ImageParameter": {
- "Name": "ImageParameter1",
- "GrayscaleTransformationModes":
- [
- {
- "Mode":"GTM_INVERTED"
- }
- ],
- "IntermediateResultTypes":["IRT_TRANSFORMED_GRAYSCALE_IMAGE"],
- "IntermediateResultSavingMode":
- {
- "Mode":"IRSM_BOTH",
- "FolderPath":"C:\\Users\\Desktop\\intermediaterResult"
- }
- },
- "Version": "3.0"
-}
-```
-
-### IRT_PREDETECTED_QUADRILATERAL
-
-The intermediate result of [`RegionPredetectionModes`]({{ site.parameters_reference }}region-predetection-modes.html#regionpredetectionmodes). Here is a sample image:
-
-![original image before region detected][13]
-
-We could set the RegionPredetectionModes to RPM_GENERAL_HSV_CONTRAST to detect yellow region and observe the results by setting IntermediateResultTypes to IRT_PREDETECTED_QUADRILATERAL. The area is now highlighted with red:
-
-![quadrilateral region][14]
-
-JSON template:
-
-```json
-{
- "resultType" : 8192,
- "results" : [
- {
- "points" : "(0, 2),(659, 16),(659, 215),(0, 215)" //Coordinates detected
- }
- ],
- "resultsCount" : 1,
-}
-```
-
-### IRT_PREDETECTED_REGION
-
-Predetected region of interest. When using [`RegionPredetectionModes`]({{ site.parameters_reference }}region-predetection-modes.html#regionpredetectionmodes)and the `RegionDefinition`, we could set IntermediateResultTypes to IRT_PREDETECTED_REGION to observe the region of interest. For example, we could use RPM_GENERAL_HSV_CONTRAST to detect yellow region, and set the corresponding position to the yellow region, eventually, get the ROI with green rectangle.
-
-![predetected region sample][15]
-
-JSON template
-
-```json
-{
- "resultType" : 16,
- "results" : [
- {
- "height" : 86, //Height
- "point" : "(230, 278)", //ROI of the left top point
- "roiId" : 0, //Index
- "width" : 349 //Width
- }
- ],
- "resultsCount" : 1
-}
-```
-
-JSON template
-
-```json
-{
- "ImageParameter": {
- "Name": "ImageParameter1",
- "RegionPredetectionModes":
- [
- {
- "Mode":"RPM_GENERAL_HSV_CONTRAST",
- "ForeAndBackgroundColours":"[-1,54,10]",
- "RelativeBarcodeRegions":"[35,130,88,170,-1]",
- "MinImageDimension":16384
- }
- ],
- "IntermediateResultTypes":["IRT_PREDETECTED_REGION"],
- "IntermediateResultSavingMode":
- {
- "Mode":"IRSM_BOTH",
- "FolderPath":"C:\\Users\\Desktop\\intermediaterResult"
- }
- },
- "Version": "3.0"
-}
-```
-
-### IRT_PREPROCESSED_IMAGE
-
-This intermediate result type is used to observe the effect of adjusting image preprocessing using the [`ImagePreprocessingModes`]({{ site.parameters_reference }}image-preprocessing-modes.html#imagepreprocessingmodes)parameter. The following example shows both the original image and the pre-processed image after gray equalization.
-
-![original-equalize][11]![equalized image][12]
-
-JSON template
-
-```json
-{
- "ImageParameter": {
- "Name": "ImageParameter1",
- "ImagePreprocessingModes":
- [
- {
- "Mode":"IPM_GRAY_EQUALIZE",
- "Sensitivity":9
- }
- ],
- "IntermediateResultTypes":["IRT_PREPROCESSED_IMAGE"],
- "IntermediateResultSavingMode":
- {
- "Mode":"IRSM_FILESYSTEM",
- "FolderPath":"C:\\Users\\Desktop\\intermediaterResult"
- }
- },
- "Version": "3.0"
-}
-```
-
-### IRT_BINARIZED_IMAGE
-
-This intermediate result is used to observe the effect of adjusting a binarized image using BinarizationMode.
-
-### IRT_TEXT_ZONE
-
-This intermediate result type is mainly used with barcode images that contain a lot of text. To get IRT_TEXT_ZONE intermediate result, you need to configure the [`TextFilterModes`]({{ site.parameters_reference }}text-filter-modes.html#textfiltermodes)in JSON template. The data for the text area is given in JSON as coordinates. The following sample image illustrates the effect of drawing the intermediate result (in red) onto the original image.
-
-![text zone demo][2]
-
-JSON template
-
-```json
-{
- "resultType" : 128,
- "results" : [
- [ "(433, 465)", "(444, 465)", "(444, 473)", "(433, 473)" ], //Coordinates
- [ "(390, 470)", "(393, 465)", "(405, 469)", "(401, 473)" ],
- [ "(379, 465)", "(390, 465)", "(390, 473)", "(379, 473)" ],
- [ "(371, 470)", "(374, 465)", "(378, 467)", "(376, 473)" ],
- ......
- ......
- [ "(83, 314)", "(100, 317)", "(96, 328)", "(83, 325)" ]
- ],
- "resultsCount" : 273
-}
-```
-
-### IRT_LINE_SEGMENT
-
-When using LM_LINES to localize the barcode, the line data in the image will be extracted. By setting IntermediateResultTypes to IRT_LINE_SEGMENT, we can observe the result of this extraction,.as is shown below when the intermediate result is overlaid on the barcode image:
-
-![original image][4]
-
-We plot the intermediate result of the line segment as follows
-
-![image lines sample][5]
-
-IRT_LINE_SEGMENT in JSON
-
-```json
-{
- "resultType" : 512,
- "results" : [
- "(193, 123)(193, 109)", //Two endpoint coordinates of a line segment
- "(192, 113)(192, 123)",
- ......
- ......
- "(108, 104)(113, 104)"
- ],
- "resultsCount" : 152
-}
-```
-
-JSON template
-
-```json
-{
- "ImageParameter": {
- "Name": "ImageParameter1",
- "LocalizationModes": [
- {
- "Mode": "LM_LINES"
- }
- ],
- "IntermediateResultTypes":["IRT_LINE_SEGMENT"],
- "IntermediateResultSavingMode":
- {
- "Mode":"IRSM_FILESYSTEM",
- "FolderPath":"C:\\Users\\Desktop\\intermediaterResult"
- }
- },
- "Version": "3.0"
-}
-```
-
-### IRT_CONTOUR
-
-When using the LM_CONNECTED_BLOCKS and LM_LINES localization modes, the connected block will be extracted from the image. By setting IntermediateResultTypes to IRT_CONTOUR, you can obtain this connected block.. Here is a demonstration of the connected block on top of the barcode image:
-
-![original contours image][6]
-
-We draw the connected block to the image. Effect is as follows:
-
-![contours image][7]
-
-IRT_CONTOUR in JSON
-
-```json
-{
- "resultType" : 256,
- "results" : [
- [
- "(321, 159)", //Contour point coordinates
- "(320, 160)",
- ......
- "(34, 26)"
- ]
- ],
- "resultsCount" : 50
-}
-```
-
-JSON template
-
-```json
-{
- "ImageParameter": {
- "Name": "ImageParameter1",
- "LocalizationModes": [
- {
- "Mode": "LM_CONNECTED_BLOCKS"
- }
- ],
- "IntermediateResultTypes":["IRT_CONTOUR"],
- "IntermediateResultSavingMode":
- {
- "Mode":"IRSM_FILESYSTEM",
- "FolderPath":"C:\\Users\\Desktop\\intermediaterResult"
- }
- },
- "Version": "3.0"
-}
-```
-
-### IRT_TYPED_BARCODE_ZONE
-
-Once the TerminatePhase is done with the TP_BARCODE_TYPE_DETERMINED phase, we could get this intermediate result type.
-
-The barcode localization result is formatted as follows in the JSON file
-
-```javascript
-{
- "resultType" : 4096,
- "results" : [
- {
- "angle" : 180, //Barcode angle
- "barcodeFormat" : 2047, //Barcode format
- "confidence" : 100, //Barcode confidence
- "moduleSize" : 3, //Module size
- "pageNumber" : 0, //Page number
- "terminatePhase" : 8, //Terminate Phase
- "x1y1x2y2x3y3x4y4" : "(548, 207)(175, 207)(175, 82)(548, 82)" //Coordinates of located barcode
- }
- ],
- "resultsCount" : 1
-}
-```
-
-The following figure shows the result of the barcode localization
-
-![barcode zone sample][3]
-
-
-
-[1]:assets\intermediate-result\original-image-for-text.png
-
-[2]:assets\intermediate-result\text-zone.png
-
-[3]:assets\intermediate-result\barcode-zone.png
-
-[4]:assets\intermediate-result\original-Lines.png
-
-[5]:assets\intermediate-result\Lines.png
-
-[6]:assets\intermediate-result\original-contours.png
-
-[7]:assets\intermediate-result\contours.png
-
-[8]:assets\intermediate-result\original-colour.png
-
-[9]:assets\intermediate-result\grayscale.png
-
-[10]:assets\intermediate-result\binarized.png
-
-[11]:assets\intermediate-result\original-equalize.png
-
-[12]:assets\intermediate-result\equalize.png
-
-[13]:assets\intermediate-result\original-region.png
-
-[14]:assets\intermediate-result\quadrilateral.png
-
-[15]:assets\intermediate-result\region.png
-
-[16]:assets\intermediate-result\original-inverted.png
-
-[17]:assets\intermediate-result\inverted.png
diff --git a/parameters/scenario-settings/manually-define-region-of-interest-v7.6.0.md b/parameters/scenario-settings/manually-define-region-of-interest-v7.6.0.md
deleted file mode 100644
index e4d8242a..00000000
--- a/parameters/scenario-settings/manually-define-region-of-interest-v7.6.0.md
+++ /dev/null
@@ -1,77 +0,0 @@
----
-layout: default-layout
-description: This article introduces DBR's ROI (Region Of Interest), applicable scenarios, manual definition methods and configurable parameters.
-title: Manually Define Region Of Interest and its configurations
-keywords: ROI Region-Of-Interest RegionDefinition
-needAutoGenerateSidebar: false
-permalink: /parameters/scenario-settings/manually-define-region-of-interest-v7.6.0.html
----
-
-# Manually Define Region Of Interest
-By default, DBR will locate the code region and decode in the entire image, but if the user is concerned about some specific regions rather than the entire image, you can define a Region Of Interest, referred to as ROI, by the parameter RegionDefinition. After defining a specific region, DBR will only decode barcodes within that region. Of course, this is very conducive to increasing the speed. This article will introduce the definition of ROI and its configurable parameters [`ExpectedBarcodesCount`]({{ site.parameters_reference }}region-definition/index.html#cost-control), [`BarcodeFormatIds`]({{ site.parameters_reference }}region-definition/index.html#format-control),[`BarcodeFormatIds_2`]({{ site.parameters_reference }}region-definition/index.html#format-control), [`FormatSpecificationNameArray`]({{ site.parameters_reference }}region-definition/index.html#formatspecificationnamearray).
-## Definition of ROI RegionDefinition
-If the user is only concerned about certain regions of the image, then in JSON, you can define one or more areas through the `RegionDefinition` object. You need to specify the four-corner coordinates of the area [`Top`]({{ site.parameters_reference }}region-definition/index.html#image-process-control), [`Left`]({{ site.parameters_reference }}region-definition/index.html#image-process-control), [`Right`]({{ site.parameters_reference }}region-definition/index.html#image-process-control), [`Bottom`]({{ site.parameters_reference }}region-definition/index.html#image-process-control) and `Name`of different ROIs. The parameter [`MeasuredByPercentage`]({{ site.parameters_reference }}region-definition/index.html#image-process-control) can be used to set whether the four-corner coordinate unit of the ROI is pixels or a percentage, which is defined the original image width and height as 100%.
-
-To use the defined RegionDefinition, please specify the ROI Name through `RegionDefinitionNameArray`.
-## Expected count of barcodes in ROI - ExpectedBarcodesCount
-In `RegionDefinition`, [`ExpectedBarcodesCount`]({{ site.parameters_reference }}region-definition/index.html#cost-control) can be used to specify the number of expected barcodes in the region. The clear expectation of the number of barcodes helps DBR to determine whether it has met the requirements and exit in time.
-## Barcode Format in ROI - BarcodeFormatIds, BarcodeFormatIds_2
-These two parameters set the code type to be processed in the ROI. Specific configuration barcode format can be used to improve the processing speed of DBR, otherwise DBR may waste time on irrelevant barcode format.
-## Specific barcode format configuration used by ROI - FormatSpecificationNameArray
-This parameter sets names corresponding to `FormatSpecifications` used by the current ROI. After setting, the ROI will use the corresponding FormatSpecifications configuration. The default value is empty, using the global FormatSpecifications configuration. If you want to configure some specific barcode format in ROI, you should use this parameter. For a detailed description of `FormatSpecifications`, please refer to our documentation [Specific barcode format configuration][1].
-## Examples
-The following shows how to use RuntimeSetting and JSON template to demonstrate the usage of `RegionDefinition` parameter.
-- RuntimeSetting
-```c++
-CBarcodeReader* reader = new CBarcodeReader();
-reader->InitLicense("Insert license");
-PublicRuntimeSettings* runtimeSettings = new PublicRuntimeSettings();
-reader->GetRuntimeSettings(runtimeSettings); //get current RuntimeSettings
-runtimeSettings->region.regionTop = 10;
-runtimeSettings->region.regionBottom = 50;
-runtimeSettings->region.regionLeft = 20;
-runtimeSettings->region.regionRight = 30;
-runtimeSettings->regionMeasurdByPercentage = 1; //define Region range in Percentage
-char sError[512];
-reader->UpdateRuntimeSettings(runtimeSettings, sError, 512); //update RuntimeSettings
-reader->DecodeFile("File Path", ""); //decoding
-TextResultArray* paryResult = NULL;
-reader->GetAllTextResults(&paryResult); //get decoded results
-CBarcodeReader::FreeTextResults(&paryResult);
-delete runtimeSettings;
-delete reader;
-```
-- JSON Template
-```json
-{
- "ImageParameter": {
- "BarcodeFormatIds": ["BF_ALL"],
- "RegionDefinitionNameArray": ["RP_1", "RP_2"]
- },
- "RegionDefinitionArray": [
- {
- "Name": "RP_1",
- "BarcodeFormatIds": ["BF_CODE_39"],
- "Top": 20,
- "Bottom": 80,
- "Left": 20,
- "Right": 80,
- "ExpectedBarcodesCount": 10,
- "MeasuredByPercentage": 0
- },
- {
- "Name": "RP_2",
- "BarcodeFormatIds": ["BF_CODE_93"],
- "BarcodeFormatIds_2": ["BF_DOTCODE"],
- "Top": 30,
- "Bottom": 70,
- "Left": 30,
- "Right": 80,
- "MeasuredByPercentage": 1
- }
- ],
- "Version": "3.0"
-}
-```
-
-[1]:format-specification.html
diff --git a/parameters/scenario-settings/multipage-imgs-and-pdf-v7.6.0.md b/parameters/scenario-settings/multipage-imgs-and-pdf-v7.6.0.md
deleted file mode 100644
index 815c4f7c..00000000
--- a/parameters/scenario-settings/multipage-imgs-and-pdf-v7.6.0.md
+++ /dev/null
@@ -1,87 +0,0 @@
----
-layout: default-layout
-title: How to process multi-page TIF & PDF
-description: This article describes how DBR processes multi-page images, such as TIF and PDF.
-keywords: tif pdf multipage
-needAutoGenerateSidebar: false
-permalink: /parameters/scenario-settings/multipage-imgs-and-pdf-v7.6.0.html
----
-
-# How to process multi-page TIF & PDF
-
-For multi-page TIF and PDF files, DBR provides the parameter [`Pages`]({{ site.parameters_reference }}pages.html) to process them, [`PDFReadingMode`]({{ site.parameters_reference }}pdf-reading-mode.html) and [`PDFRasterDPI`]({{ site.parameters_reference }}pdf-raster-dpi.html) are used to handle PDF file specifically.
-
-## Specify the page number to be processed
-
-When DBR is processing multi-page files (TIF or PDF), you can use the parameter [`Pages`]({{ site.parameters_reference }}pages.html) to specify the specific page or range of pages to be processed. This parameter can be used to specify one or more page index values, starting from 0. The default value is "", which means all pages.
-
-[`Pages`]({{ site.parameters_reference }}pages.html)can be set by one or more of the following data, separated by commas:
-- An integer index values, representing a specific page;
-- Two integer index values, connected by "-" in the middle, representing a certain range of page numbers.
-
-[`Pages`]({{ site.parameters_reference }}pages.html) can only be configured in Json, for example, `{"Pages": "0,3,5,7-10"}`.
-
-In the returned decoding result, you can get the information of the corresponding barcode on the page of the file. Please refer to the following procedure:
-
-```c++
-BarcodeReader* reader = new CBarcodeReader();
-reader->InitLicense("Insert license");
-char sError[512];
-reader->DecodeFile("File path", ""); //decoding
-TextResultArray* pResult = NULL;
-reader->GetAllTextResults(&pResult); //get the decoded results
-int iCount = pResult->resultsCount;
-for(int j = 0; j < iCount; j++) //Loop through all returned results
-{
- TextResult* pBarcode = pResults->results[j];
- LocalizationResult* pLocRes = pBarcode->localizationResult;
- printf("pageNumber:%d\n", pLocRes->PageNumber); //get the page number in which the barcode is located
-}
-CBarcodeReader::FreeTextResults(&pResult);
-delete reader;
-```
-
-## Select PDFReadingMode
-
-The parameter [`PDFReadingMode`]({{ site.parameters_reference }}pdf-reading-mode.html) is used to set how to process PDF files. DBR provides two ways to read PDF data, PDFRM_RASTER and PDFRM_VECTOR.
-
-- PDFRM_RASTER
-This method will render each page of the PDF as an image, which will be processed later. This reading mode can be used for all PDF files, but the drawback is that you need to choose the appropriate value of PDFRasterDPI to render the image. Otherwise, if the image is too large, the processing speed of DBR may be slowed, and if the image is too small, the barcode region may be distorted and cannot be decoded.
-
-- PDFRM_VECTOR
-This method is specifically designed for PDF composed of vector data. This mode will not render PDF data into images, but directly extract PDF vector data for barcode region positioning and decoding. Its advantages are fast speed and high accuracy, but it is only suitable for PDF composed of vector data.
-
-At the same time, we also provide PDFRM_AUTO mode, this mode will automatically choose the appropriate processing mode according to whether the PDF file has enough available vector data.
-
-## Select the appropriate PDFRasterDPI
-
-When using PDFRM_RASTER, we need to select an appropriate [`PDFRasterDPI`]({{ site.parameters_reference }}pdf-raster-dpi.html) to ensure that the rendered image has the right size. The higher the PDFRasterDPI, the higher the final resolution of the rendered image. The high-resolution image can ensure the image details are not distorted, which is helpful for DBR to correctly identify the barcode region but will make the processing speed slow at the same time. This section will introduce the calculation method from PDFRasterDPI to the size of the rendered image. You can observe the rendered image based on the calculation method and the intermediate result IRT_ORIGINAL_IMAGE to decide how to adjust PDFRasterDPI.
-
-The resolution of the rendered image is calculated as follows:
-Set PDF page height to h and page width to w,
-Final rendered image height ImgHeight = h / 72 * PDFRasterDPI
-Final rendered image width ImgWidth = w / 72 * PDFRasterDPI
-
-PDFRasterDPI is the number of pixels per inch of the image.
-The page width and height unit defined in PDF is pt (length unit, 1 inch = 72 pt), so in the above formula we first divide the width and height by 72 to get the inch length of the page, and then multiply by PDFRasterDPI to get the final image pixel width and height.
-
-## Json Template
-
-In the following template, we configured PDFReadingMode to PDFRM_AUTO, PDFRasterDPI to 500, and Pages specified three Pages in index 1, 2, and 3.
-
-```json
-{
- "ImageParameter": {
- "BarcodeFormatIds": ["BF_ALL"],
- "PDFRasterDPI": 500,
- "PDFReadingMode": {
- "Mode": "PDFRM_AUTO "
- },
- "Pages": "1,2,3"
- },
- "Version": "3.0"
-}
-```
-
-
-
diff --git a/parameters/scenario-settings/read-from-diff-source-v7.6.0.md b/parameters/scenario-settings/read-from-diff-source-v7.6.0.md
deleted file mode 100644
index 9aaba284..00000000
--- a/parameters/scenario-settings/read-from-diff-source-v7.6.0.md
+++ /dev/null
@@ -1,243 +0,0 @@
----
-layout: default-layout
-title: How to read images from different sources
-description: This article introduces how to read images from different sources, including read from file, read from memory and read from video stream
-keywords: file memory video stream
-needAutoGenerateSidebar: false
-permalink: /parameters/scenario-settings/read-from-diff-source-v7.6.0.html
----
-
-# How to read images from different sources
-The DBR algorithm provides multiple ways to read images from different sources. This article will introduce the following methods.
-1. [Read from File](#Read from File)
-2. [Read from Memory](#Read from Memory)
-3. [Read from Video stream ](#Read from Video stream )
-
-## Read from File
-For image files, DBR provides the following two APIs.
-- [`DecodeFile`]({{ site.cpp_methods }}decode.html#decodefile)
-- [`DecodeFileInMemory`]({{ site.cpp_methods }}decode.html#decodefileinmemory)
-
-Sample codes:
-``` c++
-//DecodeFile
-CBarcodeReader* reader = new CBarcodeReader();
-reader->InitLicense("enter your license");
-int errorCode = reader->DecodeFile("image path", "");
-delete reader;
-```
-```c++
-//DecodeFileInMemory
-CBarcodeReader* reader = new CBarcodeReader();
-reader->InitLicense("enter your license");
-unsigned char* pFileBytes;
-int nFileSize = 0;
-GetFileStream("image path", &pFileBytes, &nFileSize); //read file to memory
-int errorCode = reader->DecodeFileInMemory(pFileBytes, nFileSize, "");
-delete reader;
-```
-## Read from Memory
-For the image data in the memory, DBR provides the following API.
-- [`DecodeBuffer`]({{ site.cpp_methods }}decode.html#decodebuffer)
- Decodes barcodes from the memory buffer containing image pixels in defined format. This API is generally used in video stream decoding. After obtaining a frame of image data, you can invoke this API to decode the frame. The main parameters are as follows:
- - pBufferBytes
- The array of bytes which contain the image data.
- - iWidth
- The width of the image in pixels.
- - iHeight
- The height of the image in pixels.
- - iStride
- The number of single-bytes of the image in pixels.
- - format
- The data format of a single pixel of an image, corresponds to the depth of the image. Detailed enumeration reference [`ImagePixelFormat`]({{ site.enumerations }}other-enums.html#imagepixelformat)
-
-The following uses a 152 * 152 QR code to illustrate these parameters. The image has three channels of RGB, with a 24bit image depth (each pixel occupies 24bit of memory space). So in this example, the format value is `IPF_RGB888`
-
-The number of bits of the memory size occupied by one line of the image is iwidth * depth, so In this example, the image is width is 152px, times 24 bits, resulting with 3648 bits.
-
-If we now use `int ( 32 bit / int )` type array to store the pixel data of the image, the length of the `int` array required for a row of image pixel data is (iwidth * depth + 31) / 32, the actual number of single-line bytes of the image pixel data iStride is `iStride = (iwidth * depth + 31) / 32 * 4`
-
-Then the structure of the pixel data pBufferBytes of the image is `int* pBufferBytes = new int[(width * depth + 31) / 32 * iHeight]; `
-
-After the construction of pBufferBytes is completed, read the image data and fill it in.
-
-
- ![alt dbr_qr][1]
-
-In the following example, we use opencv to read image data and call the DecodeBuffer
-
-``` cpp
-#include "DynamsoftBarcodeReader.h"
-#include
-using namespace cv;
-using namespace std;
-#ifdef _WIN64
-#pragma comment(lib, "DBRx64.lib")
-#else
-#pragma comment(lib, "DBRx86.lib")
-#endif
-
-int main()
-{
- int ret = 0;
- CBarcodeReader* reader = new CBarcodeReader();
- reader->InitLicense("your license here");
- Mat image = cv::imread("your img file path");
- if (image.type() == CV_8UC3) {
- ret = reader->DecodeBuffer(image.data, image.cols, image.rows, image.cols * 3, IPF_RGB_888);
- }
- else if (image.type() == CV_8UC1) {
- ret = reader->DecodeBuffer(image.data, image.cols, image.rows, image.cols, IPF_GRAYSCALED);
- }
- TextResultArray* pResults = NULL;
- reader->GetAllTextResults(&pResults);
- CBarcodeReader::FreeTextResults(&pResults);
- delete(reader);
- return 0;
-}
-```
-
-- [`DecodeBase64String`]({{ site.cpp_methods }}decode.html#decodebase64string)
- Decodes barcode from an image file encoded as a base64 string.
-- [`DecodeDIB`]({{ site.cpp_methods }}decode.html#decodedib)
- Decodes barcode from a handle of device-independent bitmap (DIB).
-
-## Read from Video Stream
-DBR provides several processing interfaces for video streams, which facilitates the processing of video frame queues and multi-threading.
-
-DBR creates a queue to be processed to store the video frame currently being processed, and then create a decoding thread to process the queue. The decoding thread takes the latest frame in the queue for processing each time, and then moves it out of the queue after decoding to perform the next processing. The results will be put into a result queue. If the length of the queue to be processed reaches the maximum value you set, the decoding thread will exit the current processing frame as soon as possible, and empty the queue to be processed, and then waiting for new frames to join the queue and restart processing to prevent a frame from taking too long.
-
-DBR also provides the feature to filter blurred frames. When enabled, DBR will calculate the sharpness of the image frames in the queue to be processed, and the frames whose sharpness is lower than the threshold you set will be removed. The main APIs are as follows
-
-- [`AppendFrame`]({{ site.cpp_methods }}video.html#appendframe)
- Appends a frame image buffer to the inner frame queue.
-- [`StartFrameDecoding`]({{ site.cpp_methods }}video.html#startframedecoding)
- Starts a new thread to decode barcodes from the inner frame queue.
-- [`StartFrameDecodingEx`]({{ site.cpp_methods }}video.html#startframedecodingex)
- Starts a new thread to decode barcodes from the inner frame queue.
-- [`SetTextResultCallback`]({{ site.cpp_methods }}video.html#settextresultcallback)
- Sets call back function to process text results generated during frame decoding. DBR will start a thread loop to check the result queue when processing the video stream. If new results are put into the queue, the callback function will be called
-- [`StopFrameDecoding`]({{ site.cpp_methods }}video.html#stopframedecoding)
- Stops the frame decoding thread created by StartFrameDecoding.
-- [`InitFrameDecodingParameters`]({{ site.cpp_methods }}video.html#initframedecodingparameters)
- Init [`FrameDecodingParameters`]({{ site.structs }}FrameDecodingParameters.html) object
-- [`FrameDecodingParameters`]({{ site.structs }}FrameDecodingParameters.html)
- Defines a struct to configure the frame decoding Parameters.The structure provides a series of configuration parameters for users to configure the processing method of DBR involving video streams. The main fields are as follows
- - `maxQueueLength`
- The maximum number of frames waiting for decoding
- - `maxResultQueueLength`
- The maximum number of frames waiting results (text result/localization result) will be kept for further reference.
- - `width`
- The width of the frame image in pixels.
- - `height`
- The height of the frame image in pixels.
- - `stride`
- The number of single-bytes of the image in pixels.
- - `imagePixelFormat`
- The image pixel format used in the image byte array.
- - `region`
- The region definition of the frame to calculate the internal indicator.This is a rectangular area. After setting, DBR only performs decoding within the area.
- - `autoFilter`
- Sets whether to filter frames automatically. The default is 1: Enable filtering frames automatically.
- - `threshold`
- The threshold used for filtering frames. Range 0-1, the smaller the value, the easier the image frame will be filtered out.
- - `fps`
- The frequency of calling AppendFrame() per second. DBR will refer to this value when performing fuzzy frame filtering logic. If it is not set, then DBR will estimate based on the frequency of calling [`AppendFrame`]({{ site.cpp_methods }}video.html#appendframe).
-
-The following example demonstrates these interfaces. In this example, we use opencv to read camera data and call DBR's video streaming interface to decode.
-
-```c++
-#include
-#include
-#include
-#include
-#include
-#include "Include/DynamsoftBarcodeReader.h"
-using namespace cv;
-using namespace std;
-using std::cerr;
-using std::endl;
-using std::cin;
-
-#ifdef _WIN64
-#pragma comment(lib, "Lib/DBRx64.lib")
-#else
-#pragma comment(lib, "Lib/DBRx86.lib")
-#endif
-
-//Callback function when decoding is completed
-void textResultcallback(int frameId, TextResultArray *pResults, void * pUser)
-{
- for (int iIndex = 0; iIndex < pResults->resultsCount; iIndex++)
- {
- printf("Barcode %d, Value %s\n", iIndex + 1, pResults->results[iIndex]->barcodeText);
- }
- CBarcodeReader::FreeTextResults(&pResults);
-}
-
-//Callback function when decoding error
-void errorcb(int frameId, int errorCode, void * pUser)
-{
- printf("frame = %d errorcode = %d, %s\n", frameId, errorCode, CBarcodeReader::GetErrorString(errorCode));
-}
-
-int main()
-{
- Mat frame;
- cout << "Opening camera..." << endl;
- VideoCapture capture(0); // open the first camera
- if (!capture.isOpened())
- {
- cerr << "ERROR: Can't initialize camera capture" << endl;
- return 1;
- }
-
- int iRet = -1;
- CBarcodeReader reader;
- iRet = reader.InitLicense("enter your license");
- if (iRet != 0)
- {
- printf("%s\n", CBarcodeReader::GetErrorString(iRet));
- return -1;
- }
- reader.InitRuntimeSettingsWithString("enter your template path", CM_OVERWRITE);
- reader.SetTextResultCallback(textResultcallback, NULL); // Set callback when decoding is complete
- reader.SetErrorCallback(errorcb, NULL); // Set the callback when an error occurs
- FrameDecodingParameters parameters;
- reader.InitFrameDecodingParameters(¶meters);
-
- capture >> frame;
- parameters.width = capture.get(CAP_PROP_FRAME_WIDTH);
- parameters.height = capture.get(CAP_PROP_FRAME_HEIGHT);
- parameters.maxQueueLength = 30;
- parameters.maxResultQueueLength = 30;
- parameters.stride = frame.step.p[0];
- parameters.imagePixelFormat = IPF_RGB_888;
- iRet = reader.StartFrameDecodingEx(parameters, "");
- if (iRet != 0)
- {
- printf("%s\n", CBarcodeReader::GetErrorString(iRet));
- return -1;
- }
- for(;;)
- {
- capture >> frame; // read the next frame from camera
- if (frame.empty())
- {
- cerr << "ERROR: Can't grab camera frame." << endl;
- break;
- }
- reader.AppendFrame(frame.data);
- imshow("Frame", frame);
- int key = waitKey(1);
- if (key == 27/*ESC*/)
- break;
- }
- reader.StopFrameDecoding();
- return 0;
-}
-```
-
-[1]: assets/read-from-diff-source/dbr_qr.png
-
-
diff --git a/parameters/scenario-settings/resist-deformation-v7.6.0.md b/parameters/scenario-settings/resist-deformation-v7.6.0.md
deleted file mode 100644
index 523544f5..00000000
--- a/parameters/scenario-settings/resist-deformation-v7.6.0.md
+++ /dev/null
@@ -1,70 +0,0 @@
----
-layout: default-layout
-description: This article introduces how to deal with deformed barcodes
-title: How to deal with deformed barcodes
-keywords: resist deformation
-needAutoGenerateSidebar: false
-permalink: /parameters/scenario-settings/resist-deformation-v7.6.0.html
----
-
-# How to deal with deformed barcodes
-
-The barcodes on the surface of some flexible packaging or cylindrical objects tend to be distorted and deformed. DBR may not be able to handle such cases well by default, but we can configure [`DeformationResistingModes`]({{ site.parameters_reference }}deformation-resisting-modes.html#deformationresistingmodes) to deal with these problems.
-
-The following images show two kinds of barcode images with deformation:
-
-Wrinkled distortion:
-![Deformation sample image1][1]
-![after deformation qr][3]
-
-Columnar distortion:
-
-![Deformation sample image2][2]
-![Deformation sample image2][4]
-
-Currently, [`DeformationResistingModes`]({{ site.parameters_reference }}deformation-resisting-modes.html#deformationresistingmodes) only works for QR Code and DataMatrix codes.
-
-## How to configure
-
-As mentioned above, you can configure the anti-deformation mode via the setting [`DeformationResistingModes`]({{ site.parameters_reference }}deformation-resisting-modes.html#deformationresistingmodes). DBR does not turn on anti-deformation by default. If you want to turn it on, you need to add `DRM_GENERAL` to [`DeformationResistingModes`]({{ site.parameters_reference }}deformation-resisting-modes.html#deformationresistingmodes). By the way, multiple modes can also be set at the same time. For example, if DRM_SKIP and DRM_GENERAL are configured at the same time, our algorithm will try to turn off and turn on the anti-deformation mode in turn, until the decoding result meets the requirements.
-
-## Example
-
-The following code snippet shows how to enable deformation resisting mode via RuntimeSettings and JSON template individually.
-
-- Set via RuntimeSettings:
-
-```c++
-CBarcodeReader* reader = new CBarcodeReader();
-reader->InitLicense("Insert your license");
-PublicRuntimeSettings* runtimeSettings = new PublicRuntimeSettings();
-reader->GetRuntimeSettings(runtimeSettings); //Get the current runtimesettings
-runtimeSettings->furtherModes.deformationResistingModes[0] = DRM_GENERAL; // Turn on anti-deformation
-char sError[512];
-reader->UpdateRuntimeSettings(runtimeSettings, sError, 512); // Update the runtimesettings
-reader->DecodeFile("Insert your image file path", ""); // Start decoding
-TextResultArray* paryResult = NULL;
-reader->GetAllTextResults(&paryResult); // Get results
-CBarcodeReader::FreeTextResults(&paryResult);
-delete runtimeSettings;
-delete reader;
-```
-
-- Set via JSON template:
-
-```Json
-{
- "Version":"3.0",
- "ImageParameter":
- {
- "Name":"IP1",
- "BarcodeFormatIds":["BF_ALL"],
- "DeformationResistingModes":["DRM_GENERAL"]
- }
-}
-```
-
-[1]:assets\resist-deformation\resist-deformation-sample1.jpg
-[2]:assets\resist-deformation\resist-deformation-sample2.png
-[3]:assets\resist-deformation\after-drm-qr.png
-[4]:assets\resist-deformation\after-drm-dm.png
diff --git a/parameters/scenario-settings/terminate-v7.6.0.md b/parameters/scenario-settings/terminate-v7.6.0.md
deleted file mode 100644
index cac23418..00000000
--- a/parameters/scenario-settings/terminate-v7.6.0.md
+++ /dev/null
@@ -1,85 +0,0 @@
----
-layout: default-layout
-title: How to control the Terminate Phase for DBR
-description: This article describes how to use runtime settings to make DBR terminate at a certain stage.
-keywords: terminate timeout
-needAutoGenerateSidebar: false
-permalink: /parameters/scenario-settings/terminate-v7.6.0.html
----
-
-# How to control the Terminate Phase for DBR
-
-Normally, DBR will terminate after decoding is complete. Considering requirement diversity, we provide the [`TerminatePhase`]({{ site.parameters_reference }}terminate-phase.html) parameter for user to specify a certain point to terminate the DBR instance. The [`Timeout`]({{ site.parameters_reference }}time-out.html) parameter control the time consumed duringthe decoding phase. Should the decoding phase exceed the value of [`Timeout`]({{ site.parameters_reference }}time-out.html), DBR will terminate immediately.
-
-## Timeout
-This parameter will control the timeout for DBR algorithm in milliseconds, values ranging from[0,0x7fffffff]. Default value is 10000. When DBR times out, it will terminate and return an error code related to the timeout. When dealing with multiple images, the user needs to consider a comprehensive timeout value to balance the trade-off between speed and accuracy for each image. The following code snippet illustrates how to set the [`Timeout`]({{ site.parameters_reference }}time-out.html):
-
-```c++
-char sError[512];
-TextResultArray* paryResult = NULL;
-PublicRuntimeSettings* runtimeSettings = new PublicRuntimeSettings();
-CBarcodeReader* reader = new CBarcodeReader();
-reader->InitLicense("input your license");
-reader->GetRuntimeSettings(runtimeSettings); //Configure runtimesettings
-runtimeSettings->timeout = 1000; //set timeout
-reader->UpdateRuntimeSettings(runtimeSettings, sError, 512); //Update runtimesettings
-reader->DecodeFile("input your file path", ""); //Decoding
-reader->GetAllTextResults(&paryResult); //Get results
-CBarcodeReader::FreeTextResults(&paryResult);
-delete runtimeSettings;
-delete reader;
-```
-
-## TerminatePhase
-
-This parameter can specify a certain stage to terminate the DBR algorithm. The main stages for the DBR algorithm are:
-- Region Pre-detection
-- Image Preprocessing
-- Image binarization
-- Barcode localization
-- Barcode type identification
-- Barcode decoding/recognition
-
-DBR algorithm will terminate after all of the above stages are complete. Customized termination options could be achieved by adjusting [`TerminatePhase`]({{ site.parameters_reference }}terminate-phase.html)parameter to terminate the algorithm in advance. After termination, the user could obtain effective information from [`IntermediateResult`]({{ site.structs }}IntermediateResult.html). Before demonstrating how to use the parameter, here is a quick overview of the TerminatePhase enumerations:
-
-|Enumeration name|Note|
-|---|----|
-|TP_REGION_PREDETECTED|Terminate after Region Pre-detected|
-|TP_IMAGE_PREPROCESSED|Terminate after Image Preprocessed|
-|TP_IMAGE_BINARIZED|Terminate after Image binarized|
-|TP_BARCODE_LOCALIZED|Terminate after Barcode localized|
-|TP_BARCODE_TYPE_DETERMINED|Terminate after Barcode type identified|
-|TP_BARCODE_RECOGENIZED|Terminate after Barcode recognized |
-
-Following code snippet illustrate how to set the [`TerminatePhase`]({{ site.parameters_reference }}terminate-phase.html)
-
-```c++
-char sError[512];
-TextResultArray* paryResult = NULL;
-PublicRuntimeSettings* runtimeSettings = new PublicRuntimeSettings();
-CBarcodeReader* reader = new CBarcodeReader();
-reader->InitLicense("input your license");
-reader->GetRuntimeSettings(runtimeSettings); //Configure runtimesettings
-runtimeSettings->terminatePhase = TP_BARCODE_RECOGNIZED; //Specify terminate phase
-reader->UpdateRuntimeSettings(runtimeSettings, sError, 512); //Update runtimesettings
-reader->DecodeFile("input your file path", ""); //Decoding
-reader->GetAllTextResults(&paryResult); //Get results
-CBarcodeReader::FreeTextResults(&paryResult);
-delete runtimeSettings;
-delete reader;
-
-```
-
-## Template
-You could also set the [`TerminatePhase`]({{ site.parameters_reference }}terminate-phase.html)parameter via the JSON settings template. In the below JSON template, we set TerminatePhase to TP_BARCODE_LOCALIZED, so that the algorithm terminates once the barcode(s) are localized. In this case, the value of [`Timeout`]({{ site.parameters_reference }}time-out.html)is 1000, which means if the time consumed exceeds 1000 milliseconds, the DBR algorithm will terminate.
-```json
-{
- "ImageParameter": {
- "BarcodeFormatIds": ["BF_ALL"],
- "TerminatePhase":"TP_BARCODE_LOCALIZED",
- "Timeout": 1000
- },
- "Version": "3.0"
-}
-```
-
diff --git a/parameters/scenario-settings/text-filter-v7.6.0.md b/parameters/scenario-settings/text-filter-v7.6.0.md
deleted file mode 100644
index dd32ce54..00000000
--- a/parameters/scenario-settings/text-filter-v7.6.0.md
+++ /dev/null
@@ -1,50 +0,0 @@
----
-layout: default-layout
-description: This article describes how to filter irrelevant text in the image to reduce incorrect positioning and increase speed
-title: How to filter text in an image
-keywords: text filter
-needAutoGenerateSidebar: false
-permalink: /parameters/scenario-settings/text-filter-v7.6.0.html
----
-
-# How to filter text in an image
-
-When trying to read an image where a barcode is surrounded by a large number of irrelevant characters, the presence of these words may lead to incorrect positioning, and slow down the execution speed of `DBR`. `DBR` handles such scenarios by utilizing the built-in [`TextFilterModes`]({{ site.parameters_reference }}text-filter-modes.html#textfiltermodes).
-
-Let us consider the following image
-
-![text filter sample][1]
-
-For this image, we can set [`TextFilterModes`]({{ site.parameters_reference }}text-filter-modes.html#textfiltermodes) to `TFM_GENERAL_CONTOUR` and observe through the intermediate result, `IRT_TEXT_ZONE`. For easier demonstration purposes, we have merged the result of the `IRT_TEXT_ZONE` onto the binarized result. As it shown in the following images, the algorithm has recognized almost all the characters.
-
-![text zone img][3]
-
-Next, these words are excluded, and we are left with the optimized image as shown below
-
-![binary img after text filter][4]
-
-The process of text filtering will not be performed when using the positioning methods `LM_CONNECTED_BLOCKS` and `LM_SCAN_DIRECTLY`. Therefore, if DBR only performs `LM_CONNECTED_BLOCKS` and `LM_SCAN_DIRECTLY` positioning, the intermediate result `IRT_TEXT_ZONE` will be empty data.
-
-## Sample Template
-
-```json
-{
- "Version":"3.0",
- "ImageParameterContentArray":[
- {
- "NAME":"Test1",
- "BarcodeFormatIds":["BF_ALL"],
- "LocalizationModes":["LM_LINES"],
- "TextFilterModes":[
- {
- "Mode":"TFM_GENERAL_CONTOUR"
- }
- ]
- }
- ]
-}
-```
-
-[1]:assets/textfilter/text-image-sample.jpg
-[3]:assets/textfilter/text-coutor.png
-[4]:assets/textfilter/binary-after-text-filter.png
diff --git a/parameters/scenario-settings/texture-detection-v7.6.0.md b/parameters/scenario-settings/texture-detection-v7.6.0.md
deleted file mode 100644
index 02cd5101..00000000
--- a/parameters/scenario-settings/texture-detection-v7.6.0.md
+++ /dev/null
@@ -1,55 +0,0 @@
----
-layout: default-layout
-description: This article introduces the relevant parameters of texture detection in the DBR algorithm and its applicable scenarios and adjustment methods
-title: How to deal with image textures
-keywords: texture detection
-needAutoGenerateSidebar: false
-permalink: /parameters/scenario-settings/texture-detection-v7.6.0.html
----
-
-# How to deal with image textures
-
-In some scenes, the background of the picture may appear textured, such as a pattern background, screen stripes, etc., which may have an adverse effect on `DBR`, such as mis location and increase in consumed time. To deal with such textures, `DBR` uses the parameter [`TextureDetectionModes`]({{ site.parameters_reference }}texture-detection-modes.html#texturedetectionmodes). You can configure one or more Modes in `TextureDetectionMode`. If multiple Modes are configured, `DBR` will use each Mode in turn to process the image. The enumeration of `TextureDetectionMode` is as follows:
-
-Name|Value|Notes|
----|:--:|---:|
-TDM_SKIP|0x00000000|Skip texture detection|
-TDM_GENERAL_WIDTH_CONCENTRATION|0x00000002|General texture detection, default|
-TDM_AUTO|0x00000001|At present, this is equivalent to `TDM_SKIP`|
-
-When `TextureDetectionMode` is set to `TDM_GENERAL_WIDTH_CONCENTRATION`, you can control the sensitivity of texture detection through the Sensitivity parameter. The larger the value of this parameter, the more obvious the texture detection effect is. The default value is 5 and the value range is [1, 9].
-
-## When do you need texture detection and how to adjust related parameters
-
-Texture detection is suitable for images with a textured background. Whether texture detection is required can be determined by observing the effect of the intermediate result after binarization (`IRT_BINARIZED_IMAGE`). Here, we use an actual picture with screen texture to demonstrate how to use this feature.
-
-![texture-image-sample][1]
-
-The sample picture is as above. When we do not use the texture detection function, using the intermediate result `IRT_BINARIZED_IMAGE` we can observe that the texture of the picture is very serious, and it surrounds the barcode area as shown below.
-
-![binary-before-texture-detect][2]
-
-Now, we enable texture detection by configuring `TDM_GENERAL_WIDTH_CONCENTRATION`. After that, the binarized intermediate result image observed again are shown in the figure below where it 's evident that textures have been well handled.
-
-![binary-after-texture-detect][3]
-
-If, after configuring `TDM_GENERAL_WIDTH_CONCENTRATION`, the texture is not processed well, you can adjust the parameter Sensitivity to make further attempts.
-
-## Sample template
-```json
-{
- "ImageParameter": {
- "BarcodeFormatIds": ["BF_ALL"],
- "TextureDetectionModes":[
- {
- "Mode":"TDM_GENERAL_WIDTH_CONCENTRATION",
- "Sensitivity":5
- }
- ]
- },
- "Version": "3.0"
-}
-```
-[1]:assets/texture-detection/texture-image-sample.png
-[2]:assets/texture-detection/binary-before-texture-detect.png
-[3]:assets/texture-detection/binary-after-texture-detect.png
diff --git a/parameters/structure-and-interfaces-of-parameters-v10.5.2100.md b/parameters/structure-and-interfaces-of-parameters-v10.5.2100.md
deleted file mode 100644
index 4fdfe6bf..00000000
--- a/parameters/structure-and-interfaces-of-parameters-v10.5.2100.md
+++ /dev/null
@@ -1,127 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Barcode Reader Parameters under Dynamsoft Capture Vision
-description: Introduce the parameters design of Dynamsoft Capture Vision related to Dynamsoft Barcode Reader.
-keywords: Parameter, Parameter Template, Parameter Template File, Dynamsoft Barcode Reader
-needAutoGenerateSidebar: true
-noTitleIndex: true
-needGenerateH3Content: true
----
-
-# Overview of Dynamsoft Capture Vision parameters Related to Dynamsoft Barcode Reader
-
-Starting in version 10.0, Dynamsoft Barcode Reader is restructured under Dynamsoft Capture Vision Framework.
-
-Dynamsoft Capture Vision (DCV) is designed for high scalability and flexibility, and its parameter system plays a crucial role in achieving this goal. The parameter system is highly configurable and can drive different behavior logic within the SDK. In this article, we will provide an overview of the parametric architecture design regarding the use of Dynamsoft Barcode Reader in the Dynamsoft Capture Vision framework.
-
-## Key Terms
-
-In order to eliminate ambiguity, we first define several key terms.
-
-1. **Parameter**
- A parameter is designed to represent a particular aspect of the behavior of the SDK, and each parameter has its own name. For instance, the `ExpectedBarcodeCount` parameter is used to control the expected count of recognized barcodes. Parameters can be configured with specific values or ranges of values, which can be adjusted as required.
-
-2. **Parameter template**
- A parameter template is a collection of parameters organized in a structured manner, expressed in JSON format. The name of the `CaptureVisionTemplate` object is also called "template name", which is a unique identifier assigned to each parameter template. In the DCV SDK, this name is used to load the relevant configurations and control runtime behavior.
-
-3. **Parameter template file**
- A parameter template file is a JSON file that contains one or multiple parameter templates.
-
-## Organization of a Parameter Template File
-
-As shown in the example below, the organizational structure of a parameter template file consists of several top-level objects such as `CaptureVisionTemplates`, `ImageSourceOptions`,`TargetROIDefOptions` etc.
-
-```json
-{
- "CaptureVisionTemplates": [
- {
- "Name" : "CV_0",
- "ImageSourceName": "ISA_0",
- "ImageROIProcessingNameArray": ["TA_0" ]
- }
- ],
- "ImageSourceOptions": [
- {
- "Name": "ISA_0"
- }
- ],
- "TargetROIDefOptions" : [
- {
- "Name" : "TA_0",
- "TaskSettingNameArray": [ "BR_0" ]
- }
- ],
- "ImageParameterOptions": [
- {
- "Name": "IP_0"
- }
- ],
- "BarcodeReaderTaskSettingOptions": [
- {
- "Name" : "BR_0",
- "BarcodeFormatSpecificationNameArray" : ["FS_0"]
- }
- ],
- "BarcodeFormatSpecificationOptions": [
- {
- "Name": "FS_0"
- }
- ],
- "GlobalParameter":{
- "MaxTotalImageDimension":0
- }
-}
-```
-
-With the exception of GlobalParameter, all top-level objects in the parameter template file are arrays of the corresponding object. For example,`CaptureVisionTemplates` are an array of `CaptureVisionTemplate` objects, and `TargetROIDefOptions` are an array of `TargetROIDef` objects.
-
-Furthermore, to reuse the same parameter definitions, reduce the size of the parameter template file, and simplify the parameter configuration hierarchy, the reference relationship was adopted in the parameter template file design. For example, the value of the `ImageSource` parameter for the first object in `CaptureVisionTemplates` is `ISA_0`, which refers to the first object in `ImageSourceOptions`.
-
-Therefore, a parameter template starts with an object in `CaptureVisionTemplates` and recursively searches for the objects that are directly or indirectly referenced by it, and then combines them to form a specific set of parameters. Then, the parameter template may be applied to DCV through "template name" to control its internal execution logic.
-
-Next, we will focus on introducing some main objects and their relationships in a parameter template.
-
-## Structure of a Parameter Template
-
-The following table list the main objects type and description of a complete parameter template when using only Dynamsoft Barcode Reader:
-
-| Object Type | Description |
-| :----------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| CaptureVisionTemplate | This is the entry object of a parameter template in DCV. The `Name` parameter represents the name of the parameter template, which serves as its unique identifier. |
-| ImageSource | It defines the input for DCV, responsible for providing images to DCV. It can be defined as different image sources, including but not limited to image directories, scanners, cameras, etc. |
-| TargetROIDef | It is used to specify one or more recognition tasks to be performed on some regions of interest (ROIs) within an image. |
-| BarcodeReaderTaskSetting | It is used to configure settings for barcode reading tasks performed on images in DCV. |
-| ImageParameter | It provides various image-processing features to adjust and enhance the input image for better recognition results. |
-
-For more details, please refer to [introduction of the capture vision template]({{ site.dcvb_parameters }}file/capture-vision-template.html)
-
-## How to Apply DCV Parameters
-
-Dynamsoft Capture Vision (DCV) provides two methods to apply parameters:
-
-- `SimplifiedCaptureVisionSettings`: It is a structure that contains commonly used DCV parameters. To update DCV parameters using `SimplifiedCaptureVisionSettings`, you can follow these steps:
-
- 1. Call the `GetSimplifiedSettings` API to get the `SimplifiedCaptureVisionSettings` object named `dcv_settings` associated with the Dynamsoft Capture Vision Router instance.
- 2. Modify the attributes of `dcv_settings`.
- 3. Call the `UpdateSettings` API to apply the modified `dcv_settings`.
-
-- `JSON parameter template file/string` - It supports all DCV parameters. The related parameter setting APIs are:
-
- 1. `InitSettings/InitSettingsFromFile` - after calling this interface, each parameter template in the file/string will be converted into a single parameter template object. They will replace the previously associated parameter template objects on the Capture Vision Router instance.
-
- 2. `ResetSettings` - after calling this API, the internal associated parameter template objects are reset to the factory state.
-
-## Special Rules for DCV Parameter Configuration
-
-In this section, we will discuss some special rules for configuring the DCV parameter templates. Understanding these rules will help you efficiently configure a simple and user-friendly parameter template.
-
-### Default Value of Parameters
-
-Generally, the DCV parameter templates have been designed with many common scenarios in mind, so the default values of many parameters do not need to be modified. When configuring a custom template, you only need to configure required parameters and fine-tuning parameters related to business scenarios. Other optional parameters are automatically filled with default values. This simplifies your configuration and makes your templates easier to read.
-
-### Inherited Parameters
-
-Sometimes, we need to configure multiple templates to adapt to different scenarios, but only a few parameter values differ between each template. DCV provides a parameter configuration inheritance mechanism that further reduces the amount of configuration work.
-For example, when configuring `IP_A` and `IP_B` objects in `ImageParameterOptions`, you can define a `BaseImageParameterName` parameter in the `IP_B` object with a value of `IP_A`. Then `IP_B` object will inherit all the parameter definitions of `IP_A`, and if `IP_B` defines a parameter with the same name but a different value, that parameter will adopt the value of `IP_B`.
-
-This allows you to create a new parameter template that inherits most of its configuration from an existing template, reducing the amount of repetitive configuration work needed.
diff --git a/parameters/structure-and-interfaces-of-parameters-v7.6.0.md b/parameters/structure-and-interfaces-of-parameters-v7.6.0.md
deleted file mode 100644
index b0b3515a..00000000
--- a/parameters/structure-and-interfaces-of-parameters-v7.6.0.md
+++ /dev/null
@@ -1,248 +0,0 @@
----
-description: Introduce the parameter definitions, organization structure, usage rules and related interfaces involved in Dynamsoft Barcode Reader.
-title: Structure and Interfaces of Parameters - Dynamsoft Barcode Reader Parameters
-keywords: Parameter,Interface,Hierarchy
-layout: default-layout
-needAutoGenerateSidebar: true
-permalink: /parameters/structure-and-interfaces-of-parameters-v7.6.0.html
----
-
-
-# Parameter Template Structure
-This article introduces the parameter definitions, organization structure, usage rules and related interfaces involved in Dynamsoft Barcode Reader.
-
-## Definitions
-Dynamsoft Barcode Reader uses a template to set parameters. A template contains three types of data: `ImageParameter`, `RegionDefinition`, and `FormatSpecification`.
-- `ImageParameter` is used to specify the decoding operation settings on the entire image. The value of the `ImageParameter.Name` field is the unique identifier of the `ImageParameter`.
-- `RegionDefinition` is used to specify a decoding region. It is also used to specify the decoding operation settings in this area. The value of the `RegionDefinition.Name` field is the unique identifier of `RegionDefinition`.
-- `FormatSpecification` is used to specify a barcode format. It is also used to specify the decoding operation settings of this barcode format. The value of the `FormatSpecification.Name` field is the unique identifier of `FormatSpecification`.
-
-## Organizational Relationship
-- There is only one `ImageParameter` in a template definition. The `ImageParameter.Name` field denotes the unique identifier of the template;
-- One or more `RegionDefinition` can be referenced through `RegionDefinitionNameArray` in `ImageParameter`;
-- One or more `FormatSpecification` can be referenced through `FormatSpecificationNameArray` in `ImageParameter`;
-- One or more `FormatSpecification` can be referenced through `FormatSpecificationNameArray` in `RegionDefinition`;
-- In a JSON template file/string, you can use `ImageParameterContentArray`/`RegionDefinitionArray`/`FormatSpecificationArray` field to define multiple `ImageParameter`/`RegionDefinition`/`FormatSpecification`, for example:
-
-```json
-{
- "ImageParameterContentArray": [
- {
- "Name": "ImageParameter1",
- "BarcodeFormatIds": ["BF_ONED"]
- },
- {
- "Name": "ImageParameter2",
- "BarcodeFormatIds": ["BF_ALL"]
- }
- ]
-}
-```
-
-## Scope
-- When the same parameter is set in both `ImageParameter` and `RegionDefinition`, the decoding operation in the region specified by `RegionDefinition` is used; otherwise, the parameter values under the `ImageParameter` will be used.
-
-- When the same parameter is set in both `ImageParameter` and `FormatSpecification`, the decoding operation for the barcode format specified by `FormatSpecification` is used; otherwise, the parameter values under the `ImageParameter` will be used.
-
-- When the same parameter is set in both `RegionDefinition` and `FormatSpecification`, the decoding operation for the barcode format specified by `FormatSpecification` is used in the region specified by `RegionDefinition`; otherwise, the parameter values under the `ImageParameter` will be used.
-
-
-## Parameter list
-The parameters of `ImageParameter` are:
-- ImageParameter.AccompanyingTextRecognitionModes
-- ImageParameter.BarcodeColourModes
-- ImageParameter.BarcodeComplementModes
-- ImageParameter.BarcodeFormatIds
-- ImageParameter.BarcodeFormatIds_2
-- ImageParameter.BinarizationModes
-- ImageParameter.ColourClusteringModes
-- ImageParameter.ColourConversionModes
-- ImageParameter.DeblurLevel
-- ImageParameter.DeformationResistingModes
-- ImageParameter.Description
-- ImageParameter.DPMCodeReadingModes
-- ImageParameter.ExpectedBarcodesCount
-- ImageParameter.FormatSpecificationNameArray
-- ImageParameter.GrayscaleTransformationModes
-- ImageParameter.ImagePreprocessingModes
-- ImageParameter.IntermediateResultSavingMode
-- ImageParameter.IntermediateResultTypes
-- ImageParameter.LocalizationModes
-- ImageParameter.MaxAlgorithmThreadCount
-- ImageParameter.Name
-- ImageParameter.Pages
-- ImageParameter.PDFRasterDPI
-- ImageParameter.PDFReadingMode
-- ImageParameter.RegionDefinitionNameArray
-- ImageParameter.RegionPredetectionModes
-- ImageParameter.ResultCoordinateType
-- ImageParameter.ReturnBarcodeZoneClarity
-- ImageParameter.ScaleDownThreshold
-- ImageParameter.ScaleUpModes
-- ImageParameter.TerminatePhase
-- ImageParameter.TextAssistedCorrectionMode
-- ImageParameter.TextFilterModes
-- ImageParameter.TextResultOrderModes
-- ImageParameter.TextureDetectionModes
-- ImageParameter.Timeout
-
-The parameters of `RegionDefinition` are:
-- RegionDefinition.BarcodeFormatIds
-- RegionDefinition.BarcodeFormatIds_2
-- RegionDefinition.Bottom
-- RegionDefinition.ExpectedBarcodesCount
-- RegionDefinition.FormatSpecificationNameArray
-- RegionDefinition.Left
-- RegionDefinition.MeasuredByPercentage
-- RegionDefinition.Name
-- RegionDefinition.Right
-- RegionDefinition.Top
-
-The parameters of `FormatSpecification` are:
-- FormatSpecification.AccompanyingTextRecognitionModes
-- FormatSpecification.AllModuleDeviation
-- FormatSpecification.AustralianPostEncodingTable
-- FormatSpecification.BarcodeAngleRangeArray
-- FormatSpecification.BarcodeBytesLengthRangeArray
-- FormatSpecification.BarcodeBytesRegExPattern
-- FormatSpecification.BarcodeComplementModes
-- FormatSpecification.BarcodeFormatIds
-- FormatSpecification.BarcodeFormatIds_2
-- FormatSpecification.BarcodeHeightRangeArray
-- FormatSpecification.BarcodeTextLengthRangeArray
-- FormatSpecification.BarcodeTextRegExPattern
-- FormatSpecification.BarcodeWidthRangeArray
-- FormatSpecification.Code128Subset
-- FormatSpecification.DeblurLevel
-- FormatSpecification.DeformationResistingModes
-- FormatSpecification.EnableDataMatrixECC000-140
-- FormatSpecification.EnableQRCodeModel1
-- FormatSpecification.FindUnevenModuleBarcode
-- FormatSpecification.HeadModuleRatio
-- FormatSpecification.MinQuietZoneWidth
-- FormatSpecification.MinResultConfidence
-- FormatSpecification.MirrorMode
-- FormatSpecification.ModuleSizeRangeArray
-- FormatSpecification.Name
-- FormatSpecification.RequireStartStopChars
-- FormatSpecification.ReturnPartialBarcodeValue
-- FormatSpecification.StandardFormat
-- FormatSpecification.TailModuleRatio
-
-## Parameter template files assignment rules
-When setting parameters through a JSON template, Dynamsoft Barcode Reader will process the template according to the following rules:
-- Parameters not defined in `ImageParameter`/`RegionDefinition`/`FormatSpecification` will be filled with default values
-- `FormatSpecification` is automatically split into multiple settings for a single barcode format, for example:
-
-```json
-Template you set
-{
- "ImageParameter":{
- "Name": "ImageParameter1",
- "BarcodeFormatIds": ["BF_ONED"],
- "FormatSpecificationNameArray": [
- "FormatSpecification1"
- ]
- },
- "FormatSpecification": {
- "Name": "FormatSpecification1",
- "BarcodeFormatIds": ["BF_CODE_39","BF_CODE_128"],
- "MinResultConfidence": 20
- }
-}
-```
-
-
-```json
-Template used by DBR
-{
- "ImageParameter":{
- "Name": "ImageParameter1",
- "BarcodeFormatIds": ["BF_ONED"],
- "FormatSpecificationNameArray": [
- "FormatSpecification1_BF_CODE_39",
- "FormatSpecification1_BF_CODE_128"
- ]
- },
- "FormatSpecificationArray":[
- {
- "Name": "FormatSpecification1_BF_CODE_39",
- "BarcodeFormatIds": ["BF_CODE_39"],
- "MinResultConfidence": 20
- },
- {
- "Name": "FormatSpecification1_BF_CODE_128",
- "BarcodeFormatIds": ["BF_CODE_128"],
- "MinResultConfidence": 20
- }
- ]
-}
-```
-
-- When the two templates are merged, duplicate parameter settings in the defined `ImageParameter` are handled as follows:
-
- - The following parameters take the maximum of the two settings
- - DeblurLevel
- - ExceptedBarcodeCount
- - MaxAlgorithmThreadCount
- - PDFRasterDPI
- - ScaleDownThreshold
- - Timeout
- - The following parameters take the combined values of two settings
- - BarcodeFormatIds
- - BarcodeFormatIds_2
- - IntermediateResultTypes
- - Pages
- - The following parameters are controlled by the `ConflictMode`. If `ConflictMode` is `IGNORE`, the first value is taken. If `ConflictMode` is `OVERWRITE`, the last value is taken
- - AccompanyingTextReadingModes
- - BarcodeColourModes
- - BarcodeComplementModes
- - BinarizationModes
- - ColourClusteringModes
- - ColourConversionModes
- - DeformationResistingModes
- - DPMCodeReadingModes
- - GrayscaleTransformationModes
- - ImagePreprogressingModes
- - IntermediateResultSavingMode
- - LocalizationModes
- - PDFReadingMode
- - RegionPredetectionModes
- - ResultCoordinateType
- - ReturnBarcodeZoneClarity
- - ScaleUpModes
- - TerminatePhase
- - TextAssistedCorrectionMode
- - TextFilterModes
- - TextResultOrderModes
- - TextureDetectionModes
- - RegionDefinitionNameArray: Take the last RegionDefinitionName in the last RegionDefinitionNameArray
- - FormatSpecificationNameArray: Take the combined value of the two settings, but if the FormatSpecification is set for the same barcode format, FormatSpecificationNameArray will only keep the name of the last FormatSpecification
-
-## Modes, Mode, Arguments
-The entire decoding process of Dynamsoft Barcode Reader consists of many subdivided functions, among which the control parameters of some function blocks are designed in accordance with the format of Modes-Mode-Argument. That is, a function is controlled by a Modes parameter. There are many ways to implement this function, each method (Mode) has multiple unique settings, and each setting is an Argument.
-
-
-
-
-
-
-For example, one of the functions in the decoding process is barcode localization. Dynamsoft Barcode Reader provides the `LocalizationModes` parameter to control this function. It provides `LM_CONNECTED_BLOCKS`, `LM_STATISTICS`, `LM_LINES`, `LM_SCAN_DIRECTLY`, `LM_STATISTICS_MARKS`, `LM_STATISTICS_POSTAL_CODE`, a total of 6 methods to implement barcode localization. For LM_SCAN_DIRECTLY, there are two Arguments, `ScanStride` and `ScanDirection`.
-
-## Interfaces to change settings
-
-Dynamsoft Barcode Reader provides two ways to set parameters: `PublicRuntimeSettings` and JSON template files.
-`PublicRuntimeSettings` is used to modify the Dynamsoft Barcode Reader built-in template, and only supports commonly used parameters. The following are the steps to update Dynamsoft Barcode Reader parameters through `PublicRuntimeSettings`:
-
-1. (optional) Restore the parameter settings of the Dynamsoft Barcode Reader built-in template to the default values through the `ResetRuntimeSettings` interface
-2. Call the `GetRuntimeSettings` interface to get the current `PublicRuntimeSettings` of the Dynamsoft Barcode Reader object
-3. Modify the contents in `PublicRuntimeSettings` in the previous step
-4. Call the `UpdateRuntimeSettings` interface to apply the modified `PublicRuntimeSettings` in the previous step to the Dynamsoft Barcode Reader object
-5. (optional) Call the `SetModeArgument` interface to set the optional argument for a specified mode in Modes parameters.
-
-
-JSON templates supports all Dynamsoft Barcode Reader parameters. The related parameter setting interfaces are:
-- `InitRuntimeSettingsWithFile`: After calling this interface, the template definition in the file are processed according to the merging rules stated in the "Multiple parameter template files" section. Each independent template is stored in the Dynamsoft Barcode Reader object. All templates are merged into one template, then replace the built-in template of Dynamsoft Barcode Reader;
-- `InitRuntimeSettingsWithString`: The effect after calling this interface is the same as `InitRuntimeSettingsWithFile`. The only difference is the template definition of `InitRuntimeSettingsWithString` is saved as a string;
-- `AppendTplFileToRuntimeSettings`: After calling this interface, the template definition in the file will be processed according to the merging rules stated in the "Multiple parameter template files" section . Each independent template is stored in the Dynamsoft Barcode Reader object. All templates, including Dynamsoft Barcode Reader's built-in template, are merged into one template to replace the built-in template of Dynamsoft Barcode Reader;
-- `AppendTplStringToRuntimeSettings`: The effect after calling this interface is the same as `AppendTplFileToRuntimeSettings`. The only difference is the template definition of `AppendTplStringToRuntimeSettings` is saved as a string.
diff --git a/parameters/structure-and-interfaces-of-parameters-v9.2.0.md b/parameters/structure-and-interfaces-of-parameters-v9.2.0.md
deleted file mode 100644
index 09dad6ed..00000000
--- a/parameters/structure-and-interfaces-of-parameters-v9.2.0.md
+++ /dev/null
@@ -1,332 +0,0 @@
----
-description: Introduce the parameter definitions, organization structure, usage rules and related interfaces involved in Dynamsoft Barcode Reader.
-title: Structure and Interfaces of Parameters - Dynamsoft Barcode Reader Parameters
-keywords: Parameter, Interface, Hierarchy
-layout: default-layout
-needAutoGenerateSidebar: true
-permalink: /parameters/structure-and-interfaces-of-parameters-v9.2.0.html
----
-
-# Parameter Template Structure
-
-This article introduces the parameter definitions, organization structure, usage rules, and related interfaces involved in Dynamsoft Barcode Reader.
-
-## Definitions
-
-Dynamsoft Barcode Reader uses a template to set parameters. A template contains three types of data: `ImageParameter` , `RegionDefinition` , and `FormatSpecification` .
-
-* `ImageParameter` is used to specify the decoding settings on the entire image. The value of the `ImageParameter.Name` field is the unique identifier of the `ImageParameter`. Read more about [`ImageParameter`](reference/image-parameter/index.md).
-* `RegionDefinition` is used to specify a decoding region. It is also used to specify the decoding settings in this area. The value of the `RegionDefinition.Name` field is the unique identifier of `RegionDefinition`. Read more about [`RegionDefinition`](reference/region-definition/index.md).
-* `FormatSpecification` is used to specify a barcode format. It is also used to specify the decoding settings of this barcode format. The value of the `FormatSpecification.Name` field is the unique identifier of `FormatSpecification`. Read more about [`FormatSpecification`](reference/format-specification/index.md).
-
-## Organizational Relationship
-
-* There is only one `ImageParameter` in a template definition. The `ImageParameter.Name` field denotes the unique identifier of the template;
-
-* One or more `RegionDefinition` can be referenced through `RegionDefinitionNameArray` in `ImageParameter`;
-* One or more `FormatSpecification` can be referenced through `FormatSpecificationNameArray` in `ImageParameter`;
-* One or more `FormatSpecification` can be referenced through `FormatSpecificationNameArray` in `RegionDefinition`;
-* In a JSON template file/string, you can use `ImageParameterContentArray`/`RegionDefinitionArray`/`FormatSpecificationArray` field to define multiple `ImageParameter`/`RegionDefinition`/`FormatSpecification`, for example:
-
-```json
-{
- "FormatSpecificationArray": [{
- "Name": "IP1_BF_QR_CODE"
- }],
- "ImageParameter": {
- "FormatSpecificationNameArray": [
- "IP1_BF_QR_CODE"
- ],
- "Name": "default",
- "RegionDefinitionNameArray": [
- "region1"
- ]
- },
- "RegionDefinition": {
- "Name": "region1"
- },
- "Version": "3.0"
-}
-```
-
-## Scope
-
-* When the same parameter is set in both `ImageParameter` and `RegionDefinition`, the decoding operation in the region specified by `RegionDefinition` is used; otherwise, the parameter values under the `ImageParameter` will be used.
-
-* When the same parameter is set in both `ImageParameter` and `FormatSpecification`, the decoding operation for the barcode format specified by `FormatSpecification` is used; otherwise, the parameter values under the `ImageParameter` will be used.
-
-* When the same parameter is set in both `RegionDefinition` and `FormatSpecification`, the decoding operation for the barcode format specified by `FormatSpecification` is used in the region specified by `RegionDefinition`; otherwise, the parameter values under the `ImageParameter` will be used.
-
-## Parameter list
-
-The parameters of `ImageParameter` are:
-
-* ImageParameter. BarcodeColourModes
-* ImageParameter. BarcodeComplementModes
-* ImageParameter. BarcodeFormatIds
-* ImageParameter. BarcodeFormatIds_2
-* ImageParameter. BinarizationModes
-* ImageParameter. ColourClusteringModes
-* ImageParameter. ColourConversionModes
-* ImageParameter. DeblurLevel
-* ImageParameter. DeblurModes
-* ImageParameter. DeformationResistingModes
-* ImageParameter. Description
-* ImageParameter. DPMCodeReadingModes
-* ImageParameter. ExpectedBarcodesCount
-* ImageParameter. FormatSpecificationNameArray
-* ImageParameter. GrayscaleTransformationModes
-* ImageParameter. ImagePreprocessingModes
-* ImageParameter. IntermediateResultSavingMode
-* ImageParameter. IntermediateResultTypes
-* ImageParameter. LocalizationModes
-* ImageParameter. MaxAlgorithmThreadCount
-* ImageParameter. Name
-* ImageParameter. Pages
-* ImageParameter. PDFRasterDPI
-* ImageParameter. PDFReadingMode
-* ImageParameter. RegionDefinitionNameArray
-* ImageParameter. RegionPredetectionModes
-* ImageParameter. ResultCoordinateType
-* ImageParameter. ReturnBarcodeZoneClarity
-* ImageParameter. ScaleDownThreshold
-* ImageParameter. ScaleUpModes
-* ImageParameter. TerminatePhase
-* ImageParameter. TextFilterModes
-* ImageParameter. TextResultOrderModes
-* ImageParameter. TextureDetectionModes
-* ImageParameter. Timeout
-
-The parameters of `RegionDefinition` are:
-
-* RegionDefinition. BarcodeFormatIds
-* RegionDefinition. BarcodeFormatIds_2
-* RegionDefinition. Bottom
-* RegionDefinition. ExpectedBarcodesCount
-* RegionDefinition. FormatSpecificationNameArray
-* RegionDefinition. Left
-* RegionDefinition. MeasuredByPercentage
-* RegionDefinition. Name
-* RegionDefinition. Right
-* RegionDefinition. Top
-
-The parameters of `FormatSpecification` are:
-
-* FormatSpecification. AllModuleDeviation
-* FormatSpecification. AustralianPostEncodingTable
-* FormatSpecification. BarcodeAngleRangeArray
-* FormatSpecification. BarcodeBytesLengthRangeArray
-* FormatSpecification. BarcodeBytesRegExPattern
-* FormatSpecification. BarcodeComplementModes
-* FormatSpecification. BarcodeFormatIds
-* FormatSpecification. BarcodeFormatIds_2
-* FormatSpecification. BarcodeHeightRangeArray
-* FormatSpecification. BarcodeTextLengthRangeArray
-* FormatSpecification. BarcodeTextRegExPattern
-* FormatSpecification. BarcodeWidthRangeArray
-* FormatSpecification. BarcodeZoneBarCountRangeArray
-* FormatSpecification. BarcodeZoneMinDistanceToImageBorders
-* FormatSpecification. Code128Subset
-* FormatSpecification. DeblurLevel
-* FormatSpecification. DeformationResistingModes
-* FormatSpecification.EnableDataMatrixECC000-140
-* FormatSpecification.EnableQRCodeModel1
-* FormatSpecification. FindUnevenModuleBarcode
-* FormatSpecification. HeadModuleRatio
-* FormatSpecification. MinQuietZoneWidth
-* FormatSpecification. MinRatioOfBarcodeZoneWidthToHeight
-* FormatSpecification. MinResultConfidence
-* FormatSpecification. MirrorMode
-* FormatSpecification. ModuleSizeRangeArray
-* FormatSpecification. MSICodeCheckDigitCalculation
-* FormatSpecification. Name
-* FormatSpecification. RequireStartStopChars
-* FormatSpecification. ReturnPartialBarcodeValue
-* FormatSpecification. StandardFormat
-* FormatSpecification. TailModuleRatio
-
-## Parameter template files assignment rules
-
-When setting parameters through a JSON template, Dynamsoft Barcode Reader will process the template according to the following rules:
-
-* Parameters not defined in `ImageParameter`/`RegionDefinition`/`FormatSpecification` will be filled with default values
-* `FormatSpecification` is automatically split into multiple settings for a single barcode format, for example:
-
-```json
-Template you set
-{
- "ImageParameter":{
- "Name": "ImageParameter1",
- "BarcodeFormatIds": ["BF_ONED"],
- "FormatSpecificationNameArray": [
- "FormatSpecification1"
- ]
- },
- "FormatSpecification": {
- "Name": "FormatSpecification1",
- "BarcodeFormatIds": ["BF_CODE_39","BF_CODE_128"],
- "MinResultConfidence": 20
- }
-}
-```
-
-```json
-Template used by DBR
-{
- "ImageParameter":{
- "Name": "ImageParameter1",
- "BarcodeFormatIds": ["BF_ONED"],
- "FormatSpecificationNameArray": [
- "FormatSpecification1_BF_CODE_39",
- "FormatSpecification1_BF_CODE_128"
- ]
- },
- "FormatSpecificationArray":[
- {
- "Name": "FormatSpecification1_BF_CODE_39",
- "BarcodeFormatIds": ["BF_CODE_39"],
- "MinResultConfidence": 20
- },
- {
- "Name": "FormatSpecification1_BF_CODE_128",
- "BarcodeFormatIds": ["BF_CODE_128"],
- "MinResultConfidence": 20
- }
- ]
-}
-```
-
-* When the two templates are merged, duplicate parameter settings in the defined `ImageParameter` are handled as follows:
-
- * The following parameters take the maximum of the two settings
- * DeblurLevel
- * ExceptedBarcodeCount
- * MaxAlgorithmThreadCount
- * PDFRasterDPI
- * ScaleDownThreshold
- * Timeout
- * The following parameters take the combined values of two settings
- * BarcodeFormatIds
- * BarcodeFormatIds_2
- * IntermediateResultTypes
- * Pages
- * The following parameters are controlled by the `ConflictMode`. If `ConflictMode` is `IGNORE`, the first value is taken. If `ConflictMode` is `OVERWRITE`, the last value is taken
- * AccompanyingTextReadingModes
- * BarcodeColourModes
- * BarcodeComplementModes
- * BinarizationModes
- * ColourClusteringModes
- * ColourConversionModes
- * DeblurModes
- * DeformationResistingModes
- * DPMCodeReadingModes
- * GrayscaleTransformationModes
- * ImagePreprogressingModes
- * IntermediateResultSavingMode
- * LocalizationModes
- * PDFReadingMode
- * RegionPredetectionModes
- * ResultCoordinateType
- * ReturnBarcodeZoneClarity
- * ScaleUpModes
- * TerminatePhase
- * TextFilterModes
- * TextResultOrderModes
- * TextureDetectionModes
- * RegionDefinitionNameArray: Take the last RegionDefinitionName in the last RegionDefinitionNameArray
- * FormatSpecificationNameArray: Take the combined value of the two settings, but if the FormatSpecification is set for the same barcode format, FormatSpecificationNameArray will only keep the name of the last FormatSpecification
-
-## Modes, Mode and Arguments
-
-The entire decoding process of Dynamsoft Barcode Reader consists of many subdivided functions, among which the control parameters of some function blocks are designed in accordance with the format of Modes-Mode-Argument. That is, a function is controlled by a Modes parameter. There are many ways to implement this function, each method (Mode) has multiple unique settings, and each setting is an Argument.
-
-
-
-
-
-For example, one of the functions in the decoding process is barcode localization. Dynamsoft Barcode Reader provides the `LocalizationModes` parameter to control this function. It provides `LM_CONNECTED_BLOCKS` , `LM_STATISTICS` , `LM_LINES` , `LM_SCAN_DIRECTLY` , `LM_STATISTICS_MARKS` , `LM_STATISTICS_POSTAL_CODE` , a total of 6 methods to implement barcode localization. For LM_SCAN_DIRECTLY, there are two Arguments, `ScanStride` and `ScanDirection` .
-
-## Interfaces to change settings
-
-Dynamsoft Barcode Reader provides two ways to set parameters: `PublicRuntimeSettings` and JSON template files.
-`PublicRuntimeSettings` is used to modify the Dynamsoft Barcode Reader built-in template, and only supports commonly used parameters. The following are the steps to update Dynamsoft Barcode Reader parameters through `PublicRuntimeSettings` :
-
-1. (optional) Restore the parameter settings of the Dynamsoft Barcode Reader built-in template to the default values through the `ResetRuntimeSettings` interface
-2. Call the `GetRuntimeSettings` interface to get the current `PublicRuntimeSettings` of the Dynamsoft Barcode Reader object
-3. Modify the contents in `PublicRuntimeSettings` in the previous step
-4. Call the `UpdateRuntimeSettings` interface to apply the modified `PublicRuntimeSettings` in the previous step to the Dynamsoft Barcode Reader object
-5. (optional) Call the `SetModeArgument` interface to set the optional argument for a specified mode in Modes parameters.
-
-JSON templates supports all Dynamsoft Barcode Reader parameters. The related parameter setting interfaces are:
-
-* `InitRuntimeSettingsWithFile`: After calling this interface, the template definition in the file are processed according to the merging rules stated in the "Multiple parameter template files" section. Each independent template is stored in the Dynamsoft Barcode Reader object. All templates are merged into one template, then replace the built-in template of Dynamsoft Barcode Reader;
-* `InitRuntimeSettingsWithString`: The effect after calling this interface is the same as `InitRuntimeSettingsWithFile`. The only difference is the template definition of `InitRuntimeSettingsWithString` is saved as a string;
-* `AppendTplFileToRuntimeSettings`: After calling this interface, the template definition in the file will be processed according to the merging rules stated in the "Multiple parameter template files" section . Each independent template is stored in the Dynamsoft Barcode Reader object. All templates, including Dynamsoft Barcode Reader's built-in template, are merged into one template to replace the built-in template of Dynamsoft Barcode Reader;
-* `AppendTplStringToRuntimeSettings`: The effect after calling this interface is the same as `AppendTplFileToRuntimeSettings`. The only difference is the template definition of `AppendTplStringToRuntimeSettings` is saved as a string.
-
-## RegionDefinition and How It Works
-
-Limiting the reading area of the barcode reader instance can help provide a better scanning UI as well optimize the performance of the SDK. It is important to understand how the RegionDefinition interface works, and what exactly you need to consider when coming up with the region percentage values.
-
-By definition, the `top` parameter of the RegionDefinition is used to represent the top-most coordinate of the region, while `bottom` represents the bottom-most coordinate of the region. But how do you figure out the appropriate values to set them?
-
-In order to set these values, we highly recommend setting `MeasuredByPercentage` to 1 to make this process as easy as possible. The next section assumes that this parameter is set to true.
-
-For `top` and `bottom` , think of the height of the image or frame as a **vertical axis** that goes from 0 to 100:
-
-* 0 represents the top-most point of the image or frame
-* 100 represents the bottom-most point of the image or frame.
-
-Please follow this diagram for a visual representation of different regions with various `top` and `bottom` values:
-
-
-
-
-
-Please note that the above diagram is not limiting the horizontal view at all.
-
-After determining where you want the top-most and bottom-most points of the reading region, you can find its corresponding percentage value either by trial and error (and using the naked eye) or you can take exact measurements and use those to calculate the exact percentage values.
-
-Now for `left` and `right` , think of the width of the image or frame as a **horizontal axis** that goes from 0 to 100:
-
-* 0 represents the left-most point of the image of frame
-* 100 represents the right-most point of the image of frame
-
-
-
-
-
-The above diagram represents various percentages and their visual representation. This assumes that you are not restricting the vertical area and leaving `top` and `bottom` unaffected.
-
-Now let's group them all together to demonstrate various scanerios and their corresponding values
-
-
-
-
-
-And that is pretty much a gist of how the RegionDefinition works. If anything is unclear, please contact support.
-
-## Using Runtime Settings Templates
-
-When getting started with the runtime settings, it could be a bit overwhelming given how many settings there are and the different scenarios in which they apply.
-
-To make things easier, we introduced three general modes to represent the `RuntimeSettings` :
-
-* `speed`: configures the SDK to read the image or frame as fast as possible, disregarding accuracy. This mode is not recommended for 2D codes in general, but specifically PDF417 codes.
-* `coverage`: opposite to `speed`, this mode prioritizes accuracy by sacrificing speed.
-* `balance`: As the name suggests, this mode offers the best of the two modes, achieving a good combination of the two extremes.
-* `single`: This is the default setting which is optimized for detecting one barcode from video input.
-
-When using the [JavaScript edition](https://www.dynamsoft.com/barcode-reader/programming/javascript/), the `RuntimeSettings` can be updated to any one of the three templates directly instead of having to update each `RuntimeSetting` individually. Please check out the corresponding [documentation](https://www.dynamsoft.com/barcode-reader/programming/javascript/api-reference/BarcodeReader.html?ver=latest#updateruntimesettings) for more info. *Please note that updating the runtime settings using a preset template is currently only supported by the JavaScript edition.*
-
-Please refer to the following breakdown the difference in the individual `RuntimeSettings` between the three modes, as well as the default settings
-
-| Parameter | `speed` | `balance` | `coverage` | `single` |
-| :-: | :-: | :-: | :-: | :-: |
-| `DeblurModes` | `[DM_BASED_ON_LOC_BIN, DM_THRESHOLD_BINARIZATION, DM_DIRECT_BINARIZATION]` | `[DM_BASED_ON_LOC_BIN, DM_THRESHOLD_BINARIZATION,` `DM_DIRECT_BINARIZATION, DM_SMOOTHING]` | `[DM_BASED_ON_LOC_BIN, DM_THRESHOLD_BINARIZATION,` `DM_DIRECT_BINARIZATION, DM_SMOOTHING,` `DM_GRAY_EQUALIZATION, DM_MORPHING, DM_DEEP_ANALYSIS]` | `[DM_BASED_ON_LOC_BIN, DM_THRESHOLD_BINARIZATION,` `DM_DIRECT_BINARIZATION, DM_SMOOTHING,` `DM_GRAY_EQUALIZATION, DM_MORPHING, DM_DEEP_ANALYSIS]` |
-| `BarcodeFormatIds_2` | `BF2_POSTALCODE` | `BF2_POSTALCODE` | `BF2_POSTALCODE` | `BF2_NULL` |
-| `ExpectedBarcodesCount` | `512` | `512` | `512` | `1` |
-| `GrayscaleTransformationModes` | `[GTM_ORIGINAL, 0, 0, 0, 0, 0, 0, 0]` | `[GTM_ORIGINAL, 0, 0, 0, 0, 0, 0, 0]` | `[GTM_ORIGINAL, GTM_INVERTED, 0, 0, 0, 0, 0, 0]` | `[GTM_ORIGINAL, 0, 0, 0, 0, 0, 0, 0]` |
-| `TextFilterModes` | `[0, 0, 0, 0, 0, 0, 0, 0]` | `[TFM_GENERAL_CONTOUR, 0, 0, 0, 0, 0, 0, 0]` | `[TFM_GENERAL_CONTOUR, 0, 0, 0, 0, 0, 0, 0]` | `[TFM_GENERAL_CONTOUR, 0, 0, 0, 0, 0, 0, 0]` |
-| `LocalizationModes` | `[LM_CONNECTED_BLOCKS, LM_STATISTICS_MARKS, LM_STATISTICS_POSTAL_CODE, 0, 0, 0, 0, 0]` | `[LM_CONNECTED_BLOCKS, LM_STATISTICS, LM_STATISTICS_MARKS,` `LM_STATISTICS_POSTAL_CODE, 0, 0, 0, 0]` | `[LM_CONNECTED_BLOCKS, LM_SCAN_DIRECTLY,` `LM_STATISTICS, LM_LINES,` `LM_STATISTICS_MARKS, LM_STATISTICS_POSTAL_CODE, 0, 0]` | `[LM_CONNECTED_BLOCKS, LM_SCAN_DIRECTLY,` `LM_STATISTICS, LM_LINES, 0, 0, 0, 0]` |
-| `ScaleDownThreshold` | `2300` | `2300` | `214748347` | `2300` |
diff --git a/parameters/structure-and-interfaces-of-parameters-v9.6.42.md b/parameters/structure-and-interfaces-of-parameters-v9.6.42.md
deleted file mode 100644
index 4887ff33..00000000
--- a/parameters/structure-and-interfaces-of-parameters-v9.6.42.md
+++ /dev/null
@@ -1,333 +0,0 @@
----
-description: Introduce the parameter definitions, organization structure, usage rules and related interfaces involved in Dynamsoft Barcode Reader.
-title: Structure and Interfaces of Parameters - Dynamsoft Barcode Reader Parameters
-keywords: Parameter, Interface, Hierarchy
-layout: default-layout
-needAutoGenerateSidebar: true
----
-
-# Parameter Template Structure
-
-This article introduces the parameter definitions, organization structure, usage rules, and related interfaces involved in Dynamsoft Barcode Reader.
-
-## Definitions
-
-Dynamsoft Barcode Reader uses a template to set parameters. A template contains three types of data: `ImageParameter` , `RegionDefinition` , and `FormatSpecification` .
-
-* `ImageParameter` is used to specify the decoding settings on the entire image. The value of the `ImageParameter.Name` field is the unique identifier of the `ImageParameter`. Read more about [`ImageParameter`](reference/image-parameter/index.md).
-* `RegionDefinition` is used to specify a decoding region. It is also used to specify the decoding settings in this area. The value of the `RegionDefinition.Name` field is the unique identifier of `RegionDefinition`. Read more about [`RegionDefinition`](reference/region-definition/index.md).
-* `FormatSpecification` is used to specify a barcode format. It is also used to specify the decoding settings of this barcode format. The value of the `FormatSpecification.Name` field is the unique identifier of `FormatSpecification`. Read more about [`FormatSpecification`](reference/format-specification/index.md).
-
-## Organizational Relationship
-
-* There is only one `ImageParameter` in a template definition. The `ImageParameter.Name` field denotes the unique identifier of the template;
-
-* One or more `RegionDefinition` can be referenced through `RegionDefinitionNameArray` in `ImageParameter`;
-* One or more `FormatSpecification` can be referenced through `FormatSpecificationNameArray` in `ImageParameter`;
-* One or more `FormatSpecification` can be referenced through `FormatSpecificationNameArray` in `RegionDefinition`;
-* In a JSON template file/string, you can use `ImageParameterContentArray`/`RegionDefinitionArray`/`FormatSpecificationArray` field to define multiple `ImageParameter`/`RegionDefinition`/`FormatSpecification`, for example:
-
-```json
-{
- "FormatSpecificationArray": [{
- "Name": "IP1_BF_QR_CODE"
- }],
- "ImageParameter": {
- "FormatSpecificationNameArray": [
- "IP1_BF_QR_CODE"
- ],
- "Name": "default",
- "RegionDefinitionNameArray": [
- "region1"
- ]
- },
- "RegionDefinition": {
- "Name": "region1"
- },
- "Version": "3.0"
-}
-```
-
-## Scope
-
-* When the same parameter is set in both `ImageParameter` and `RegionDefinition`, the decoding operation in the region specified by `RegionDefinition` is used; otherwise, the parameter values under the `ImageParameter` will be used.
-
-* When the same parameter is set in both `ImageParameter` and `FormatSpecification`, the decoding operation for the barcode format specified by `FormatSpecification` is used; otherwise, the parameter values under the `ImageParameter` will be used.
-
-* When the same parameter is set in both `RegionDefinition` and `FormatSpecification`, the decoding operation for the barcode format specified by `FormatSpecification` is used in the region specified by `RegionDefinition`; otherwise, the parameter values under the `ImageParameter` will be used.
-
-## Parameter list
-
-The parameters of `ImageParameter` are:
-
-* ImageParameter.BarcodeColourModes
-* ImageParameter.BarcodeComplementModes
-* ImageParameter.BarcodeFormatIds
-* ImageParameter.BarcodeFormatIds_2
-* ImageParameter.BinarizationModes
-* ImageParameter.ColourClusteringModes
-* ImageParameter.ColourConversionModes
-* ImageParameter.DeblurLevel
-* ImageParameter.DeblurModes
-* ImageParameter.DeformationResistingModes
-* ImageParameter.Description
-* ImageParameter.DPMCodeReadingModes
-* ImageParameter.ExpectedBarcodesCount
-* ImageParameter.FormatSpecificationNameArray
-* ImageParameter.GrayscaleTransformationModes
-* ImageParameter.ImagePreprocessingModes
-* ImageParameter.IntermediateResultSavingMode
-* ImageParameter.IntermediateResultTypes
-* ImageParameter.LocalizationModes
-* ImageParameter.MaxAlgorithmThreadCount
-* ImageParameter.Name
-* ImageParameter.Pages
-* ImageParameter.PDFRasterDPI
-* ImageParameter.PDFReadingMode
-* ImageParameter.RegionDefinitionNameArray
-* ImageParameter.RegionPredetectionModes
-* ImageParameter.ResultCoordinateType
-* ImageParameter.ReturnBarcodeZoneClarity
-* ImageParameter.ScaleDownThreshold
-* ImageParameter.ScaleUpModes
-* ImageParameter.TerminatePhase
-* ImageParameter.TextFilterModes
-* ImageParameter.TextResultOrderModes
-* ImageParameter.TextureDetectionModes
-* ImageParameter.Timeout
-
-The parameters of `RegionDefinition` are:
-
-* RegionDefinition.BarcodeFormatIds
-* RegionDefinition.BarcodeFormatIds_2
-* RegionDefinition.Bottom
-* RegionDefinition.ExpectedBarcodesCount
-* RegionDefinition.FormatSpecificationNameArray
-* RegionDefinition.Left
-* RegionDefinition.MeasuredByPercentage
-* RegionDefinition.Name
-* RegionDefinition.Right
-* RegionDefinition.Top
-
-The parameters of `FormatSpecification` are:
-
-* FormatSpecification.AllModuleDeviation
-* FormatSpecification.AustralianPostEncodingTable
-* FormatSpecification.BarcodeAngleRangeArray
-* FormatSpecification.BarcodeBytesLengthRangeArray
-* FormatSpecification.BarcodeBytesRegExPattern
-* FormatSpecification.BarcodeComplementModes
-* FormatSpecification.BarcodeFormatIds
-* FormatSpecification.BarcodeFormatIds_2
-* FormatSpecification.BarcodeHeightRangeArray
-* FormatSpecification.BarcodeTextLengthRangeArray
-* FormatSpecification.BarcodeTextRegExPattern
-* FormatSpecification.BarcodeWidthRangeArray
-* FormatSpecification.BarcodeZoneBarCountRangeArray
-* FormatSpecification.BarcodeZoneMinDistanceToImageBorders
-* FormatSpecification.Code128Subset
-* FormatSpecification.DeblurLevel
-* FormatSpecification.DeformationResistingModes
-* FormatSpecification.EnableDataMatrixECC000-140
-* FormatSpecification.EnableQRCodeModel1
-* FormatSpecification.FindUnevenModuleBarcode
-* FormatSpecification.HeadModuleRatio
-* FormatSpecification.MinQuietZoneWidth
-* FormatSpecification.MinRatioOfBarcodeZoneWidthToHeight
-* FormatSpecification.MinResultConfidence
-* FormatSpecification.MirrorMode
-* FormatSpecification.ModuleSizeRangeArray
-* FormatSpecification.MSICodeCheckDigitCalculation
-* FormatSpecification.Name
-* FormatSpecification.PartitionModes
-* FormatSpecification.PatchCodeSearchingMargins
-* FormatSpecification.RequireStartStopChars
-* FormatSpecification.ReturnPartialBarcodeValue
-* FormatSpecification.StandardFormat
-* FormatSpecification.TailModuleRatio
-
-## Parameter template files assignment rules
-
-When setting parameters through a JSON template, Dynamsoft Barcode Reader will process the template according to the following rules:
-
-* Parameters not defined in `ImageParameter`/`RegionDefinition`/`FormatSpecification` will be filled with default values
-* `FormatSpecification` is automatically split into multiple settings for a single barcode format, for example:
-
-```json
-Template you set
-{
- "ImageParameter":{
- "Name": "ImageParameter1",
- "BarcodeFormatIds": ["BF_ONED"],
- "FormatSpecificationNameArray": [
- "FormatSpecification1"
- ]
- },
- "FormatSpecification": {
- "Name": "FormatSpecification1",
- "BarcodeFormatIds": ["BF_CODE_39","BF_CODE_128"],
- "MinResultConfidence": 20
- }
-}
-```
-
-```json
-Template used by DBR
-{
- "ImageParameter":{
- "Name": "ImageParameter1",
- "BarcodeFormatIds": ["BF_ONED"],
- "FormatSpecificationNameArray": [
- "FormatSpecification1_BF_CODE_39",
- "FormatSpecification1_BF_CODE_128"
- ]
- },
- "FormatSpecificationArray":[
- {
- "Name": "FormatSpecification1_BF_CODE_39",
- "BarcodeFormatIds": ["BF_CODE_39"],
- "MinResultConfidence": 20
- },
- {
- "Name": "FormatSpecification1_BF_CODE_128",
- "BarcodeFormatIds": ["BF_CODE_128"],
- "MinResultConfidence": 20
- }
- ]
-}
-```
-
-* When the two templates are merged, duplicate parameter settings in the defined `ImageParameter` are handled as follows:
-
- * The following parameters take the maximum of the two settings
- * DeblurLevel
- * ExceptedBarcodeCount
- * MaxAlgorithmThreadCount
- * PDFRasterDPI
- * ScaleDownThreshold
- * Timeout
- * The following parameters take the combined values of two settings
- * BarcodeFormatIds
- * BarcodeFormatIds_2
- * IntermediateResultTypes
- * Pages
- * The following parameters are controlled by the `ConflictMode`. If `ConflictMode` is `IGNORE`, the first value is taken. If `ConflictMode` is `OVERWRITE`, the last value is taken
- * AccompanyingTextReadingModes
- * BarcodeColourModes
- * BarcodeComplementModes
- * BinarizationModes
- * ColourClusteringModes
- * ColourConversionModes
- * DeblurModes
- * DeformationResistingModes
- * DPMCodeReadingModes
- * GrayscaleTransformationModes
- * ImagePreprogressingModes
- * IntermediateResultSavingMode
- * LocalizationModes
- * PDFReadingMode
- * RegionPredetectionModes
- * ResultCoordinateType
- * ReturnBarcodeZoneClarity
- * ScaleUpModes
- * TerminatePhase
- * TextFilterModes
- * TextResultOrderModes
- * TextureDetectionModes
- * RegionDefinitionNameArray: Take the last RegionDefinitionName in the last RegionDefinitionNameArray
- * FormatSpecificationNameArray: Take the combined value of the two settings, but if the FormatSpecification is set for the same barcode format, FormatSpecificationNameArray will only keep the name of the last FormatSpecification
-
-## Modes, Mode and Arguments
-
-The entire decoding process of Dynamsoft Barcode Reader consists of many subdivided functions, among which the control parameters of some function blocks are designed in accordance with the format of Modes-Mode-Argument. That is, a function is controlled by a Modes parameter. There are many ways to implement this function, each method (Mode) has multiple unique settings, and each setting is an Argument.
-
-
-
-
-
-For example, one of the functions in the decoding process is barcode localization. Dynamsoft Barcode Reader provides the `LocalizationModes` parameter to control this function. It provides `LM_CONNECTED_BLOCKS` , `LM_STATISTICS` , `LM_LINES` , `LM_SCAN_DIRECTLY` , `LM_STATISTICS_MARKS` , `LM_STATISTICS_POSTAL_CODE` , a total of 6 methods to implement barcode localization. For LM_SCAN_DIRECTLY, there are two Arguments, `ScanStride` and `ScanDirection` .
-
-## Interfaces to change settings
-
-Dynamsoft Barcode Reader provides two ways to set parameters: `PublicRuntimeSettings` and JSON template files.
-`PublicRuntimeSettings` is used to modify the Dynamsoft Barcode Reader built-in template, and only supports commonly used parameters. The following are the steps to update Dynamsoft Barcode Reader parameters through `PublicRuntimeSettings` :
-
-1. (optional) Restore the parameter settings of the Dynamsoft Barcode Reader built-in template to the default values through the `ResetRuntimeSettings` interface
-2. Call the `GetRuntimeSettings` interface to get the current `PublicRuntimeSettings` of the Dynamsoft Barcode Reader object
-3. Modify the contents in `PublicRuntimeSettings` in the previous step
-4. Call the `UpdateRuntimeSettings` interface to apply the modified `PublicRuntimeSettings` in the previous step to the Dynamsoft Barcode Reader object
-5. (optional) Call the `SetModeArgument` interface to set the optional argument for a specified mode in Modes parameters.
-
-JSON templates supports all Dynamsoft Barcode Reader parameters. The related parameter setting interfaces are:
-
-* `InitRuntimeSettingsWithFile`: After calling this interface, the template definition in the file are processed according to the merging rules stated in the "Multiple parameter template files" section. Each independent template is stored in the Dynamsoft Barcode Reader object. All templates are merged into one template, then replace the built-in template of Dynamsoft Barcode Reader;
-* `InitRuntimeSettingsWithString`: The effect after calling this interface is the same as `InitRuntimeSettingsWithFile`. The only difference is the template definition of `InitRuntimeSettingsWithString` is saved as a string;
-* `AppendTplFileToRuntimeSettings`: After calling this interface, the template definition in the file will be processed according to the merging rules stated in the "Multiple parameter template files" section . Each independent template is stored in the Dynamsoft Barcode Reader object. All templates, including Dynamsoft Barcode Reader's built-in template, are merged into one template to replace the built-in template of Dynamsoft Barcode Reader;
-* `AppendTplStringToRuntimeSettings`: The effect after calling this interface is the same as `AppendTplFileToRuntimeSettings`. The only difference is the template definition of `AppendTplStringToRuntimeSettings` is saved as a string.
-
-## RegionDefinition and How It Works
-
-Limiting the reading area of the barcode reader instance can help provide a better scanning UI as well optimize the performance of the SDK. It is important to understand how the RegionDefinition interface works, and what exactly you need to consider when coming up with the region percentage values.
-
-By definition, the `top` parameter of the RegionDefinition is used to represent the top-most coordinate of the region, while `bottom` represents the bottom-most coordinate of the region. But how do you figure out the appropriate values to set them?
-
-In order to set these values, we highly recommend setting `MeasuredByPercentage` to 1 to make this process as easy as possible. The next section assumes that this parameter is set to true.
-
-For `top` and `bottom` , think of the height of the image or frame as a **vertical axis** that goes from 0 to 100:
-
-* 0 represents the top-most point of the image or frame
-* 100 represents the bottom-most point of the image or frame.
-
-Please follow this diagram for a visual representation of different regions with various `top` and `bottom` values:
-
-
-
-
-
-Please note that the above diagram is not limiting the horizontal view at all.
-
-After determining where you want the top-most and bottom-most points of the reading region, you can find its corresponding percentage value either by trial and error (and using the naked eye) or you can take exact measurements and use those to calculate the exact percentage values.
-
-Now for `left` and `right` , think of the width of the image or frame as a **horizontal axis** that goes from 0 to 100:
-
-* 0 represents the left-most point of the image of frame
-* 100 represents the right-most point of the image of frame
-
-
-
-
-
-The above diagram represents various percentages and their visual representation. This assumes that you are not restricting the vertical area and leaving `top` and `bottom` unaffected.
-
-Now let's group them all together to demonstrate various scanerios and their corresponding values
-
-
-
-
-
-And that is pretty much a gist of how the RegionDefinition works. If anything is unclear, please contact support.
-
-## Using Runtime Settings Templates
-
-When getting started with the runtime settings, it could be a bit overwhelming given how many settings there are and the different scenarios in which they apply.
-
-To make things easier, we introduced three general modes to represent the `RuntimeSettings` :
-
-* `speed`: configures the SDK to read the image or frame as fast as possible, disregarding accuracy. This mode is not recommended for 2D codes in general, but specifically PDF417 codes.
-* `coverage`: opposite to `speed`, this mode prioritizes accuracy by sacrificing speed.
-* `balance`: As the name suggests, this mode offers the best of the two modes, achieving a good combination of the two extremes.
-* `single`: This is the default setting which is optimized for detecting one barcode from video input.
-
-When using the [JavaScript edition](https://www.dynamsoft.com/barcode-reader/programming/javascript/), the `RuntimeSettings` can be updated to any one of the three templates directly instead of having to update each `RuntimeSetting` individually. Please check out the corresponding [documentation](https://www.dynamsoft.com/barcode-reader/programming/javascript/api-reference/BarcodeReader.html?ver=latest#updateruntimesettings) for more info. *Please note that updating the runtime settings using a preset template is currently only supported by the JavaScript edition.*
-
-Please refer to the following breakdown the difference in the individual `RuntimeSettings` between the three modes, as well as the default settings
-
-| Parameter | `speed` | `balance` | `coverage` | `single` |
-| :-: | :-: | :-: | :-: | :-: |
-| `DeblurModes` | `[DM_BASED_ON_LOC_BIN, DM_THRESHOLD_BINARIZATION, DM_DIRECT_BINARIZATION]` | `[DM_BASED_ON_LOC_BIN, DM_THRESHOLD_BINARIZATION,` `DM_DIRECT_BINARIZATION, DM_SMOOTHING]` | `[DM_BASED_ON_LOC_BIN, DM_THRESHOLD_BINARIZATION,` `DM_DIRECT_BINARIZATION, DM_SMOOTHING,` `DM_GRAY_EQUALIZATION, DM_MORPHING, DM_DEEP_ANALYSIS]` | `[DM_BASED_ON_LOC_BIN, DM_THRESHOLD_BINARIZATION,` `DM_DIRECT_BINARIZATION, DM_SMOOTHING,` `DM_GRAY_EQUALIZATION, DM_MORPHING, DM_DEEP_ANALYSIS]` |
-| `BarcodeFormatIds_2` | `BF2_POSTALCODE` | `BF2_POSTALCODE` | `BF2_POSTALCODE` | `BF2_NULL` |
-| `ExpectedBarcodesCount` | `512` | `512` | `512` | `1` |
-| `GrayscaleTransformationModes` | `[GTM_ORIGINAL, 0, 0, 0, 0, 0, 0, 0]` | `[GTM_ORIGINAL, 0, 0, 0, 0, 0, 0, 0]` | `[GTM_ORIGINAL, GTM_INVERTED, 0, 0, 0, 0, 0, 0]` | `[GTM_ORIGINAL, 0, 0, 0, 0, 0, 0, 0]` |
-| `TextFilterModes` | `[0, 0, 0, 0, 0, 0, 0, 0]` | `[TFM_GENERAL_CONTOUR, 0, 0, 0, 0, 0, 0, 0]` | `[TFM_GENERAL_CONTOUR, 0, 0, 0, 0, 0, 0, 0]` | `[TFM_GENERAL_CONTOUR, 0, 0, 0, 0, 0, 0, 0]` |
-| `LocalizationModes` | `[LM_CONNECTED_BLOCKS, LM_STATISTICS_MARKS, LM_STATISTICS_POSTAL_CODE, 0, 0, 0, 0, 0]` | `[LM_CONNECTED_BLOCKS, LM_STATISTICS, LM_STATISTICS_MARKS,` `LM_STATISTICS_POSTAL_CODE, 0, 0, 0, 0]` | `[LM_CONNECTED_BLOCKS, LM_SCAN_DIRECTLY,` `LM_STATISTICS, LM_LINES,` `LM_STATISTICS_MARKS, LM_STATISTICS_POSTAL_CODE, 0, 0]` | `[LM_CONNECTED_BLOCKS, LM_SCAN_DIRECTLY,` `LM_STATISTICS, LM_LINES, 0, 0, 0, 0]` |
-| `ScaleDownThreshold` | `2300` | `2300` | `214748347` | `2300` |
diff --git a/performance/accuracy-v10.5.3000.md b/performance/accuracy-v10.5.3000.md
deleted file mode 100644
index 490af22d..00000000
--- a/performance/accuracy-v10.5.3000.md
+++ /dev/null
@@ -1,146 +0,0 @@
----
-layout: default-layout
-title: Accuracy - Dynamsoft Barcode Reader Performance
-description: This page illustrates how to maximize the accuracy of Dynamsoft Barcode Reader
-Keywords: accuracy
-needAutoGenerateSidebar: true
-noTitleIndex: false
-breadcrumbText: Accuracy
-permalink: /performance/accuracy.html
----
-
-
-
-
-
-# How to Boost Barcode Reading Accuracy
-
-There are 3 basic metrics for measuring the performance of a barcode reader application: **speed**, **accuracy** and **read-rate**. The Dynamsoft Barcode Reader SDK (DBR) has been carefully designed to have excellent performance in all three of these metrics. In this article, we try to investigate all the possible methods you can take to let DBR focus on **accuracy**.
-
-As the ultimate guide on how to configure DBR to realize its full accuracy potential, we will start with some general methods that are both simple and effective, and then delve into some of the more niche or specific methods to achieve higher accuracy. Lastly, we'll cover some external settings such as those of the Camera Enhancer SDK which can be useful in certain situations.
-
-> The following shows the definition of the three metrics.
->
->$ Accuracy = \frac{Number~of~Correctly~Decoded~Barcode~Results}{Number~of~All~Decoded~Barcode~Results} $
->
->$ Speed = \frac{Number~of~All~Decoded~Barcode~Results}{Total~Time~Consumed} $
->
->$ Read~Rate = \frac{Number~of~All~Decoded~Barcode~Results}{Number~of~All~Target~Barcodes} $
->
->Do bear in mind that if one of these metrics is prioritized, the other two may not be ideal.
-
-## General Settings
-
-The following settings can be applied to nearly all usage scenarios to improve the barcode reading accuracy.
-
-### Filter the Result by Confidence
-
-The confidence attribute of the barcode results is determined by the reliability of that result. Users can set the [`MinResultConfidence`]({{site.dcvb_parameters_reference}}barcode-format-specification/min-result-confidence.html) to make a filter on the barcode results by the confidence value. For Dynamsoft Barcode Reader v8.8 or later, the default value of the confidence is optimized to 30, which can filter out the majority of misread barcode results. A higher `MinResultConfidence` setting will definitely improve the accuracy of the barcode results but reduce the read rate and speed at the same time. Therefore, please set the `MinResultConfidence` according to your actual usage scenario to balance the accuracy, speed read rate.
-
-
-### Enable Multi-frame Verification
-
-For interactive video scenarios, it is possible to receive duplicate results for a single barcode across multiple frames. By adding a `CMultiFrameResultCrossFilter` and enabling result cross-verification, the result is verified and output only if a certain barcode result appears twice or more within the past few frames. Otherwise, it is considered a misread result and discarded.
-
-## Specific Settings
-
-When configuring the specific settings, you have to know some basic information about your usage scenario. This type of information will help exclude undesired barcode results or put a filter on the barcode results.
-
-### Specify the Barcode Formats
-
-The barcode format specification is the most basic decode setting that affects all three metrics of the performance. Sometimes, misreading a 1D barcode is caused by misrecognizing the 1D barcode as another 1D barcode type. If the targeted 1D barcodes are scoped, you can specify the barcode format in your project to lower the probability of misread results.
-
-The related parameters are [ `BarcodeFormatIds` ]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/barcode-format-ids.html).
-
-### Enable Result Text Filter
-
-When the target barcodes are confirmed, the barcode texts might have common features that help you implement a result filter on the result text. Using the [`BarcodeFormatSpecification`]({{site.dcvb_parameters}}file/auxiliary/barcode-format-specification.html) parameters, you can add barcode result text restrictions like [`regular expression`]({{site.dcvb_parameters_reference}}barcode-format-specification/barcode-text-regex-pattern.html) requirements and [`text length`]({{site.dcvb_parameters_reference}}barcode-format-specification/barcode-text-length-range-array.html) range.
-
-
-### Exclude Small-Module Barcodes
-
-The module size of the barcode refers to the pixel size of the barcode modules (e.g. the pixel width of a 1D barcode line or the smallest cell size of a QR code). The smaller the module size of the barcodes, the higher risk of a misread. If it is not necessary to decode all the small-size barcodes in the scenario, you can skip the small-module barcodes by specifying the minimum acceptable module size of the barcodes via parameter [`ModuleSizeRangeArray`]({{site.dcvb_parameters_reference}}barcode-format-specification/module-size-range-array.html).
-
-When processing large-size images, DBR scales down the images based on the [`ScaleDownThreshold`]({{site.dcvb_parameters_reference}}scale-down-threshold.html) before decoding. However, sometimes the barcode on the image might be shrunk too small. You can increase the [`scaleDownThreshold`]({{site.dcvb_parameters_reference}}image-parameter/scale-down-threshold.html) value to ensure the module size of the barcodes is big enough to get the correct barcode results.
-
-**Recommendation**
-
-By increasing the `MinValue` of the `ModuleSizeRangeArray`, the SDK can skip the small-module barcodes and their potential misreads, thus ensuring a higher accuracy. Increasing the value of `ScaleDownThreshold` can also potentially lead to better accuracy, while lowering it offers better speed.
-
-### Optimize DeblurModes Settings
-
-[`DeblurModes`]({{site.dcvb_parameters_reference}}barcode-reader-task-settings/deblur-modes.html) is the parameter that controls how much effort DBR will spend in processing the located barcodes. It is set to the highest level by default so that DBR will try its best to process every localized barcode even if they are highly blurred. However, the blurriness of the barcodes and the accuracy of the barcode results are inversely proportional. As a result, when the read rate is high enough with the current settings, you can try to simplify the `DeblurModes` array to reduce the possibility of any misreads.
-
-Generally, the simpler the `DeblurModes` array is, the higher the accuracy. As a result, when accuracy is prioritized, the aim is to find the simplest `DeblurModes` configuration that covers the requirements. To find the simplest configuration, it is recommended to approach this from a trial and error standpoint and continuously test each configuration. For this approach, you can start with the full `DeblurModes` array and incrementally reduce the enabled `DeblurModes` till the read rate is no longer acceptable.
-
-**Recommendation**
-
-Please note, `DM_DEEP_ANALYSIS` is the most effective, but most complicated, mode to process blurry barcodes and you can remove this mode first with this approach. `DM_BASED_ON_LOC_BIN` and `DM_THRESHOLD_BINARIZATION` are the most basic `DeblurModes`, and should be kept to retain the minimum barcode decoding capability.
-
-## External Settings – Camera Enhancer Settings
-
-For the interactive video scenarios, promoting the quality of the video will definitely improve the barcode decoding accuracy. Although there is no camera control APIs within the Dynamsoft Barcode Reader API, Dynamsoft Camera Enhancer (DCE) APIs offer the ability to take control of the input video streaming. DCE is an SDK that integrates the camera control API and video frame pre-processing features. It can be easily bound to the Barcode Reader and enables users to optimize the input video streaming when using the Barcode Reader. The following DCE settings and functions can help improve the accuracy of barcode decoding:
-
-### Filter Out the Blurry Frames
-
-When the frame filter feature of DCE is enabled, a quick sharpness evaluation will be implemented on each video frame - low sharpness frames will be discarded to ensure the barcode reader will process high-quality frames only. Since the Barcode Reader doesn't need to process the blurry video frames, the accuracy will be highly improved.
-
-**Recommendation**
-
-The frame-filter feature of DCE can be enabled via the `enableEnhancedFeatures` method.
-
-### Enhance the Camera Focus
-
-It is highly recommended that this feature be implemented on low-end devices. Enhancing the camera focus ability will reduce the blurry frames in the video streaming, which benefits the barcode reading accuracy.
-
-
-**Recommendation**
-
-To enable the enhanced-focus feature of DCE, please use `enableEnhancedFeatures` .
-
-### Set Higher Resolution
-
-A higher resolution will promote the sharpness of the video frames and enlarge the module size of barcodes. Increasing the resolution will definitely benefit the barcode reading accuracy while sacrificing speed. In addition, please remember to set the `MinValue` of `ScaleDownThreshold` to a higher value if you want to decode on high-resolution video streaming. If the `ScaleDownThershold` is smaller than the size of video frames, the video frames will be shrunk to a smaller size before being decoded.
-
-**Recommendation**
-
-To configure the resolution, please use the `setResolution` method.
-
-### Define the Scan Region
-
-Using DCE, you can specify the scan region so that the SDK only works with a specific area of the image or frame. The video frames will be cropped before barcode decoding so that the barcode reader will ignore the areas that are of no interest to the decoding process, thus resulting in faster and more accurate results.
-
-**Recommendation**
-
-You can specify the scan region via the DCE method `setScanRegion` .
-
-## Summary
-
-In this article, we explored the accuracy-friendly settings. In summary, the methods that improve the accuracy can be categorized as follows:
-
-- Enhance the image/video source before decoding
-- Exclude the areas of the image or frame that are not related to the barcode when decoding
-- Filter out the incorrect results after decoding
-
-Some of the accuracy-friendly settings may benefit the speed or read rate at the same time. For example, when the non-supported barcode formats are excluded, both the processing speed and the accuracy are improved. Hardly does this setting affect the read rate metric. However, some other accuracy-friendly settings, for example, the confidence filter (increasing the `MinResultConfidence`), may worsen both the processing speed and read rate. To adjust the parameter setting to fit your usage scenario, you might need to find the balance between the 3 dimensions of performance.
-
-The following links are the article that explains how to make settings when either speed or read rate is prioritized. Reading the articles will help you further understand the parameter settings and measure how to configure the setting for your own project.
-
-- [How to boost Speed]({{ site.performance }}speed.html)
-- [How to boost Read Rate]({{ site.performance }}read-rate.html)
-
-If you are not sure where to start regarding which dimension of the performance should be prioritized or you are still puzzled by the parameter settings, please feel free to [contact us](https://www.dynamsoft.com/contact/) to get support from our technical support team. Our team can give you professional suggestions on the parameter settings that best fulfill your requirements.
diff --git a/performance/accuracy-v9.6.42.md b/performance/accuracy-v9.6.42.md
deleted file mode 100644
index d5ba1d58..00000000
--- a/performance/accuracy-v9.6.42.md
+++ /dev/null
@@ -1,159 +0,0 @@
----
-layout: default-layout
-title: Accuracy - Dynamsoft Barcode Reader Performance
-description: This page illustrates how to maximize the accuracy of Dynamsoft Barcode Reader
-Keywords: accuracy
-needAutoGenerateSidebar: true
-noTitleIndex: false
-breadcrumbText: Accuracy
----
-
-
-
-
-
-# How to Boost Barcode Reading Accuracy
-
-There are 3 basic metrics for measuring the performance of a barcode reader application: **speed**, **accuracy** and **read-rate**. The Dynamsoft Barcode Reader SDK (DBR) has been carefully designed to have excellent performance in all three of these metrics. In this article, we try to investigate all the possible methods you can take to let DBR focus on **accuracy**.
-
-As the ultimate guide on how to configure DBR to realize its full accuracy potential, we will start with some general methods that are both simple and effective, and then delve into some of the more niche or specific methods to achieve higher accuracy. Lastly, we'll cover some external settings such as those of the Camera Enhancer SDK which can be useful in certain situations.
-
-> The following shows the definition of the three metrics.
->
->$ Accuracy = \frac{Number~of~Correctly~Decoded~Barcode~Results}{Number~of~All~Decoded~Barcode~Results} $
->
->$ Speed = \frac{Number~of~All~Decoded~Barcode~Results}{Total~Time~Consumed} $
->
->$ Read~Rate = \frac{Number~of~All~Decoded~Barcode~Results}{Number~of~All~Target~Barcodes} $
->
->Do bear in mind that if one of these metrics is prioritized, the other two may not be ideal.
-
-## General Settings
-
-The following settings can be applied to nearly all usage scenarios to improve the barcode reading accuracy.
-
-### Filter the Result by Confidence
-
-The confidence attribute of the barcode results is determined by the reliability of that result. Users can set the [`MinResultConfidence`]({{site.parameters_reference}}min-result-confidence.html) to make a filter on the barcode results by the confidence value. For Dynamsoft Barcode Reader v8.8 or later, the default value of the confidence is optimized to 30, which can filter out the majority of misread barcode results. A higher `MinResultConfidence` setting will definitely improve the accuracy of the barcode results but reduce the read rate and speed at the same time. Therefore, please set the `MinResultConfidence` according to your actual usage scenario to balance the accuracy and speed.
-
-**Recommendation**
-
-Setting the `MinResultConfidence` to a value of 50 instead of 30. Setting it higher can lead to even more accurate results, but at the compromise of speed or the read rate.
-
-### Enable Multi-frame Verification
-
-For interactive video scenarios, it is possible to get duplicate results for a single barcode. These duplicate results can be used to verify the accuracy of the results. If a certain barcode result comes out twice or more within a short period of time (typically around 100-200 ms depending on the barcode processing speed), it can be approved and output. However, if a barcode result is not recognized a second time, the SDK waits at most for 3 seconds after the initial recognition, and if the result shows up again within those 3 seconds, the result is verified and output. If not, then it is considered a misread result and discarded.
-
-In short, having a result verification filter reduces the possibility of inaccurate results by double-checking the results of consecutive frames of the same localized barcode.
-
-**Recommendation**
-
-For the **JavaScript** edition, multi-frame verification is enabled when using video barcode scanning. For **Android** and **iOS** editions, you have to use the following APIs to control the status of the multi-frame verification:
-
-- [`enableResultVerification (Android)`]({{site.android_api}}primary-video.html#enableresultverification)
-- [`enableResultVerification (iOS)`]({{site.oc_api}}primary-video.html#enableresultverification)
-
-## Specific Settings
-
-When configuring the specific settings, you have to know some basic information about your usage scenario. This type of information will help exclude undesired barcode results or put a filter on the barcode results.
-
-### Specify the Barcode Formats
-
-The barcode format specification is the most basic decode setting that affects all three metrics of the performance. Sometimes, misreading a 1D barcode is caused by misrecognizing the 1D barcode as another 1D barcode type. If the targeted 1D barcodes are scoped, you can specify the barcode format in your project to lower the probability of misread results. In addition, specifying the required barcode formats will not only benefit the accuracy, but also the barcode reading speed as we saw in the [Achieving Best Speed]({{site.performance}}speed.html) article.
-
-**Recommendation**
-
-The two parameters responsible for this are: [ `BarcodeFormatIds` ]({{site.parameters_reference}}barcode-format-ids.html) and [ `BarcodeFormatIds_2` ]({{site.parameters_reference}}barcode-format-ids-2.html)
-
-### Enable Result Text Filter
-
-When the target barcodes are confirmed, the barcode texts might have common features that help you implement a result filter on the result text. Using the [`FormatSpecification`]({{site.parameters_reference}}format-specification/index.html) parameters, you can add barcode result text restrictions like [`regular expression`]({{site.parameters_reference}}barcode-text-regex-pattern.html) requirements and [`text length`]({{site.parameters_reference}}barcode-text-length-range-array.html) range.
-
-
-### Exclude Small-Module Barcodes
-
-The module size of the barcode refers to the pixel size of the barcode modules (e.g. the pixel width of a 1D barcode line or the smallest cell size of a QR code). The smaller the module size of the barcodes, the higher risk of a misread. If it is not necessary to decode all the small-size barcodes in the scenario, you can skip the small-module barcodes by specifying the minimum acceptable module size of the barcodes via parameter [`ModuleSizeRangeArray`]({{site.parameters_reference}}module-size-range-array.html). By increasing the `MinValue` of the `ModuleSizeRangeArray`, the SDK can skip the small-module barcodes and their potential misreads, thus ensuring higher accuracy.
-
-When processing large-size images, DBR scales down the images based on the [`ScaleDownThreshold`]({{site.parameters_reference}}scale-down-threshold.html) before decoding. However, sometimes the barcode on the image might be shrunk too small. You can increase the [`ScaleDownThreshold`]({{site.parameters_reference}}scale-down-threshold.html) value to ensure the module size of the barcodes is big enough to get the correct barcode results.
-
-**Recommendation**
-
-By increasing the `MinValue` of the `ModuleSizeRangeArray`, the SDK can skip the small-module barcodes and their potential misreads, thus ensuring a higher accuracy. Increasing the value of `ScaleDownThreshold` can also potentially lead to better accuracy, while lowering it offers better speed.
-
-### Optimize DeblurModes Settings
-
-[`DeblurModes`]({{site.parameters_reference}}deblur-modes.html) is the parameter that controls how much effort DBR will spend in processing the located barcodes. It is set to the highest level by default so that DBR will try its best to process every localized barcode even if they are highly blurred. However, the blurriness of the barcodes and the accuracy of the barcode results are inversely proportional. As a result, when the read rate is high enough with the current settings, you can try to simplify the `DeblurModes` array to reduce the possibility of any misreads.
-
-Generally, the simpler the `DeblurModes` array is, the higher the accuracy. As a result, when accuracy is prioritized, the aim is to find the simplest `DeblurModes` configuration that covers the requirements. To find the simplest configuration, it is recommended to approach this from a trial and error standpoint and continuously test each configuration. For this approach, you can start with the full `DeblurModes` array and incrementally reduce the enabled `DeblurModes` till the read rate is no longer acceptable.
-
-**Recommendation**
-
-Please note, `DM_DEEP_ANALYSIS` is the most effective, but most complicated, mode to process blurry barcodes and you can remove this mode first with this approach. `DM_BASED_ON_LOC_BIN` and `DM_THRESHOLD_BINARIZATION` are the most basic `DeblurModes`, and should be kept to retain the minimum barcode decoding capability.
-
-## External Settings – Camera Enhancer Settings
-
-Users can optimize the parameter settings to prevent misreading but this is not the only way to improve the accuracy. For the interactive video scenarios, promoting the quality of the video will definitely improve the barcode decoding accuracy. Although there is no camera control APIs within the Dynamsoft Barcode Reader API, Dynamsoft Camera Enhancer (DCE) APIs offer the ability to take control of the input video streaming. DCE is an SDK that integrates the camera control API and video frame pre-processing features. It can be easily bound to the Barcode Reader and enables users to optimize the input video streaming when using the Barcode Reader. The following DCE settings and functions can help improve the accuracy of barcode decoding:
-
-### Filter Out the Blurry Frames
-
-When the frame filter feature of DCE is enabled, a quick sharpness evaluation will be implemented on each video frame - low sharpness frames will be discarded to ensure the barcode reader will process high-quality frames only. Since the Barcode Reader doesn't need to process the blurry video frames, the accuracy will be highly improved.
-
-**Recommendation**
-
-The frame-filter feature of DCE can be enabled via the [`enableFeatures`](https://www.dynamsoft.com/camera-enhancer/docs/programming/android/primary-api/camera-enhancer.html#enablefeatures) method.
-
-### Enhance the Camera Focus
-
-It is highly recommended that this feature be implemented on low-end devices. Enhancing the camera focus ability will reduce the blurry frames in the video streaming, which benefits the barcode reading accuracy.
-
-
-**Recommendation**
-
-To enable the enhanced-focus feature of DCE, please use [`enableFeatures`](https://www.dynamsoft.com/camera-enhancer/docs/programming/android/primary-api/camera-enhancer.html#enablefeatures).
-
-### Set Higher Resolution
-
-A higher resolution will promote the sharpness of the video frames and enlarge the module size of barcodes. Increasing the resolution will definitely benefit the barcode reading accuracy while sacrificing speed. In addition, please remember to set the `MinValue` of `ScaleDownThreshold` to a higher value if you want to decode on high-resolution video streaming. If the `ScaleDownThreshold` is smaller than the size of video frames, the video frames will be shrunk to a smaller size before being decoded.
-
-**Recommendation**
-
-To configure the resolution, please use the [`setResolution`](https://www.dynamsoft.com/camera-enhancer/docs/programming/android/primary-api/camera-enhancer.html#setresolution) method.
-
-### Define the Scan Region
-
-Using DCE, you can specify the scan region so that the SDK only works with a specific area of the image or frame. The video frames will be cropped before barcode decoding so that the barcode reader will ignore the areas that are of no interest to the decoding process, thus resulting in faster and more accurate results.
-
-**Recommendation**
-
-You can specify the scan region via the DCE method [`setScanRegion`](https://www.dynamsoft.com/camera-enhancer/docs/programming/android/primary-api/camera-enhancer.html#setscanregion).
-
-## Summary
-
-In this article, we explored the accuracy-friendly settings. In summary, the methods that improve the accuracy can be categorized as follows:
-
-- Enhance the image/video source before decoding
-- Exclude the areas of the image or frame that are not related to the barcode when decoding
-- Filter out the incorrect results after decoding
-
-Some of the accuracy-friendly settings may benefit the speed or read rate at the same time. For example, when the non-supported barcode formats are excluded, both the processing speed and the accuracy are improved. Hardly does this setting affect the read rate metric. However, some other accuracy-friendly settings, for example, the confidence filter (increasing the `MinResultConfidence`), may worsen both the processing speed and read rate. To adjust the parameter setting to fit your usage scenario, you might need to find the balance between the 3 dimensions of performance.
-
-The following links are the article that explains how to make settings when either speed or read rate is prioritized. Reading the articles will help you further understand the parameter settings and measure how to configure the setting for your own project.
-
-- [How to boost Speed]({{ site.performance }}speed.html)
-- [How to boost Read Rate]({{ site.performance }}read-rate.html)
-
-If you are not sure where to start regarding which dimension of the performance should be prioritized or you are still puzzled by the parameter settings, please feel free to [contact us](https://www.dynamsoft.com/contact/) to get support from our technical support team. Our team can give you professional suggestions on the parameter settings that best fulfill your requirements.
diff --git a/performance/index-v9.6.42.md b/performance/index-v9.6.42.md
deleted file mode 100644
index 401a6bb7..00000000
--- a/performance/index-v9.6.42.md
+++ /dev/null
@@ -1,17 +0,0 @@
----
-layout: default-layout
-title: Performance Optimization - Dynamsoft Barcode Reader SDK
-description: This is the Performance Optimization index page for Dynamsoft Barcode Reader.
-keywords: performance optimization
-breadcrumbText: Performance
-needGenerateH3Content: false
----
-
-# Performance Optimization
-
-This section covers the following topics:
-
-* [How to Boost Barcode Reading Speed](speed.md)
-* [How to Boost Barcode Reading Accuracy](accuracy.md)
-* [How to Boost Barcode Read Rate](read-rate.md)
-* [How to Batch Test Barcode Reading Performance]({{ site.comparison_tools}}batch-test.html)
diff --git a/performance/read-rate-v10.5.3000.md b/performance/read-rate-v10.5.3000.md
deleted file mode 100644
index 194928bf..00000000
--- a/performance/read-rate-v10.5.3000.md
+++ /dev/null
@@ -1,150 +0,0 @@
----
-layout: default-layout
-title: Read Rate - Dynamsoft Barcode Reader Performance
-description: This page shows how the Dynamsoft Barcode Reader SDK is designed to improve read rate
-keywords: Read Rate
-breadcrumbText: Read Rate
-noTitleIndex: false
-permalink: /performance/read-rate.html
----
-
-
-
-
-
-# How to Boost Barcode Read Rate
-
-There are 3 basic metrics for measuring the performance of a barcode reader application: **speed**, **accuracy** and **read-rate**. The Dynamsoft Barcode Reader SDK (DBR) has been carefully designed to offer excellent performance in all three of these metrics. In this article, we try to investigate all the possible methods you can take to let DBR focus on **read-rate**.
-
-As the ultimate guide on how to configure DBR to realize its full potential on read rate, we will go through all the parameters that can be customized during barcode reading process. With these customizations, DBR tries its best to strengthen image features before localization, and then try to improve barcode localization with multiple modes, followed by decoding the barcode zone, and lastly, optimize circumstances during decoding to get final results.
-
-> The following shows the definition of the three metrics.
->
-> $ Speed = \frac{Number~of~All~Decoded~Barcode~Results}{Total~Time~Consumed} $
->
-> $ Accuracy = \frac{Number~of~Correctly~Decoded~Barcode~Results}{Number~of~All~Decoded~Barcode~Results} $
->
-> $ Read~Rate = \frac{Number~of~All~Decoded~Barcode~Results}{Number~of~All~Target~Barcodes} $
->
-> Do bear in mind that if one metric is prioritized, the other two may be negatively affected.
-
-
-## Strengthen Image Features for Localization
-Barcode zones are detectable by taking advantage of features of different barcode formats. A linear barcode, for example, consists of several parallel lines, so the first step of locating the barcode is to find a group of parallel lines, at which a linear barcode zone (defining feature) is detected. But in some cases, these defining features may not be obvious or of good enough quality to be detectable, so DBR will go through the following processes to enhance barcode zone features before localization.
-
-### Optimize the Conversion from Colour Image to Grayscale
-If the original image is a colour image, DBR will convert it to grayscale. During that process, the colour space and weights of each colour channel used directly affects the quality of the grayscale image. By default, DBR uses RGB space and automatically calculates the weights of the three channels (red, green, blue). To get a high quality grayscale image, you can also adjust the colour space and weight of the channels using the [ColourConversionModes]({{ site.dcvb_parameters_reference }}image-parameter/colour-conversion-modes.html) setting. For example, if your image has a barcode with a red background, setting `BlueChannelWeight, GreenChannelWeight`, and `RedChannelWeight` to `0`, `0`, and `1000` respectively will return a better grayscale image than the values `300`, `300`, and `400` respectively.
-
-After the conversion, the barcode on the grayscale image is either darker or lighter than the background. If it is the latter, the barcode image is then considered to be inverted and so DBR needs to set the `GTM_INVERTED` mode in [GrayscaleTransformationModes]({{ site.dcvb_parameters_reference }}image-parameter/grayscale-transformation-modes.html) to invert the image in advance. Therefore, to ensure a good read rate, it is recommended to set both `GTM_ORIGINAL` and `GTM_INVERTED` in the `GrayscaleTransformationModes` to cover both the darker and lighter backgrounds, respectively.
-
-
-### Enhance the Grayscale Image Quality
-[GrayscaleEnhancementModes]({{ site.dcvb_parameters_reference }}image-parameter/grayscale-enhancement-modes.html) provides some image processing methods to enhance the quality of the grayscale image by removing the noise, improving the contrast, and more. To get the best read rate, you can set all of the supported grayscale enhancement modes. But to balance the time cost, please refer to the following table to identify the circumstance of your barcode image and set one or a few modes.
-
-| Image Circumstance | Recommended Setting |
-| --- | --- |
-| With low contrast on barcode and background | GEM_GRAY_EQUALIZE |
-| With intensive noise or texture | GEM_GRAY_SMOOTH |
-| With blurred boundaries around the barcode module | GEM_SHARPEN_SMOOTH |
-
-### Generate a High Quality Binary Image
-[BinarizationModes]({{ site.dcvb_parameters_reference }}image-parameter/binarization-modes.html) provides some binarization methods to generate a high quality binary image. Setting the priority to `BM_LOCAL_BLOCK` will binarize each pixel of the image based on a threshold which is calculated based on a small region around said pixel. It works well on images with varying illumination. When using this mode, there are arguments that can be used to further improve the read rate. Setting `BlockSizeX` and `BlockSizeY` to 5 - 8 times the module size (should it be known) and setting `EnableFillBinaryVacancy` to 1 if you are reading barcodes with a large module size.
-
-The second binarization mode, `BM_THRESHOLD`, binarizes the image for each pixel based on a global unified threshold. It works well when the image has obvious contrast between the barcode and the background. You can adjust the threshold by setting argument `BinarizationThreshold` to find a best value for your image.
-
-## Improve Barcode Localization with Multiple Modes
-After the above process, we have a high quality binarized image ready for barcode zone localization. DBR provides several methods to localize a barcode zone, which can be customized by the parameter [LocalizationModes]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/localization-modes.html). Each single method can be used for certain barcode type(s) or usage scenarios, but considering the read rate as the first priority, it is recommended to combine multiple modes following the instructions below.
-
-### Common Usage
-To localize most barcodes, it is recommended to use DBR's default localization modes, which includes `LM_SCAN_DIRECTLY`, `LM_CONNECTED_BLOCKS`, `LM_LINES`, `LM_STATISTICS` in that priority order. Firstly, DBR uses `LM_SCAN_DIRECTLY` mode to run a fast scan through the whole image. That usually gives a great localization result with vertical and horizontal OneD barcodes. If not enough barcodes have been found, DBR then uses `LM_CONNECTED_BLOCKS` which covers most of the barcode types and gives the best result most of the time. `LM_LINES` is a supplementary mode to `LM_CONNECTED_BLOCKS` which may help localizing OneD and PDF417 codes. DBR then tries `LM_STATISTICS` mode as the last resort to cover barcode types that may be missed by the above modes.
-
-
-### Specific Case Modes
-- If you are decoding postal codes and the read rate is in quite high priority, you can add `LM_STATISTICS_POSTAL_CODE` to the default setting, it is designed to optimize the localization for postal codes.
-
-- If you are decoding barcodes whose modules are separate, e.g., Direct Part Marking (DPM) codes, and DotCode, `LM_STATISTICS_MARKS` is the right one you should add.
-
-### Additional Tips when Setting the Modes
-- When using multiple modes, `LM_CONNECTED_BLOCKS` should always be placed ahead of `LM_LINES`, `LM_STATISTICS`, `LM_STATISTICS_MARKS` and `LM_STATISTICS_POSTAL_CODE` since they are supplementary modes to `LM_CONNECTED_BLOCKS`.
-
-- `LM_SCAN_DIRECTLY` is covered by `LM_CONNECTED_BLOCKS`, so setting `LM_SCAN_DIRECTLY` after `LM_CONNECTED_BLOCKS` will give no help on read rate but slow down the speed.
-
-## Refine the Decoding Process
-
-Next in the algorithm, DBR performs a round of image processing on the precisely partitioned barcode area to get final barcode result. The parameter [DeblurModes]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/deblur-modes.html) comes with 9 modes in total which can be used individually or together to configure how DBR runs this part of the algorithm. Of the 9 modes, 2 of them are designed for relatively simple situations:
-
-- `DM_BASED_ON_LOC_BIN` is the most efficient mode when the barcode area is clear and clean. It reuses the binary image generated during the localization process.
-- `DM_THRESHOLD_BINARIZATION` is preferred when the barcode content modules have distinct colour contrast with the background.
-
-The following 6 modes provide more adaptability to handle more complicated situations.
-
-- `DM_DIRECT_BINARIZATION` is preferred when the barcode content modules have varying illumination levels.
-- `DM_GRAY_EQUALIZATION` is preferred when the barcode content modules have low colour contrast with the background.
-- `DM_SMOOTHING` is preferred when the barcode area has intensive noise or textures.
-- `DM_SHARPENING` is preferred when the barcode content modules have blurred boundaries with a clear background.
-- `DM_SHARPENING_SMOOTHING` is preferred when the barcode content modules have blurred boundaries with unclear backgrounds.
-- `DM_MORPHING` is preferred when the barcode area is polluted or damaged.
-
-Last but not least, `DM_DEEP_ANALYSIS` is the most powerful way to deal with desperate situations which cannot be solved by above modes. It analyzes every pixel of the image, does a lot of calculation to gather characteristics to find or build relation between pixels before finally find out the barcode modules and final result.
-
->Note:
->To get the best read rate, DBR by default has all 9 modes enabled so that it covers varying situations.
->To speed up the process, choose only one or a few optimum modes.
->When `DM_DEEP_ANALYSIS` is used, make sure it is the last one since it's most time-consuming.
-
-## Optimize Particular Circumstances while Decoding
-
-### Enlarge Barcodes with Small Module Sizes
-
-Barcodes with a small module size may be distorted by some processing methods like rotation, binarization with inappropriate block size, etc. Enlarging the barcode area to a larger size can enhance the ability to prevent distortion, thereby improving the likelihood of decoding results. The parameter [ScaleUpModes]({{ site.dcvb_parameters_reference }}image-parameter/scale-up-modes.html) can be used to determine how the enlarging should be done, if at all. For example, using `SUM_LINEAR_INTERPOLATION` with argument `ModuleSizeThreshold` set to 2 will activate the enlaring process using the linear interpolation method when the barcode module size is smaller than 2px.
-
-### Enable All Wanted Barcode Types
-
-Barcode types are defined with the parameters [BarcodeFormatIds]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/barcode-format-ids.html). A barcode can be detected only when its type is enabled. When the barcode type is uncertain, you should enable all barcode types to ensure the read rate.
-
-### Restore Incomplete Modules
-
-In some cases, due to misprinting, the barcodes may miss some modules, like the patterns of a QR code or the border of a Datamatrix. DBR is able to restore the missing modules for these barcodes by setting `BCM_GENERAL` mode in the parameter [BarcodeComplementModes]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/barcode-complement-modes.html).
-
-### Correct Deformed Barcodes
-
-The barcodes on the surface of some flexible packaging or cylindrical objects tend to be distorted or deformed. DBR is able to correct these deformed barcodes to a standard shape by setting `DRM_GENERAL` mode in parameter [DeformationResistingModes]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/deformation-resisting-modes.html).
-
-### Support Direct Part Marking Codes
-
-DPM (Direct Part Marking) Codes, DataMatrix typically, are widely used in industrial part tracking, from electronics manufacturing to automotive assembly. They always come with light reflection, low contrast, complex background texture, and other distorted features. DBR is able to decode such DPM codes by setting `DPMCRM_GENERAL` mode in parameter [DPMCodeReadingModes]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/dpm-code-reading-modes.html).
-
-### Cover Both Normal and Mirrored States
-
-Sometimes, barcodes can come out in a mirrored orientation compared to the normal orientation (left to right). DBR is able to cover both normal and mirrored barcodes by setting `MM_BOTH` mode in parameter [MirrorMode]({{ site.dcvb_parameters_reference }}barcode-format-specification/mirror-mode.html). If the barcodes you are decoding are of the same state, setting it to only `MM_NORMAL` or `MM_MIRROR` can improve the speed without affecting the read rate.
-
-### Comply with Non-standard Barcodes
-
-In some cases, the barcode may not be generated or printed following the standard. DBR is able to decode such non-standard barcodes by setting the following parameters to provide information about the non-standard part.
-
-- [StandardFormat]({{ site.dcvb_parameters_reference }}barcode-format-specification/standard-format.html) to specify the standard barcode format.
-- [AllModuleDeviation]({{ site.dcvb_parameters_reference }}barcode-format-specification/all-module-deviation.html) to specify the barcode module size deviation value.
-- [HeadModuleRatio]({{ site.dcvb_parameters_reference }}barcode-format-specification/head-module-ratio.html) to specify the module count and module size ratio of the barcode head part.
-- [TailModuleRatio]({{ site.dcvb_parameters_reference }}barcode-format-specification/tail-module-ratio.html) to specify the module count and module size ratio of the barcode tail part.
-- [FindUnevenModuleBarcode]({{ site.dcvb_parameters_reference }}barcode-format-specification/find-uneven-module-barcode.html) to specify whether to find barcodes with uneven barcode modules.
-
-## Summary
-
-In this article, we went through the complete reading process and looked at most of the parameters which might impact read rate.
-
-Depending on the actual image you are scanning or the usage scenario you are trying to adapt to, you can experiment with these parameters to find the most suitable settings for the best read rate. If you have any further questions, you can get in touch with Dynamsoft Support .
-
-In reality, accuracy and speed matter too. Read our other documents dedicated to these two topics:
-
-- [How to Boost Barcode Reading Accuracy]({{ site.performance }}accuracy.html)
-- [How to Boost Barcode Reading Speed]({{ site.performance }}speed.html)
-
diff --git a/performance/read-rate-v9.6.42.md b/performance/read-rate-v9.6.42.md
deleted file mode 100644
index 97570e8e..00000000
--- a/performance/read-rate-v9.6.42.md
+++ /dev/null
@@ -1,150 +0,0 @@
----
-layout: default-layout
-title: Read Rate - Dynamsoft Barcode Reader Performance
-description: This page shows how the Dynamsoft Barcode Reader SDK is designed to improve read rate
-keywords: Read Rate
-breadcrumbText: Read Rate
-noTitleIndex: false
----
-
-
-
-
-
-# How to Boost Barcode Read Rate
-
-There are 3 basic metrics for measuring the performance of a barcode reader application: **speed**, **accuracy** and **read-rate**. The Dynamsoft Barcode Reader SDK (DBR) has been carefully designed to offer excellent performance in all three of these metrics. In this article, we try to investigate all the possible methods you can take to let DBR focus on **read-rate**.
-
-As the ultimate guide on how to configure DBR to realize its full potential on read rate, we will go through all the parameters that can be customized during barcode reading process. With these customizations, DBR tries its best to strengthen image features before localization, and then try to improve barcode localization with multiple modes, followed by decoding the barcode zone, and lastly, optimize circumstances during decoding to get final results.
-
-> The following shows the definition of the three metrics.
->
-> $ Speed = \frac{Number~of~All~Decoded~Barcode~Results}{Total~Time~Consumed} $
->
-> $ Accuracy = \frac{Number~of~Correctly~Decoded~Barcode~Results}{Number~of~All~Decoded~Barcode~Results} $
->
-> $ Read~Rate = \frac{Number~of~All~Decoded~Barcode~Results}{Number~of~All~Target~Barcodes} $
->
-> Do bear in mind that if one metric is prioritized, the other two may be negatively affected.
-
-
-## Strengthen Image Features for Localization
-Barcode zones are detectable by taking advantage of features of different barcode formats. A linear barcode, for example, consists of several parallel lines, so the first step of locating the barcode is to find a group of parallel lines, at which a linear barcode zone (defining feature) is detected. But in some cases, these defining features may not be obvious or of good enough quality to be detectable, so DBR will go through the following processes to enhance barcode zone features before localization.
-
-### Optimize the Conversion from Colour Image to Grayscale
-If the original image is a colour image, DBR will convert it to grayscale. During that process, the colour space and weights of each colour channel used directly affects the quality of the grayscale image. By default, DBR uses RGB space and automatically calculates the weights of the three channels (red, green, blue). To get a high quality grayscale image, you can also adjust the colour space and weight of the channels using the [ColourConversionModes]({{ site.parameters_reference }}colour-conversion-modes.html) setting. For example, if your image has a barcode with a red background, setting `BlueChannelWeight, GreenChannelWeight`, and `RedChannelWeight` to `0`, `0`, and `1000` respectively will return a better grayscale image than the values `300`, `300`, and `400` respectively.
-
-After the conversion, the barcode on the grayscale image is either darker or lighter than the background. If it is the latter, the barcode image is then considered to be inverted and so DBR needs to set the `GTM_INVERTED` mode in [GrayscaleTransformationModes]({{ site.parameters_reference }}grayscale-transformation-modes.html) to invert the image in advance. Therefore, to ensure a good read rate, it is recommended to set both `GTM_ORIGINAL` and `GTM_INVERTED` in the `GrayscaleTransformationModes` to cover both the darker and lighter backgrounds, respectively.
-
-
-### Enhance the Grayscale Image Quality
-[ImagePreprocessingModes]({{ site.parameters_reference }}image-preprocessing-modes.html) provides some image processing methods to enhance the quality of the grayscale image by removing the noise, improving the contrast, and more. To get the best read rate, you can set all of the supported preprocessing modes. But to balance the time cost, please refer to the following table to identify the circumstance of your barcode image and set one or a few modes.
-
-| Image Circumstance | Recommended Setting |
-| --- | --- |
-| With low contrast on barcode and background | IPM_GRAY_EQUALIZE |
-| With intensive noise or texture | IPM_GRAY_SMOOTH |
-| With blurred boundaries around the barcode module | IPM_SHARPEN_SMOOTH |
-| With barcode area polluted or destroyed | IPM_MORPHOLOGY |
-
-### Generate a High Quality Binary Image
-[BinarizationModes]({{ site.parameters_reference }}binarization-modes.html) provides some binarization methods to generate a high quality binary image. Setting the priority to `BM_LOCAL_BLOCK` will binarize each pixel of the image based on a threshold which is calculated based on a small region around said pixel. It works well on images with varying illumination. When using this mode, there are arguments that can be used to further improve the read rate. Setting `BlockSizeX` and `BlockSizeY` to 5 - 8 times the module size (should it be known) and setting `EnableFillBinaryVacancy` to 1 if you are reading barcodes with a large module size.
-
-The second binarization mode, `BM_THRESHOLD`, binarizes the image for each pixel based on a global unified threshold. It works well when the image has obvious contrast between the barcode and the background. You can adjust the threshold by setting argument `BinarizationThreshold` to find a best value for your image.
-
-## Improve Barcode Localization with Multiple Modes
-After the above process, we have a high quality binarized image ready for barcode zone localization. DBR provides several methods to localize a barcode zone, which can be customized by the parameter [LocalizationModes]({{ site.parameters_reference }}localization-modes.html). Each single method can be used for certain barcode type(s) or usage scenarios, but considering the read rate as the first priority, it is recommended to combine multiple modes following the instructions below.
-
-### Common Usage
-To localize most barcodes, it is recommended to use DBR's default localization modes, which includes `LM_SCAN_DIRECTLY`, `LM_CONNECTED_BLOCKS`, `LM_LINES`, `LM_STATISTICS` in that priority order. Firstly, DBR uses `LM_SCAN_DIRECTLY` mode to run a fast scan through the whole image. That usually gives a great localization result with vertical and horizontal OneD barcodes. If not enough barcodes have been found, DBR then uses `LM_CONNECTED_BLOCKS` which covers most of the barcode types and gives the best result most of the time. `LM_LINES` is a supplementary mode to `LM_CONNECTED_BLOCKS` which may help localizing OneD and PDF417 codes. DBR then tries `LM_STATISTICS` mode as the last resort to cover barcode types that may be missed by the above modes.
-
-
-### Specific Case Modes
-- If you are decoding postal codes and the read rate is in quite high priority, you can add `LM_STATISTICS_POSTAL_CODE` to the default setting, it is designed to optimize the localization for postal codes.
-
-- If you are decoding barcodes whose modules are separate, e.g., Direct Part Marking (DPM) codes, and DotCode, `LM_STATISTICS_MARKS` is the right one you should add.
-
-### Additional Tips when Setting the Modes
-- When using multiple modes, `LM_CONNECTED_BLOCKS` should always be placed ahead of `LM_LINES`, `LM_STATISTICS`, `LM_STATISTICS_MARKS` and `LM_STATISTICS_POSTAL_CODE` since they are supplementary modes to `LM_CONNECTED_BLOCKS`.
-
-- `LM_SCAN_DIRECTLY` is covered by `LM_CONNECTED_BLOCKS`, so setting `LM_SCAN_DIRECTLY` after `LM_CONNECTED_BLOCKS` will give no help on read rate but slow down the speed.
-
-## Refine the Decoding Process
-
-Next in the algorithm, DBR performs a round of image processing on the precisely partitioned barcode area to get final barcode result. The parameter [DeblurModes]({{ site.parameters_reference }}deblur-modes.html) comes with 9 modes in total which can be used individually or together to configure how DBR runs this part of the algorithm. Of the 9 modes, 2 of them are designed for relatively simple situations:
-
-- `DM_BASED_ON_LOC_BIN` is the most efficient mode when the barcode area is clear and clean. It reuses the binary image generated during the localization process.
-- `DM_THRESHOLD_BINARIZATION` is preferred when the barcode content modules have distinct colour contrast with the background.
-
-The following 6 modes provide more adaptability to handle more complicated situations.
-
-- `DM_DIRECT_BINARIZATION` is preferred when the barcode content modules have varying illumination levels.
-- `DM_GRAY_EQUALIZATION` is preferred when the barcode content modules have low colour contrast with the background.
-- `DM_SMOOTHING` is preferred when the barcode area has intensive noise or textures.
-- `DM_SHARPENING` is preferred when the barcode content modules have blurred boundaries with a clear background.
-- `DM_SHARPENING_SMOOTHING` is preferred when the barcode content modules have blurred boundaries with unclear backgrounds.
-- `DM_MORPHING` is preferred when the barcode area is polluted or damaged.
-
-Last but not least, `DM_DEEP_ANALYSIS` is the most powerful way to deal with desperate situations which cannot be solved by above modes. It analyzes every pixel of the image, does a lot of calculation to gather characteristics to find or build relation between pixels before finally find out the barcode modules and final result.
-
->Note:
->To get the best read rate, DBR by default has all 9 modes enabled so that it covers varying situations.
->To speed up the process, choose only one or a few optimum modes.
->When `DM_DEEP_ANALYSIS` is used, make sure it is the last one since it's most time-consuming.
-
-## Optimize Particular Circumstances while Decoding
-
-### Enlarge Barcodes with Small Module Sizes
-
-Barcodes with a small module size may be distorted by some processing methods like rotation, binarization with inappropriate block size, etc. Enlarging the barcode area to a larger size can enhance the ability to prevent distortion, thereby improving the likelihood of decoding results. The parameter [ScaleUpModes]({{ site.parameters_reference }}scale-up-modes.html) can be used to determine how the enlarging should be done, if at all. For example, using `SUM_LINEAR_INTERPOLATION` with argument `ModuleSizeThreshold` set to 2 will activate the enlaring process using the linear interpolation method when the barcode module size is smaller than 2px.
-
-### Enable All Wanted Barcode Types
-
-Barcode types are defined with the parameters [BarcodeFormat]({{ site.enumerations }}format-enums.html#barcodeformat) and [BarcodeFormat_2]({{ site.enumerations }}format-enums.html#barcodeformat_2). A barcode can be detected only when its type is enabled. When the barcode type is uncertain, you should enable all barcode types to ensure the read rate.
-
-### Restore Incomplete Modules
-
-In some cases, due to misprinting, the barcodes may miss some modules, like the patterns of a QR code or the border of a Datamatrix. DBR is able to restore the missing modules for these barcodes by setting `BCM_GENERAL` mode in the parameter [BarcodeComplementModes]({{ site.parameters_reference }}barcode-complement-modes.html).
-
-### Correct Deformed Barcodes
-
-The barcodes on the surface of some flexible packaging or cylindrical objects tend to be distorted or deformed. DBR is able to correct these deformed barcodes to a standard shape by setting `DRM_GENERAL` mode in parameter [DeformationResistingModes]({{ site.parameters_reference }}deformation-resisting-modes.html).
-
-### Support Direct Part Marking Codes
-
-DPM (Direct Part Marking) Codes, DataMatrix typically, are widely used in industrial part tracking, from electronics manufacturing to automotive assembly. They always come with light reflection, low contrast, complex background texture, and other distorted features. DBR is able to decode such DPM codes by setting `DPMCRM_GENERAL` mode in parameter [DPMCodeReadingModes]({{ site.parameters_reference }}dpm-code-reading-modes.html).
-
-### Cover Both Normal and Mirrored States
-
-Sometimes, barcodes can come out in a mirrored orientation compared to the normal orientation (left to right). DBR is able to cover both normal and mirrored barcodes by setting `MM_BOTH` mode in parameter [MirrorMode]({{ site.parameters_reference }}mirror-mode.html). If the barcodes you are decoding are of the same state, setting it to only `MM_NORMAL` or `MM_MIRROR` can improve the speed without affecting the read rate.
-
-### Comply with Non-standard Barcodes
-
-In some cases, the barcode may not be generated or printed following the standard. DBR is able to decode such non-standard barcodes by setting the following parameters to provide information about the non-standard part.
-
-- [StandardFormat]({{ site.parameters_reference }}standard-format.html) to specify the standard barcode format.
-- [AllModuleDeviation]({{ site.parameters_reference }}all-module-deviation.html) to specify the barcode module size deviation value.
-- [HeadModuleRatio]({{ site.parameters_reference }}head-module-ratio.html) to specify the module count and module size ratio of the barcode head part.
-- [TailModuleRatio]({{ site.parameters_reference }}tail-module-ratio.html) to specify the module count and module size ratio of the barcode tail part.
-- [FindUnevenModuleBarcode]({{ site.parameters_reference }}find-uneven-module-barcode.html) to specify whether to find barcodes with uneven barcode modules.
-
-## Summary
-
-In this article, we went through the complete reading process and looked at most of the parameters which might impact read rate.
-
-Depending on the actual image you are scanning or the usage scenario you are trying to adapt to, you can experiment with these parameters to find the most suitable settings for the best read rate. If you have any further questions, you can get in touch with Dynamsoft Support .
-
-In reality, accuracy and speed matter too. Read our other documents dedicated to these two topics:
-
-- [How to Boost Barcode Reading Accuracy](accuracy.md)
-- [How to Boost Barcode Reading Speed](speed.md)
-
diff --git a/performance/speed-v10.5.3000.md b/performance/speed-v10.5.3000.md
deleted file mode 100644
index f253618e..00000000
--- a/performance/speed-v10.5.3000.md
+++ /dev/null
@@ -1,311 +0,0 @@
----
-layout: default-layout
-title: Speed - Dynamsoft Barcode Reader Performance
-description: This page shows how to adjust the settings to achieve best speed in barcode reading
-keywords: speed
-needAutoGenerateSidebar: true
-noTitleIndex: false
-breadcrumbText: Speed
-permalink: /performance/speed.html
----
-
-
-
-
-
-# How to Boost Barcode Reading Speed
-
-There are 3 basic metrics for measuring the performance of a barcode reader application: **speed**, **accuracy** and **read-rate**. The Dynamsoft Barcode Reader SDK (DBR) has been carefully designed to offer excellent performance in all three of these metrics. In this article, we investigate all the possible ways in which you can configure DBR to focus on **speed**.
-
-This guide explores how DBR can be used to its full-speed potential, and it will be divided into three sections: The first section addresses some of the common and simple methods you can use to effectively increase speed metrics. The second section delves into the various stages of DBR's algorithm and how we can improve the speed at each of the crucial stages. The third and last section will introduce some less popular and used methods that our SDK can use to potentially improve speed metrics if other methods are not sufficient.
-
-> The following shows the definition of the three metrics.
->
-> $ Speed = \frac{Number~of~All~Decoded~Barcode~Results}{Total~Time~Consumed} $
->
-> $ Accuracy = \frac{Number~of~Correctly~Decoded~Barcode~Results}{Number~of~All~Decoded~Barcode~Results} $
->
-> $ Read~Rate = \frac{Number~of~All~Decoded~Barcode~Results}{Number~of~All~Target~Barcodes} $
->
-> Do bear in mind that, if one of these metrics is prioritized, the other two may not be ideal.
-
-## Explore the common methods for better speed
-
-### Focus on the barcode types of interest
-
-This is probably the most natural setting to start with. By clearly telling DBR what it is looking for, it can quickly skip other types of barcodes that can potentially be on the same image or frame.
-
-The related parameters are [ `BarcodeFormatIds` ]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/barcode-format-ids.html).
-
-**Recommendation**
-
-* Always specify the type(s) of the barcodes you are trying to read.
-
-### Set an upper limit to the number of barcodes per image
-
-By default, DBR tries to find as many barcodes as possible from a given image. Assume the image is very big but has only one barcode at the top, DBR finds the barcode instantly but will spend more time scanning the rest of the image or even try more steps to find more barcodes. By telling DBR that we are only expecting one barcode, it will stop reading the image as soon as that barcode is found.
-
-The related parameter is [`ExpectedBarcodesCount`]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/expected-barcodes-count.html). Note that it can be set to 0 or any natural number. DBR's behaviour is as follows:
-
-* `ExpectedBarcodesCount` is 0: DBR tries to localize barcodes with the first mode set in [LocalizationModes]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/localization-modes.html). If barcodes are found, the rest of the modes are skipped and the recognition starts right away.
-* `ExpectedBarcodesCount` is > 0: DBR tries to find as many barcodes as defined by this number. If enough barcodes have been found, the rest of the pending operations will be skipped. On the other hand, if the number of found barcodes is less than expected, DBR will exhaust all defined operations to find more until it times out.
-
-**Recommendation**
-
-* Do not set the number to exceed the actual number of barcodes on the image.
-* If you are not sure how many barcodes there might be, set `ExpectedBarcodesCount` to 0.
-* For interactive scenarios, set `ExpectedBarcodesCount` to 1.
-
-### Determine the appropriate binarization mode
-
-The binarization of the image is the basis for the localization of barcodes. Depending on the lighting conditions, we can choose either the mode [BM_THRESHOLD]({{ site.dcvb_parameters_reference }}image-parameter/binarization-modes.html#bm_threshold) or [BM_LOCAL_BLOCK]({{ site.dcvb_parameters_reference }}image-parameter/binarization-modes.html#bm_local_block) for the parameter [BinarizationModes]({{ site.dcvb_parameters_reference }}image-parameter/binarization-modes.html).
-
-**Recommendation**
-
-* If the images to be read are of high quality (acquired with good lighting conditions) like scanned documents, use `BM_THRESHOLD`. Otherwise, use `BM_LOCAL_BLOCK`.
-* Try not to set both modes since DBR might try both and it slows things down. If you must set both, set `BM_THRESHOLD` as the first option.
-
-### Adjust the localization modes
-
-A barcode is localized before it gets decoded. The localization process takes up a large portion of the overall time spent. We can adjust the localization modes to speed things up with its corresponding parameter [LocalizationModes]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/localization-modes.html).
-
-**Recommendation**
-
-* For interactive scenarios (reading from a video input), set `LM_SCAN_DIRECTLY` as the top priority, followed by `LM_CONNECTED_BLOCKS`.
-* For still image reading, use a mode based on the target barcode types then add `LM_CONNECTED_BLOCKS` as the back-up mode or set `LM_CONNECTED_BLOCKS` as the first mode followed by a mode for that specific barcode type. Read more on which mode matches up with which barcode types and how to tune up a mode at [Choose the optimum localization modes](#choose-the-optimum-localization-modes).
-
-### Configure the final decoding process with DeblurModes
-
-The parameter [DeblurModes]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/deblur-modes.html) is used to configure how DBR processes already-localized barcode zones (images cut around the barcode boundaries from the original image) to get the final results.
-
-Deblurring is the last configurable step before a barcode is decoded. DBR by default has all deblurring algorithms enabled so that it tries its best to decode each localized barcode zone. When speed is the priority over the other metrics, we can ask DBR to try just one or two of these modes by setting `DeblurModes`.
-
-**Recommendation**
-
-* For best speed and especially for interactive scenarios like reading from a video input, include only `DM_BASED_ON_LOC_BIN` and `DM_THRESHOLD_BINARIZATION` in the `DeblurModes` array.
-* If the image quality is not good enough, you can add one or a few of these modes `DM_DIRECT_BINARIZATION`, `DM_GRAY_EQUALIZATION`, `DM_SMOOTHING`, `DM_MORPHING`, `DM_SHARPENING` and `DM_SHARPENING_SMOOTHING` after the initial entries of the array. These modes will process the pixels in the localized barcode zones again for better recognition.
-* Avoid using the most time-consuming mode `DM_DEEP_ANALYSIS` which is designed for desperate scenarios where read rate is prioritized.
-
-### Optimize frames from a video input
-
-For interactive barcode reading from a video input, you get better speed if:
-
-* the camera that takes the best shot of the intended barcode(s) is used;
-* the video frames are clear;
-* the video frames are trimmed around the barcode(s) before submitted for barcode reading;
-* the video frames are provided in a way that reduces the waiting time of the barcode reading engine.
-
-The Dynamsoft Camera Enhancer SDK (DCE) is designed to do all the above like this:
-
-
-* it comes with camera control and is able to find and open the best suited camera by default (with support for manual adjustment too);
-* it has a lightspeed algorithm to detect whether a frame is blurry. Only clear frames are passed along to DBR (only supported on iOS & Android at present);
-* it can crop the video frames with a predefined scan region so that only the relevant part of the frames are passed to DBR;
-* it maintains a buffer of frames for DBR to fetch. This reduces the wait time to almost zero.
-
-In addition to the above, DCE also does the following (only supported on iOS & Android at present):
-
-* if a frame is blurred, it tells the camera to adjust its focus;
-* if DBR finds the barcode too small in the frame, DCE tells the camera to zoom in.
-
-**Recommendation**
-
-* Take advantage of DCE in interactive barcode reading.
-* Set a scan region with DCE and show an indicator of the region so that users know where to focus.
-* Try not to use very high resolutions unless absolutely necessary. The default 720P (1280 * 720) usually works fine for most scenarios.
-
-> Note that DCE and DBR run in parallel, so it's ok to enable more DCE features without affecting the overall speed.
-
-## Delve into the algorithm
-
-### Reduce the size of the image
-
-When locating barcodes, DBR scans the whole image, so the larger the size of the image, the more time it takes. To speed things up, we can reduce the size of the original image. Usually the reduction is done by scaling down a large image, or delimiting the region of interest. Let's explore each of those methods:
-
-#### Scale down a large image
-
-A barcode normally keeps its shape and can be read correctly even when the image gets scaled down. Therefore, DBR shrinks very large images before reading them. The parameter [ScaleDownThreshold]({{ site.dcvb_parameters_reference }}image-parameter/scale-down-threshold.html) can be used to determine the threshold beyond which the scale down happens.
-
-**Recommendation**
-
-Try not to set the threshold much lower than the default value as that might make the barcode too dense to be read.
-
-#### Delimit the region of interest
-
-When reading barcodes from a certain type of documents or from a video input, the barcode location can usually be predetermined. For example, the barcode on a patient registration form is most likely located in the top 20% of the document and the barcode that a user is trying to read from a video input is usually located at the center. In such cases, we can tell DBR to only read the specific region(s) of interest (ROIs).
-
-There are two ways to specify the region:
-
-* manually define a region by providing the coordinates of its contours. Each region is defined by a [TargetROIDef]({{ site.dcvb_parameters }}file/target-roi-definition/index.html) and then specified by [Location]({{ site.dcvb_parameters_reference }}target-roi-def/location.html);
-
-* let DBR find the region based on the colour/grayscale distribution of different parts of the image, this is controlled by the parameter [RegionPredetectionModes]({{ site.dcvb_parameters_reference }}image-parameter/region-predetection-modes.html).
-
-**Recommendation**
-
-Set a region manually if it is known that the barcode(s) will be in the general vicinity of the specified region.
-
-> NOTE
->
-> * With a template, DBR supports defining multiple zones on one image, so even if you want to scan multiple barcodes scattered on one image, you can still speed things up by delimiting the ROIs.
-> * If the region is certain and can be defined manually, manually defining the region can save more time than doing region predetection as that usually involves processing of multiple zones and chances are only one of these zones has the intended barcode.
-> * When reading barcodes from a video input, DCE can define the scan region itself. In this case, DBR no longer needs to specify a region. Read more on [Optimize frames from a video input](#optimize-frames-from-a-video-input).
-
-
-
-### Accelerate the image conversion
-
-The goal of preprocessing the original image is to convert it into a binarized image on which the barcodes are much easier to locate. In most cases, the original image is in color and it first gets converted into a grayscale image and then gets binarized.
-
-There are a few things we can do to speed things up in the preprocessing phase. Here are three of them:
-
-#### Select exact operation options
-
-DBR provides multiple options for each preprocessing operation and will go through all set options. For better speed, we should try to specify just one option for each of the following operations.
-
-*Convert the image to grayscale*
-
-If the original image is not a grayscale image, DBR will convert it to a grayscale image. After that, the barcode symbol is either lighter or darker than the background. We call a darker barcode a normal barcode and a lighter barcode an inverted barcode. When locating barcodes, DBR expects the barcodes to be normal. Therefore, if an image in fact has inverted barcodes, DBR needs to invert the color of the image in advance. This is controlled by the parameter [GrayscaleTransformationModes]({{ site.dcvb_parameters_reference }}image-parameter/grayscale-transformation-modes.html).
-
-**Recommendation**
-
-Depending on the images to read, specify either `GTM_ORIGINAL` or `GTM_INVERTED` . Do not specify both.
-
-*Enhance the grayscale image quality*
-
-The grayscale image converted from the original image can usually be used directly. But suppose your image has some distortion that can be solved by common image processing methods, the parameter [GrayscaleEnhancementModes]({{ site.dcvb_parameters_reference }}image-parameter/grayscale-enhancement-modes.html) can be set to allow extra operations for getting a higher-quality grayscale image.
-
-**Recommendation**
-
-In most cases, just use the default `GEM_GENERAL` mode. If necessary, specify only one out of the 5 available values `GEM_GENERAL` , `GEM_GRAY_EQUALIZE` , `GEM_GRAY_SMOOTH` , `GEM_SHARPEN_SMOOTH` , `GEM_MORPHOLOGY` based on your images. The more image preprocessing modes you specify, the worse that the speed might get.
-
-#### Remove texture and filter text
-
-The less the noise, the faster the localization. Use the parameters [TextureDetectionModes]({{ site.dcvb_parameters_reference }}image-parameter/texture-detection-modes.html) and [TextDetectionMode]({{ site.dcvb_parameters_reference }}image-parameter/text-detection-mode.html) to remove texture and filter text in the binarized image.
-
-**Recommendation**
-
-* For images with texture (such as images taken on the screen), enable texture detection with `TextureDetectionModes`. Read more on [How to Read Barcodes from Images with Different Textures]({{ site.features }}read-images-with-texture.html).
-* For images with lots of text, enable text filter with `TextFilterModes`. Read more on [How to Read Barcodes from an Image With Lots of Text]({{ site.features }}read-images-with-lots-of-text.html)
-
-#### Adapt image binarization for speed
-
-The image binarization is controlled by the parameter [BinarizationModes]({{ site.dcvb_parameters_reference }}image-parameter/binarization-modes.html). This has been discussed briefly above in [Determine the appropriate binarization mode](#determine-the-appropriate-binarization-mode) where the recommendation is to use either `BM_THRESHOLD` or `BM_LOCAL_BLOCK` . Here, we will examine some mode arguments that allow the modes to adapt to a speed-first application. Please refer to [Mode Arguments]({{ site.dcvb_parameters_reference }}image-parameter/binarization-modes.html#mode-arguments) for a quick look on the relationship between modes and mode arguments.
-
-* For `BM_THRESHOLD`, we can explicitly set a value to the argument `BinarizationThreshold` which dictates at which point a pixel is regarded as black/white. Generally we can just use the default value `-1` which allows DBR to calculate a proper threshold itself.
-
-* For `BM_LOCAL_BLOCK`, the block size should be set to an appropriate value (5 ~ 8 times the module size) with the arguments `BlockSizeX` & `BlockSizeY` and `EnableFillBinaryVacancy` should be set to `false`.
- + As long as the block is not too small, the smaller its size, the faster it gets.
- + If `BlockSizeX` & `BlockSizeY` are not set manually, DBR will determine their default values based on the size of the image.
- + If the block size is NOT set properly, it's likely that vacancies will appear in the barcode modules in the binarized image in which case filling up the vacancies can help with the decoding. This operation is enabled with the argument `EnableFillBinaryVacancy` . However, filling up the vacancies is a time-consuming operation and should be avoided if speed is the top priority.
-
-### Choose the optimum localization modes
-
-Now that we have a binarized image processed from the original image, we can start localizing the barcode zones. DBR comes with 8 options for the parameter [LocalizationModes]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/localization-modes.html#localizationmodes) which determines how the localization is done. Of the 8 modes, 3 of them are designed for one or a few types of barcodes:
-
-* `LM_ONED_FAST_SCAN` works best for linear or 1D barcodes that are of relatively high quality;
-* `LM_STATISTICS_MARKS` is meant for QR or DataMatrix barcodes generated by direct part marking (DPM);
-* `LM_STATISTICS_POSTAL_CODE` is meant for postal codes.
-
-The following 2 modes are designed for certain usage scenarios:
-* `LM_SCAN_DIRECTLY` can significantly speed things up in interactive scenarios (mostly for 1D, QR or PDF417 codes);
-* `LM_STATISTICS_CENTRE` is preferred when the barcodes appear at the center of the image (mostly for QR or DataMatrix codes).
-
-Last but not least, the following 3 modes are designed for general use:
-* `LM_CONNECTED_BLOCKS` usually gives the best results and should always be used as the top priority mode or at least as a back-up mode;
-* `LM_LINES` is a supplementary mode for `LM_CONNECTED_BLOCKS` and should always be used after `LM_CONNECTED_BLOCKS`;
-* `LM_STATISTICS` is the last resort to try finding the barcode(s) when none or not enough barcodes have been found. Therefore, it should always be used as the last mode.
-
-> NOTE:
->
-> * None of the first 5 modes should be used alone.
-> * The last 3 modes can be used for all types of barcodes and they all share the same design: scan the image once to find all types of barcodes. And because DBR scans for the characteristics of all types of barcodes at once, it doesn't need to process the same image twice or more times when different types of barcodes are required. In other words, whether you just need to scan barcodes of a particular type or multiple types, the time cost is almost the same.
-
-For certain barcode type(s) or usage scenarios, choosing one or two localization modes can significantly speed things up, check out [Adjust the localization modes](#adjust-the-localization-modes) on our recommended settings. In addition, when the target barcode shows more distinctive characteristics, a localization mode can be further customized for even better speed.
-
-* For `LM_ONED_FAST_SCAN` and `LM_SCAN_DIRECTLY`, you can set a bigger `ScanStride` and a fixed `ScanDirection`. For the former, you can also set a higher `MinLocalizationConfidence` .
-
-### Further improve the barcode zones for decoding
-
-After the localization, we have barcode zones located on an image. In this stage, these particular zones are cut from the image precisely on its boundaries. Then these images are preprocessed again before finally being passed (with barcode type information for each zone) to the next stage for decoding.
-
-The preprocessing consists of two operations
-
-* Detect the color of the zones and adjust it based on [BarcodeColourModes]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/barcode-colour-modes.html);
-* Detect the size of the zones and change it based on [ScaleUpModes]({{ site.dcvb_parameters_reference }}image-parameter/scale-up-modes.html).
-
-**Recommendation**
-
-Both adjusting the color and the size of the barcode zone(s) can take some time. For interactive scenarios it is recommended to skip these two operations to save time.
-
-### Expedite the actual barcode decoding
-
-After barcode zones have been preprocessed, we have well-partitioned images awaiting decoding. We know the type of the barcode on each partitioned image but the image itself could still be blurry, incomplete, or deformed. DBR has algorithms to handle all these situations with the parameters [DeblurModes]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/deblur-modes.html), [BarcodeComplementModes]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/barcode-complement-modes.html), and [DeformationResistingModes]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/deformation-resisting-modes.html).
-
-**Recommendation**
-
-* For best speed, we usually ignore images with bad quality, therefore we skip the steps defined by `BarcodeComplementModes` and `DeformationResistingModes`. Therefore, it is best to not use those parameters if you are looking for the best speed.
-* Also check out [Configure the last decoding process with DeblurModes](#configure-the-last-decoding-process-with-deblurmodes).
-
-
-## Alternative methods to help the speed
-
-### Unleash the power of the CPU
-
-The algorithm to process an image has quite a few steps and for each step, there could be multiple options to try. For processes that don't necessary need to wait for each other, we can tell DBR to open multiple threads/workers to work on different tasks at the same time. The related parameter is [`MaxThreadsInOneTask`]({{ site.dcvb_parameters_reference }}shared-parameter/max-threads-in-one-task.html). However, note that this is only meaningful on devices with a good CPU. On low-end desktops or mobile devices, it's better to limit the threads to 2 or even 1.
-
-Other than the built-in multi-threading, another way to speed things up is to create multiple DBR instances and have them decoding different images at the same time. The related parameter is [`MaxParallelTasks`]({{ site.dcvb_parameters_reference }}capture-vision-template/max-parallel-tasks.html)
-
-### Bypass time-consuming exceptions
-
-Sometimes, DBR may encoutner an image that is very challenging. The nature of DBR is to try its best at all costs, so it may take a really long time. Although the reading may eventually succeed, this probably isn't what we want for our application. Therefore, we can tell DBR to set a timer and stops a reading process once the timer expires.
-
-This is especially useful when it comes to continuous scanning of video frames as it makes no sense to spend too much time on one difficult frame when the next frame probably contains the same barcode(s).
-
-The parameter that controls that is [`Timeout`]({{ site.dcvb_parameters_reference }}capture-vision-template/timeout.html).
-
-**Recommendation**
-
-By default, the timeout is set to 10,000 milliseconds. By setting it to a smaller value (e.g. 1,000 milliseconds), we allow the SDK to move on to the next frame or image more quickly should the process be too time consuming.
-
-### Finish the reading prematurely
-
-Barcode reading usually ends with the output of the content of the barcode. However, it's not always the intended behavior. Sometimes an application could just be interested to learn the coordinates of a barcode or even just know that a barcode exists on the image or frame. Therefore, we can tell DBR to finish the reading prematurely and return what has been found right away.
-
-**Recommendation**
-
-[`TerminateSetting`]({{ site.dcvb_parameters_reference }}shared-parameter/terminate-setting.html) controls when the algorithm should stop. If, for instance, the purpose is to only locate the barcode, but not decode it, then you can set the `Section` parameter to `ST_BARCODE_LOCALIZATION`. This would skip the steps needed to determine the barcode type and decode it, thus saving you time in the long run.
-
-### Avoid disk writing operations
-
-Writing to the disk can be a time-consuming process. With DBR, disk writing happens when outputting logs, saving intermediate results, etc. In most cases, keeping a log or saving intermediate results to the disk is only required during development or debugging and should be avoided for production.
-
-### Fine-tune the performance further with FormatSpecification
-
-If even better speed is desired, we can set limitations on barcode searching for each type of barcodes so that DBR can quickly skip uninterested zones. The related parameters include [BarcodeAngleRangeArray]({{ site.dcvb_parameters_reference }}barcode-format-specification/barcode-angle-range-array.html), [BarcodeHeightRangeArray]({{ site.dcvb_parameters_reference }}barcode-format-specification/barcode-height-range-array.html), [BarcodeWidthRangeArray]({{ site.dcvb_parameters_reference }}barcode-format-specification/barcode-width-range-array.html), [BarcodeZoneBarCountRangeArray]({{ site.dcvb_parameters_reference }}barcode-format-specification/barcode-zone-bar-count-range-array.html) and [ModuleSizeRangeArray]({{ site.dcvb_parameters_reference }}barcode-format-specification/module-size-range-array.html), etc. Click each parameter to learn more about them and when to use them.
-
-## Summary
-
-In this article, we first talked about some obvious and effective ways to improve speed, then we went through the complete reading process and looked at most of the parameters that could impact speed. Lastly, we mentioned a few of the less traditional ways to speed things up.
-
-Depending on the actual image you are scanning or the usage scenario you are trying to cope with, you can experiment with these parameters to find the most suitable settings for the best speed. If you have any further questions, you can get in touch with [Dynamsoft Support](https://www.dynamsoft.com/contact/).
-
-In reality, accuracy and read rate matter too. Read our other documents dedicated to these two topics:
-
-* [How to boost Accuracy]({{ site.performance }}accuracy.html)
-* [How to boost Read Rate]({{ site.performance }}read-rate.html)
diff --git a/performance/speed-v9.6.42.md b/performance/speed-v9.6.42.md
deleted file mode 100644
index aa29ba3a..00000000
--- a/performance/speed-v9.6.42.md
+++ /dev/null
@@ -1,316 +0,0 @@
----
-layout: default-layout
-title: Speed - Dynamsoft Barcode Reader Performance
-description: This page shows how to adjust the settings to achieve best speed in barcode reading
-keywords: speed
-needAutoGenerateSidebar: true
-noTitleIndex: false
-breadcrumbText: Speed
----
-
-
-
-
-
-# How to Boost Barcode Reading Speed
-
-There are 3 basic metrics for measuring the performance of a barcode reader application: **speed**, **accuracy** and **read-rate**. The Dynamsoft Barcode Reader SDK (DBR) has been carefully designed to offer excellent performance in all three of these metrics. In this article, we investigate all the possible ways in which you can configure DBR to focus on **speed**.
-
-This guide explores how DBR can be used to its full-speed potential, and it will be divided into three sections: The first section addresses some of the common and simple methods you can use to effectively increase speed metrics. The second section delves into the various stages of DBR's algorithm and how we can improve the speed at each of the crucial stages. The third and last section will introduce some less popular and used methods that our SDK can use to potentially improve speed metrics if other methods are not sufficient.
-
-> The following shows the definition of the three metrics.
->
-> $ Speed = \frac{Number~of~All~Decoded~Barcode~Results}{Total~Time~Consumed} $
->
-> $ Accuracy = \frac{Number~of~Correctly~Decoded~Barcode~Results}{Number~of~All~Decoded~Barcode~Results} $
->
-> $ Read~Rate = \frac{Number~of~All~Decoded~Barcode~Results}{Number~of~All~Target~Barcodes} $
->
-> Do bear in mind that, if one of these metrics is prioritized, the other two may not be ideal.
-
-## Explore the common methods for better speed
-
-### Focus on the barcode types of interest
-
-This is probably the most natural setting to start with. By clearly telling DBR what it is looking for, it can quickly skip other types of barcodes that can potentially be on the same image or frame.
-
-The related parameters are [ `BarcodeFormatIds` ]({{ site.parameters_reference}}barcode-format-ids.html) and [ `BarcodeFormatIds_2` ]({{ site.parameters_reference}}barcode-format-ids-2.html) . The former parameter includes the most common barcode types and the latter includes the few unusual types that the SDK supports.
-
-**Recommendation**
-
-* Always specify the type(s) of the barcodes you are trying to read.
-
-### Set an upper limit to the number of barcodes per image
-
-By default, DBR tries to find as many barcodes as possible from a given image. Assume the image is very big but has only one barcode at the top, DBR finds the barcode instantly but will spend more time scanning the rest of the image or even try more steps to find more barcodes. By telling DBR that we are only expecting one barcode, it will stop reading the image as soon as that barcode is found.
-
-The related parameter is [`ExpectedBarcodesCount`]({{ site.parameters_reference}}expected-barcodes-count.html) . Note that it can be set to 0 or any natural number. DBR's behaviour is as follows:
-
-* `ExpectedBarcodesCount` is 0: DBR tries to localize barcodes with the first mode set in [LocalizationModes]({{ site.parameters_reference}}localization-modes.html#localizationmodes). If barcodes are found, the rest of the modes are skipped and the recognition starts right away.
-* `ExpectedBarcodesCount` is > 0: DBR tries to find as many barcodes as defined by this number. If enough barcodes have been found, the rest of the pending operations will be skipped. On the other hand, if the number of found barcodes is less than expected, DBR will exhaust all defined operations to find more until it times out.
-
-**Recommendation**
-
-* Do not set the number to exceed the actual number of barcodes on the image.
-* If you are not sure how many barcodes there might be, set `ExpectedBarcodesCount` to 0.
-* For interactive scenarios, set `ExpectedBarcodesCount` to 1.
-
-### Determine the appropriate binarization mode
-
-The binarization of the image is the basis for the localization of barcodes. Depending on the lighting conditions, we can choose either the mode [BM_THRESHOLD]({{ site.parameters_reference }}binarization-modes.html#bm_threshold) or [BM_LOCAL_BLOCK]({{ site.parameters_reference }}binarization-modes.html#bm_local_block) for the parameter [BinarizationModes]({{ site.parameters_reference }}binarization-modes.html).
-
-**Recommendation**
-
-* If the images to be read are of high quality (acquired with good lighting conditions) like scanned documents, use `BM_THRESHOLD`. Otherwise, use `BM_LOCAL_BLOCK`.
-* Try not to set both modes since DBR might try both and it slows things down. If you must set both, set `BM_THRESHOLD` as the first option.
-
-### Adjust the localization modes
-
-A barcode is localized before it gets decoded. The localization process takes up a large portion of the overall time spent. We can adjust the localization modes to speed things up with its corresponding parameter [LocalizationModes]({{ site.parameters_reference}}localization-modes.html#localizationmodes).
-
-**Recommendation**
-
-* For interactive scenarios (reading from a video input), set `LM_SCAN_DIRECTLY` as the top priority, followed by `LM_CONNECTED_BLOCKS`.
-* For still image reading, use a mode based on the target barcode types then add `LM_CONNECTED_BLOCKS` as the back-up mode or set `LM_CONNECTED_BLOCKS` as the first mode followed by a mode for that specific barcode type. Read more on which mode matches up with which barcode types and how to tune up a mode at [Choose the optimum localization modes](#choose-the-optimum-localization-modes).
-
-### Configure the final decoding process with DeblurModes
-
-The parameter [DeblurModes]({{ site.parameters_reference}}deblur-modes.html#deblurmodes) is used to configure how DBR processes already-localized barcode zones (images cut around the barcode boundaries from the original image) to get the final results.
-
-Deblurring is the last configurable step before a barcode is decoded. DBR by default has all deblurring algorithms enabled so that it tries its best to decode each localized barcode zone. When speed is the priority over the other metrics, we can ask DBR to try just one or two of these modes by setting `DeblurModes`.
-
-**Recommendation**
-
-* For best speed and especially for interactive scenarios like reading from a video input, include only `DM_BASED_ON_LOC_BIN` and `DM_THRESHOLD_BINARIZATION` in the `DeblurModes` array.
-* If the image quality is not good enough, you can add one or a few of these modes `DM_DIRECT_BINARIZATION`, `DM_GRAY_EQUALIZATION`, `DM_SMOOTHING`, `DM_MORPHING`, `DM_SHARPENING` and `DM_SHARPENING_SMOOTHING` after the initial entries of the array. These modes will process the pixels in the localized barcode zones again for better recognition.
-* Avoid using the most time-consuming mode `DM_DEEP_ANALYSIS` which is designed for desperate scenarios where read rate is prioritized.
-
-### Optimize frames from a video input
-
-For interactive barcode reading from a video input, you get better speed if:
-
-* the camera that takes the best shot of the intended barcode(s) is used;
-* the video frames are clear;
-* the video frames are trimmed around the barcode(s) before submitted for barcode reading;
-* the video frames are provided in a way that reduces the waiting time of the barcode reading engine.
-
-The [Dynamsoft Camera Enhancer SDK](https://www.dynamsoft.com/camera-enhancer/docs/introduction/) (DCE) is designed to do all the above like this:
-
-> NOTE: DCE is available in the SDK packages of DBR iOS v8.2.1+, DBR Android v8.2.1+ and DLR ([Dynamsoft Label Recognizer](https://www.dynamsoft.com/label-recognition/programming/javascript/user-guide.html)) JavaScript v2.2+. Also, the logic is built into the `BarcodeScanner` class of DBR JavaScript v8.6.0+.
-
-* it comes with camera control and is able to find and open the best suited camera by default (with support for manual adjustment too);
-* it has a lightspeed algorithm to detect whether a frame is blurry. Only clear frames are passed along to DBR (only supported on iOS & Android at present);
-* it can crop the video frames with a predefined scan region so that only the relevant part of the frames are passed to DBR;
-* it maintains a buffer of frames for DBR to fetch. This reduces the wait time to almost zero.
-
-In addition to the above, DCE also does the following (only supported on iOS & Android at present):
-
-* if a frame is blurred, it tells the camera to adjust its focus;
-* if DBR finds the barcode too small in the frame, DCE tells the camera to zoom in.
-
-**Recommendation**
-
-* Take advantage of DCE in interactive barcode reading.
-* Set a scan region with DCE and show an indicator of the region so that users know where to focus.
-* Try not to use very high resolutions unless absolutely necessary. The default 720P (1280 * 720) usually works fine for most scenarios.
-
-> Note that DCE and DBR run in parallel, so it's ok to enable more DCE features without affecting the overall speed.
-
-## Delve into the algorithm
-
-### Reduce the size of the image
-
-When locating barcodes, DBR scans the whole image, so the larger the size of the image, the more time it takes. To speed things up, we can reduce the size of the original image. Usually the reduction is done by scaling down a large image, or delimiting the region of interest. Let's explore each of those methods:
-
-#### Scale down a large image
-
-A barcode normally keeps its shape and can be read correctly even when the image gets scaled down. Therefore, DBR shrinks very large images before reading them. The parameter [ScaleDownThreshold]({{ site.parameters_reference}}scale-down-threshold.html) can be used to determine the threshold beyond which the scale down happens.
-
-**Recommendation**
-
-Try not to set the threshold much lower than the default value as that might make the barcode too dense to be read.
-
-#### Delimit the region of interest
-
-When reading barcodes from a certain type of documents or from a video input, the barcode location can usually be predetermined. For example, the barcode on a patient registration form is most likely located in the top 20% of the document and the barcode that a user is trying to read from a video input is usually located at the center. In such cases, we can tell DBR to only read the specific region(s) of interest (ROIs).
-
-There are two ways to specify the region:
-
-* manually define a region by providing the coordinates of its contours. Each region is defined by a [RegionDefinition]({{ site.parameters_reference}}region-definition/index.html) and then specified by [RegionDefinitionNameArray]({{ site.parameters_reference}}image-parameter/index.html#regiondefinitionnamearray);
- > In runtime settings, the related parameter is [`Region`]({{ site.parameters_reference}}region.html) .
-
-* let DBR find the region based on the colour/grayscale distribution of different parts of the image, this is controlled by the parameter [RegionPredetectionModes]({{ site.parameters_reference}}region-predetection-modes.html#regionpredetectionmodes).
-
-**Recommendation**
-
-Set a region manually if it is known that the barcode(s) will be in the general vicinity of the specified region.
-
-> NOTE
->
-> * With a template, DBR supports defining multiple zones on one image, so even if you want to scan multiple barcodes scattered on one image, you can still speed things up by delimiting the ROIs.
-> * If the region is certain and can be defined manually, manually defining the region can save more time than doing region predetection as that usually involves processing of multiple zones and chances are only one of these zones has the intended barcode.
-> * When reading barcodes from a video input, DCE can define the scan region itself. In this case, DBR no longer needs to specify a region. Read more on [Optimize frames from a video input](#optimize-frames-from-a-video-input).
-
-
-
-### Accelerate the image conversion
-
-The goal of preprocessing the original image is to convert it into a binarized image on which the barcodes are much easier to locate. In most cases, the original image is in color and it first gets converted into a grayscale image and then gets binarized.
-
-There are a few things we can do to speed things up in the preprocessing phase. Here are three of them:
-
-#### Select exact operation options
-
-DBR provides multiple options for each preprocessing operation and will go through all set options. For better speed, we should try to specify just one option for each of the following operations.
-
-*Convert the image to grayscale*
-
-If the original image is not a grayscale image, DBR will convert it to a grayscale image. After that, the barcode symbol is either lighter or darker than the background. We call a darker barcode a normal barcode and a lighter barcode an inverted barcode. When locating barcodes, DBR expects the barcodes to be normal. Therefore, if an image in fact has inverted barcodes, DBR needs to invert the color of the image in advance. This is controlled by the parameter [GrayscaleTransformationModes]({{ site.parameters_reference}}grayscale-transformation-modes.html).
-
-**Recommendation**
-
-Depending on the images to read, specify either `GTM_ORIGINAL` or `GTM_INVERTED` . Do not specify both.
-
-*Enhance the grayscale image quality*
-
-The grayscale image converted from the original image can usually be used directly. But suppose your image has some distortion that can be solved by common image processing methods, the parameter [ImagePreprocessingModes]({{ site.parameters_reference}}image-preprocessing-modes.html#imagepreprocessingmodes) can be set to allow extra operations for getting a higher-quality grayscale image.
-
-**Recommendation**
-
-In most cases, just use the default `IPM_GENERAL` mode. If necessary, specify only one out of the 5 available values `IPM_GENERAL` , `IPM_GRAY_EQUALIZE` , `IPM_GRAY_SMOOTH` , `IPM_SHARPEN_SMOOTH` , `IPM_MORPHOLOGY` based on your images. The more image preprocessing modes you specify, the worse that the speed might get.
-
-#### Remove texture and filter text
-
-The less the noise, the faster the localization. Use the parameters [TextureDetectionModes]({{ site.parameters_reference}}texture-detection-modes.html#texturedetectionmodes) and [TextFilterModes]({{ site.parameters_reference}}text-filter-modes.html#textfiltermodes) to remove texture and filter text in the binarized image.
-
-**Recommendation**
-
-* For images with texture (such as images taken on the screen), enable texture detection with `TextureDetectionModes`. Read more on [How to deal with image textures](https://www.dynamsoft.com/barcode-reader/parameters/scenario-settings/texture-detection.html#).
-* For images with lots of text, enable text filter with `TextFilterModes`. Read more on [How to filter text in an image](https://www.dynamsoft.com/barcode-reader/parameters/scenario-settings/text-filter.html#)
-
-#### Adapt image binarization for speed
-
-The image binarization is controlled by the parameter [BinarizationModes]({{ site.parameters_reference}}binarization-modes.html#binarizationmodes). This has been discussed briefly above in [Determine the appropriate binarization mode](#determine-the-appropriate-binarization-mode) where the recommendation is to use either `BM_THRESHOLD` or `BM_LOCAL_BLOCK` . Here, we will examine some mode arguments that allow the modes to adapt to a speed-first application. For a quick look on the relationship between modes and mode arguments, please refer to this [page](https://www.dynamsoft.com/barcode-reader/parameters/enum/parameter-mode-enums.html).
-
-* For `BM_THRESHOLD`, we can explicitly set a value to the argument `BinarizationThreshold` which dictates at which point a pixel is regarded as black/white. Generally we can just use the default value `-1` which allows DBR to calculate a proper threshold itself.
-
-* For `BM_LOCAL_BLOCK`, the block size should be set to an appropriate value (5 ~ 8 times the module size) with the arguments `BlockSizeX` & `BlockSizeY` and `EnableFillBinaryVacancy` should be set to `false`.
- + As long as the block is not too small, the smaller its size, the faster it gets.
- + If `BlockSizeX` & `BlockSizeY` are not set manually, DBR will determine their default values based on the size of the image.
- + If the block size is NOT set properly, it's likely that vacancies will appear in the barcode modules in the binarized image in which case filling up the vacancies can help with the decoding. This operation is enabled with the argument `EnableFillBinaryVacancy` . However, filling up the vacancies is a time-consuming operation and should be avoided if speed is the top priority.
-
-### Choose the optimum localization modes
-
-Now that we have a binarized image processed from the original image, we can start localizing the barcode zones. DBR comes with 8 options for the parameter [LocalizationModes]({{ site.parameters_reference}}localization-modes.html#localizationmodes) which determines how the localization is done. Of the 8 modes, 3 of them are designed for one or a few types of barcodes:
-
-* `LM_ONED_FAST_SCAN` works best for linear or 1D barcodes that are of relatively high quality;
-* `LM_STATISTICS_MARKS` is meant for QR or DataMatrix barcodes generated by direct part marking (DPM);
-* `LM_STATISTICS_POSTAL_CODE` is meant for postal codes.
-
-The following 2 modes are designed for certain usage scenarios:
-* `LM_SCAN_DIRECTLY` can significantly speed things up in interactive scenarios (mostly for 1D, QR or PDF417 codes);
-* `LM_STATISTICS_CENTRE` is preferred when the barcodes appear at the center of the image (mostly for QR or DataMatrix codes).
-
-Last but not least, the following 3 modes are designed for general use:
-* `LM_CONNECTED_BLOCKS` usually gives the best results and should always be used as the top priority mode or at least as a back-up mode;
-* `LM_LINES` is a supplementary mode for `LM_CONNECTED_BLOCKS` and should always be used after `LM_CONNECTED_BLOCKS`;
-* `LM_STATISTICS` is the last resort to try finding the barcode(s) when none or not enough barcodes have been found. Therefore, it should always be used as the last mode.
-
-> NOTE:
->
-> * None of the first 5 modes should be used alone.
-> * The last 3 modes can be used for all types of barcodes and they all share the same design: scan the image once to find all types of barcodes. And because DBR scans for the characteristics of all types of barcodes at once, it doesn't need to process the same image twice or more times when different types of barcodes are required. In other words, whether you just need to scan barcodes of a particular type or multiple types, the time cost is almost the same.
-
-For certain barcode type(s) or usage scenarios, choosing one or two localization modes can significantly speed things up, check out [Adjust the localization modes](#adjust-the-localization-modes) on our recommended settings. In addition, when the target barcode shows more distinctive characteristics, a localization mode can be further customized for even better speed.
-
-* For `LM_ONED_FAST_SCAN` and `LM_SCAN_DIRECTLY`, you can set a bigger `ScanStride` and a fixed `ScanDirection`. For the former, you can also set a higher `MinLocalizationConfidence` .
-* For all modes, if the default algorithm doesn't seem fast enough, you can change how it is done by specifying an alternative library with `LibraryFileName` and set it up with `LibraryParameters`.
-
-### Further improve the barcode zones for decoding
-
-After the localization, we have barcode zones located on an image. In this stage, these particular zones are cut from the image precisely on its boundaries. Then these images are preprocessed again before finally being passed (with barcode type information for each zone) to the next stage for decoding.
-
-The preprocessing consists of two operations
-
-* Detect the color of the zones and adjust it based on [BarcodeColourModes]({{ site.parameters_reference}}barcode-colour-modes.html#barcodecolourmodes);
-* Detect the size of the zones and change it based on [ScaleUpModes]({{ site.parameters_reference}}scale-up-modes.html).
-
-**Recommendation**
-
-Both adjusting the color and the size of the barcode zone(s) can take some time. For interactive scenarios it is recommended to skip these two operations to save time.
-
-### Expedite the actual barcode decoding
-
-After barcode zones have been preprocessed, we have well-partitioned images awaiting decoding. We know the type of the barcode on each partitioned image but the image itself could still be blurry, incomplete, or deformed. DBR has algorithms to handle all these situations with the parameters [DeblurModes]({{ site.parameters_reference}}deblur-modes.html#deblurmodes), [BarcodeComplementModes]({{ site.parameters_reference}}barcode-complement-modes.html#barcodecomplementmodes), and [DeformationResistingModes]({{ site.parameters_reference}}deformation-resisting-modes.html#deformationresistingmodes).
-
-**Recommendation**
-
-* For best speed, we usually ignore images with bad quality, therefore we skip the steps defined by `BarcodeComplementModes` and `DeformationResistingModes`. Therefore, it is best to not use those parameters if you are looking for the best speed.
-* Also check out [Configure the last decoding process with DeblurModes](#configure-the-last-decoding-process-with-deblurmodes).
-
-## Alternative methods to help the speed
-
-### Unleash the power of the CPU
-
-The algorithm to process an image has quite a few steps and for each step, there could be multiple options to try. For processes that don't necessary need to wait for each other, we can tell DBR to open multiple threads/workers to work on different tasks at the same time. The related parameter is [`MaxAlgorithmThreadCount`]({{ site.parameters_reference}}max-algorithm-thread-count.html). However, note that this is only meaningful on devices with a good CPU. On low-end desktops or mobile devices, it's better to limit the threads to 2 or even 1.
-
-Other than the built-in multi-threading, another way to speed things up is to create multiple DBR instances and have them decoding different images at the same time.
-
-### Bypass time-consuming exceptions
-
-Sometimes, DBR may encoutner an image that is very challenging. The nature of DBR is to try its best at all costs, so it may take a really long time. Although the reading may eventually succeed, this probably isn't what we want for our application. Therefore, we can tell DBR to set a timer and stops a reading process once the timer expires.
-
-This is especially useful when it comes to continuous scanning of video frames as it makes no sense to spend too much time on one difficult frame when the next frame probably contains the same barcode(s).
-
-The parameter that controls that is [`Timeout`]({{ site.parameters_reference}}time-out.html).
-
-**Recommendation**
-
-By default, the timeout is set to 10,000 milliseconds. By setting it to a smaller value (e.g. 1,000 milliseconds), we allow the SDK to move on to the next frame or image more quickly should the process be too time consuming.
-
-### Finish the reading prematurely
-
-Barcode reading usually ends with the output of the content of the barcode. However, it's not always the intended behavior. Sometimes an application could just be interested to learn the coordinates of a barcode or even just know that a barcode exists on the image or frame. Therefore, we can tell DBR to finish the reading prematurely and return what has been found right away.
-
-**Recommendation**
-
-[`TerminatePhase`]({{ site.parameters_reference}}terminate-phase.html) controls when the algorithm should stop. If, for instance, the purpose is to only locate the barcode, but not decode it, then you can set the `TerminatePhase` parameter to `TP_BARCODE_LOCALIZED`. This would skip the steps needed to determine the barcode type and decode it, thus saving you time in the long run.
-
-### Avoid disk writing operations
-
-Writing to the disk can be a time-consuming process. With DBR, disk writing happens when outputting logs, saving intermediate results, etc. In most cases, keeping a log or saving intermediate results to the disk is only required during development or debugging and should be avoided for production.
-
-**Recommendation**
-
-To control whether or not intermediate results should be collected, please set the [`IntermediateResultTypes`]({{ site.parameters_reference}}intermediate-result-types.html) to `IRT_NO_RESULT` (the default value). Should you choose to collect intermediate results, then the [`IntermediateResultSavingMode`]({{ site.parameters_reference}}intermediate-result-saving-mode.html) should be set to `IRSM_MEMORY` as it is less time consuming than `IRSM_FILESYSTEM`.
-
-### Fine-tune the performance further with FormatSpecification
-
-If even better speed is desired, we can set limitations on barcode searching for each type of barcodes so that DBR can quickly skip uninterested zones. The related parameters include [BarcodeAngleRangeArray]({{ site.parameters_reference }}barcode-angle-range-array.html), [BarcodeHeightRangeArray]({{ site.parameters_reference }}barcode-height-range-array.html), [BarcodeWidthRangeArray]({{ site.parameters_reference }}barcode-width-range-array.html), [BarcodeZoneBarCountRangeArray]({{ site.parameters_reference }}barcode-zone-bar-count-range-array.html) and [ModuleSizeRangeArray]({{ site.parameters_reference }}module-size-range-array.html), etc. Click each parameter to learn more about them and when to use them.
-
-## Summary
-
-In this article, we first talked about some obvious and effective ways to improve speed, then we went through the complete reading process and looked at most of the parameters that could impact speed. Lastly, we mentioned a few of the less traditional ways to speed things up.
-
-Depending on the actual image you are scanning or the usage scenario you are trying to cope with, you can experiment with these parameters to find the most suitable settings for the best speed. If you have any further questions, you can get in touch with [Dynamsoft Support](https://www.dynamsoft.com/contact/).
-
-In reality, accuracy and read rate matter too. Read our other documents dedicated to these two topics:
-
-* [How to boost Accuracy]({{ site.performance }}accuracy.html)
-* [How to boost Read Rate]({{ site.performance }}read-rate.html)
diff --git a/programming/features/barcode-formats-and-count-v9.6.42.md b/programming/features/barcode-formats-and-count-v9.6.42.md
deleted file mode 100644
index 38544d17..00000000
--- a/programming/features/barcode-formats-and-count-v9.6.42.md
+++ /dev/null
@@ -1,249 +0,0 @@
----
-layout: default-layout
-title: Barcode Formats and Count - Dynamsoft Barcode Reader SDK
-description: This page describes how to set barcode formats and count in Dynamsoft Barcode Reader SDK.
-keywords: Barcode Formats, Expected Count
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# Specify Barcode Formats and Count
-
-## Set Barcode Formats
-
-Specifying the barcode format is always the first step when it comes to the configuration of DBR. Be sure to confirm that the target barcode formats are indeed supported by DBR by checking our [list of supported barcode types](https://www.dynamsoft.com/barcode-types/). Excluding undesired barcode types will improve the processing efficiency. Generally, the barcode format settings are updated via `PublicRuntimeSettings` class by specifying enumeration member of `BarcodeFormat` or `BarcodeFormat_2`.
-
-
- >- JavaScript
- >- Android
- >- Objective-C
- >- Swift
- >- Python
- >- Java
- >- C#
- >- C++
- >- C
- >
->
-```javascript
-// Obtain current runtime settings of `reader` instance.
-let settings = await scanner.getRuntimeSettings();
-// Specify the barcode formats by enumeration values.
-// There are two enumerations storing all supported barcode formats and each one needs to be set individually.
-// Use "|" to enable multiple barcode formats at one time.
-settings.barcodeFormatIds = Dynamsoft.DBR.EnumBarcodeFormat.BF_ONED | Dynamsoft.DBR.EnumBarcodeFormat.BF_QR_CODE;
-settings.barcodeFormatIds_2 = Dynamsoft.DBR.EnumBarcodeFormat_2.BF2_POSTALCODE;
-// Update the settings.
-await scanner.updateRuntimeSettings(settings);
-```
->
-```java
-// Obtain current runtime settings of `reader` instance.
-PublicRuntimeSettings settings = reader.getRuntimeSettings();
-// Specify the barcode formats by enumeration values.
-// There are two enumerations storing all supported barcode formats and each one needs to be set individually.
-// Use "|" to enable multiple barcode formats at one time.
-settings.barcodeFormatIds = EnumBarcodeFormat.BF_QR_CODE | EnumBarcodeFormat.BF_ONED;
-settings.barcodeFormatIds_2 = EnumBarcodeFormat_2.BF2_POSTALCODE;
-// Update the settings.
-reader.updateRuntimeSettings(settings);
-```
->
-```objc
-NSError* err = nil;
-// Obtain current runtime settings of `reader` instance.
-iPublicRuntimeSettings* settings = [reader getRuntimeSettings:&err];
-// Specify the barcode formats by enumeration values.
-// There are two enumerations storing all supported barcode formats and each one needs to be set individually.
-// Use "|" to enable multiple barcode formats at one time.
-settings.barcodeFormatIds = EnumBarcodeFormatQRCODE | EnumBarcodeFormatONED;
-settings.barcodeFormatIds_2 = EnumBarcodeFormat2POSTALCODE;
-// Update the settings.
-[reader updateRuntimeSettings:settings error:&err];
-```
->
-```swift
-// Obtain current runtime settings of `barcodeReader` instance.
-let settings = try? barcodeReader.getRuntimeSettings()
-// Specify the barcode formats by enumeration values.
-// There are two enumerations storing all supported barcode formats and each one needs to be set individually.
-// Use "|" to enable multiple barcode formats at one time.
-settings?.barcodeFormatIds = EnumBarcodeFormat.ONED.rawValue | EnumBarcodeFormat.QRCODE.rawValue
-settings?.barcodeFormatIds_2 = EnumBarcodeFormat2.POSTALCODE.rawValue
-// Update the settings.
-try? barcodeReader.updateRuntimeSettings(settings!)
-```
->
-```python
-# Obtain current runtime settings of `reader` instance.
-settings = reader.get_runtime_settings()
-# Specify the barcode formats by enumeration values.
-# There are two enumerations storing all supported barcode formats and each one needs to be set individually.
-# Use "|" to enable multiple barcode formats at one time.
-settings.barcode_format_ids = EnumBarcodeFormat.BF_ONED | EnumBarcodeFormat.BF_QR_CODE
-settings.barcode_format_ids_2 = EnumBarcodeFormat_2.BF2_POSTALCODE
-# Update the settings.
-reader.update_runtime_settings(settings)
-```
->
-```java
-// Obtain current runtime settings of `reader` instance.
-PublicRuntimeSettings settings = reader.getRuntimeSettings();
-// Specify the barcode formats by enumeration values.
-// There are two enumerations storing all supported barcode formats and each one needs to be set individually.
-// Use "|" to enable multiple barcode formats at one time.
-settings.barcodeFormatIds = EnumBarcodeFormat.BF_ONED | EnumBarcodeFormat.BF_QR_CODE;
-settings.barcodeFormatIds_2 = EnumBarcodeFormat_2.BF2_POSTALCODE;
-// Update the settings.
-reader.updateRuntimeSettings(settings);
-```
->
-```csharp
-// Obtain current runtime settings of `reader` instance.
-PublicRuntimeSettings settings = reader.GetRuntimeSettings();
-// Specify the barcode formats by enumeration values.
-// There are two enumerations storing all supported barcode formats and each one needs to be set individually.
-// Use "|" to enable multiple barcode formats at one time.
-settings.BarcodeFormatIds = (int)(EnumBarcodeFormat.BF_QR_CODE | EnumBarcodeFormat.BF_ONED);
-settings.BarcodeFormatIds_2 = (int)(EnumBarcodeFormat_2.BF2_POSTALCODE);
-// Update the settings.
-reader.UpdateRuntimeSettings(settings);
-```
->
-```c++
-PublicRuntimeSettings settings;
-char szErrorMsg[256] = {0};
-// Obtain current runtime settings of `reader` instance.
-reader.GetRuntimeSettings(&settings);
-// Specify the barcode formats by enumeration values.
-// There are two enumerations storing all supported barcode formats and each one needs to be set individually.
-// Use "|" to enable multiple barcode formats at one time.
-settings.barcodeFormatIds = BF_QR_CODE | BF_ONED;
-settings.barcodeFormatIds_2 = BF2_POSTALCODE;
-// Update the settings.
-reader.UpdateRuntimeSettings(&settings, szErrorMsg, 256);
-```
->
-```c
-PublicRuntimeSettings settings;
-char szErrorMsg[256] = {0};
-// Obtain current runtime settings of `reader` instance.
-DBR_GetRuntimeSettings(reader, &settings);
-// Specify the barcode formats by enumeration values.
-// There are two enumerations storing all supported barcode formats and each one needs to be set individually.
-// Use "|" to enable multiple barcode formats at one time.
-settings.barcodeFormatIds = BF_QR_CODE | BF_ONED;
-settings.barcodeFormatIds_2 = BF2_POSTALCODE;
-// Update the settings.
-DBR_UpdateRuntimeSettings(reader, &settings, szErrorMsg, 256);
-```
-
-## Set Barcode Count
-
-The `ExpectedBarcodesCount` parameter controls the number of expected results of the recognized barcodes via barcode reader from a single image. The process will be stopped as soon as the count of successfully decoded barcodes reaches the expected amount.
-
-There are some suggestions on how to set the `ExpectedBarcodesCount`:
-
-- When your project is designed for decoding a **single** barcode per image or frame, the recommended `ExpectedBarcodesCount` is **1**. This will sharply improve the processing speed.
-- When there are **n** barcodes in a single image or frame (**n** is a fixed number) and you'd like the barcode reader to decode **all of them**, the recommended `ExpectedBarcodesCount` is **n**.
-- When the number of barcodes is unknown and you want to output **as many** barcode results as possible, you can set the `ExpectedBarcodesCount` to the **maximum possible value** of `ExpectedBarcodesCount`.
-- When the number of barcodes is unknown and you want to output **at least one** barcode result as **soon** as possible, you can set the `ExpectedBarcodesCount` to **0**. The barcode reader will try to decode at least one barcode from the image.
-
-
- >- JavaScript
- >- Android
- >- Objective-C
- >- Swift
- >- Python
- >- Java
- >- C#
- >- C++
- >- C
- >
->
-```javascript
-// Obtain current runtime settings of `reader` instance.
-let settings = await scanner.getRuntimeSettings();
-// Set the expected barcode count
-settings.expectedBarcodesCount = 0;
-// Update the settings.
-await scanner.updateRuntimeSettings(settings);
-```
->
-```java
-// Obtain current runtime settings of `reader` instance.
-PublicRuntimeSettings settings = reader.getRuntimeSettings();
-// Set the expected barcode count
-settings.expectedBarcodesCount = 0;
-// Update the settings.
-reader.updateRuntimeSettings(settings);
-```
->
-```objc
-NSError* err = nil;
-// Obtain current runtime settings of `reader` instance.
-iPublicRuntimeSettings* settings = [reader getRuntimeSettings:&err];
-// Set the expected barcode count
-settings.expectedBarcodesCount = 0;
-// Update the settings.
-[reader updateRuntimeSettings:settings error:&err];
-```
->
-```swift
-// Obtain current runtime settings of `barcodeReader` instance.
-let settings = try? barcodeReader.getRuntimeSettings()
-// Set the expected barcode count
-settings.expectedBarcodesCount = 0
-// Update the settings.
-try? barcodeReader.updateRuntimeSettings(settings!)
-```
->
-```python
-# Obtain current runtime settings of `reader` instance.
-settings = reader.get_runtime_settings()
-# Set the expected barcode count
-settings.expected_barcodes_count = 0;
-# Update the settings.
-reader.update_runtime_settings(settings)
-```
->
-```java
-// Obtain current runtime settings of `reader` instance.
-PublicRuntimeSettings settings = reader.getRuntimeSettings();
-// Set the expected barcode count
-settings.expectedBarcodesCount = 0;
-// Update the settings.
-reader.updateRuntimeSettings(settings);
-```
->
-```csharp
-// Obtain current runtime settings of `reader` instance.
-PublicRuntimeSettings settings = reader.GetRuntimeSettings();
-// Set the expected barcode count
-settings.ExpectedBarcodesCount = 0;
-// Update the settings.
-reader.UpdateRuntimeSettings(settings);
-```
->
-```c++
-PublicRuntimeSettings settings;
-char szErrorMsg[256] = {0};
-// Obtain current runtime settings of `reader` instance.
-reader.GetRuntimeSettings(&settings);
-// Set the expected barcode count
-settings.expectedBarcodesCount = 0;
-// Update the settings.
-reader.UpdateRuntimeSettings(&settings, szErrorMsg, 256);
-```
->
-```c
-PublicRuntimeSettings settings;
-char szErrorMsg[256] = {0};
-// Obtain current runtime settings of `reader` instance.
-DBR_GetRuntimeSettings(reader, &settings);
-// Set the expected barcode count
-settings.expectedBarcodesCount = 0;
-// Update the settings.
-DBR_UpdateRuntimeSettings(reader, &settings, szErrorMsg, 256);
-```
diff --git a/programming/features/barcode-scan-region-mobile-v9.6.42.md b/programming/features/barcode-scan-region-mobile-v9.6.42.md
deleted file mode 100644
index 7cb48687..00000000
--- a/programming/features/barcode-scan-region-mobile-v9.6.42.md
+++ /dev/null
@@ -1,183 +0,0 @@
----
-layout: default-layout
-title: Read Barcodes from Specific Area/Region on Mobile
-description: This page describes how to read specific area or region in Dynamsoft Barcode Reader SDK.
-keywords: Specific Area/Region
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# How to Read Barcodes from a Specific Area/Region
-
-## Read from a specific region of an image
-
-DBR will locate the code region and decode the entire image by default. However, if only a specific region of the image or video is required to locate the barcode, you can define a Region Of Interest (ROI) via the parameter `RegionDefinition`. After defining a specific region, DBR will only decode barcodes within that region. Of course, this is very conducive to increasing the speed.
-
-`RegionDefinition` is the struct that is designed to specify the ROI.
-
-- `regionTop`: The y coordinate of the Top border of the region.
-- `regionBottom`: The y coordinate of the Bottom border of the region.
-- `regionLeft`: The x coordinate of the left border of the region.
-- `regionRight`: The x coordinate of the right border of the region.
-- `regionMeasuredByPercentage`: If measured by percentage, the above values will be recognized as percentages (1 to 100). Otherwise, the above values will be recognized as pixel length.
-
-> Notes:
->
-> - You can either configure these settings via the `PublicRuntimeSettings` struct or via a JSON template.
-> - When using `PublicRuntimeSettings`, you can only specify one region.
-> - When using JSON template, you can specify more than one region.
-
-### Single Region Specification
-
-To update the setting via `PublicRuntimeSettings`:
-
-
- >- Android
- >- Objective-C
- >- Swift
- >
->
-```java
-// Obtain current runtime settings of `reader` instance.
-PublicRuntimeSettings settings = reader.getRuntimeSettings();
-settings.region.regionTop = 10;
-settings.region.regionBottom = 90;
-settings.region.regionLeft = 10;
-settings.region.regionRight = 90;
-settings.region.regionMeasuredByPercentage = 1;
-settings.barcodeFormatIds = EnumBarcodeFormat.BF_QR_CODE | EnumBarcodeFormat.BF_ONED;
-// Update the settings.
-reader.updateRuntimeSettings(settings);
-```
->
-```objc
-NSError* err = nil;
-// Obtain current runtime settings of `reader` instance.
-iPublicRuntimeSettings* settings = [reader getRuntimeSettings:&err];
-settings.region.regionTop = 10;
-settings.region.regionBottom = 90;
-settings.region.regionLeft = 10;
-settings.region.regionRight = 90;
-settings.region.regionMeasuredByPercentage = 1;
-// Update the settings.
-[reader updateRuntimeSettings:settings error:&err];
-```
->
-```swift
-// Obtain current runtime settings of `barcodeReader` instance.
-let settings = try? barcodeReader.getRuntimeSettings()
-settings?.region.regionTop = 10
-settings?.region.regionBottom = 90
-settings?.region.regionLeft = 10
-settings?.region.regionRight = 90
-settings?.region.regionMeasuredByPercentage = 1
-// Update the settings.
-try? barcodeReader.updateRuntimeSettings(settings!)
-```
-
-To do the same with a JSON Template. Read more on [RuntimeSettings and templates](use-runtimesettings-or-templates.md#json-templates):
-
-```json
-{
- "ImageParameter": {
- "BarcodeFormatIds": ["BF_ALL"],
- "RegionDefinitionNameArray": ["RP_1"]
- },
- "RegionDefinition": {
- "Name": "RP_1",
- "Top": 10,
- "Bottom": 90,
- "Left": 10,
- "Right": 90,
- "MeasuredByPercentage": 1,
- },
- "Version": "3.0"
-}
-```
-
-### Multiple Region Specification
-
-If you need to specify more than one ROI, you have to use a JSON template. Furthermore, you can even configure different barcode-decoding parameter settings for each region. Read more on [RuntimeSettings and templates](use-runtimesettings-or-templates.md#json-templates)
-
-```json
-{
- "ImageParameter": {
- "RegionDefinitionNameArray": ["RP_1", "RP_2"]
- },
- "RegionDefinitionArray": [
- {
- // Settings for ROI 1
- "Name": "RP_1",
- "BarcodeFormatIds": ["BF_CODE_39"],
- "Top": 20,
- "Bottom": 80,
- "Left": 20,
- "Right": 80,
- "ExpectedBarcodesCount": 10,
- "MeasuredByPercentage": 0
- },
- {
- // Settings for ROI 2
- "Name": "RP_2",
- "BarcodeFormatIds": ["BF_CODE_93"],
- "BarcodeFormatIds_2": ["BF_DOTCODE"],
- "Top": 30,
- "Bottom": 70,
- "Left": 30,
- "Right": 80,
- "MeasuredByPercentage": 1
- }
- ],
- "Version": "3.0"
-}
-```
-
-## Read from a specific region of a video stream
-
-If you are using DBR and DCE to read barcodes from a specific area of the video stream, you can simply define the scan area via DCE.
-
-> Note: Dynamsoft Camera Enhancer (DCE) is designed to provide APIs for camera control, camera preview, and other advanced features.
-
-
- >- Android
- >- Objective-C
- >- Swift
- >
->
-```java
-import com.dynamsoft.dce.CameraEnhancer;
-RegionDefinition scanRegion = new RegionDefinition();
-scanRegion.regionTop = 30;
-scanRegion.regionBottom = 70;
-scanRegion.regionRight = 15;
-scanRegion.regionLeft = 85;
-scanRegion.regionMeasuredByPercentage = 1;
-try {
- // mCameraEnhancer is an instance of com.dynamsoft.dce.CameraEnhancer.
- mCameraEnhancer.setScanRegion(scanRegion);
-} catch (CameraEnhancerException e) {
- e.printStackTrace();
-}
-```
->
-```objc
-NSError* err = nil;
-iRegionDefinition* scanRegion = [[iRegionDefinition alloc] init];
-scanRegion.regionTop = 10;
-scanRegion.regionBottom = 90;
-scanRegion.regionLeft = 10;
-scanRegion.regionRight = 90;
-scanRegion.regionMeasuredByPercentage = 1;
-[dce setScanRegion:scanRegion error:&err];
-```
->
-```swift
-let scanRegion:iRegionDefinition? = nil
-scanRegion?.regionTop = 10
-scanRegion?.regionBottom = 90
-scanRegion?.regionLeft = 10
-scanRegion?.regionRight = 90
-scanRegion?.regionMeasuredByPercentage = 1
-dce.setScanRegion(region, error:nil)
-```
diff --git a/programming/features/barcode-scan-region-v9.6.42.md b/programming/features/barcode-scan-region-v9.6.42.md
deleted file mode 100644
index be8a7b0d..00000000
--- a/programming/features/barcode-scan-region-v9.6.42.md
+++ /dev/null
@@ -1,216 +0,0 @@
----
-layout: default-layout
-title: Read a Specific Area/Region - Dynamsoft Barcode Reader SDK
-description: This page describes how to read specific area or region in Dynamsoft Barcode Reader SDK.
-keywords: Specific Area/Region
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# Read a Specific Area/Region
-
-DBR will locate the code region and decode the entire image by default. However, if only a specific region of the image or video is required to locate the barcode, you can define a Region Of Interest (ROI) via the parameter `RegionDefinition`. After defining a specific region, DBR will only decode barcodes within that region. Of course, this is very conducive to increasing the speed. To learn more about RegionDefinition and how it works, please refer to this [**section**](../../parameters/structure-and-interfaces-of-parameters.md#regiondefinition-and-how-it-works) of the Structure and Interfaces page.
-
-`RegionDefinition` is the struct that is designed to specify the ROI.
-
-- `RegionTop`: The y coordinate of the Top border of the region.
-- `RegionBottom`: The y coordinate of the Bottom border of the region.
-- `RegionLeft`: The x coordinate of the left border of the region.
-- `RegionRight`: The x coordinate of the right border of the region.
-- `RegionMeasuredByPercentage`: If measured by percentage, the above values will be recognized as percentages (1 to 100). Otherwise, the above values will be recognized as pixel length.
-
-> Notes:
->
-> - You can either configure these settings via the `PublicRuntimeSettings` struct or via a JSON template.
-> - When using `PublicRuntimeSettings`, you can only specify one region.
-> - When using JSON template, you can either specify one or more regions.
-
-## Single Region Specification
-
-To update the setting via `PublicRuntimeSettings`:
-
-
- >- JavaScript
- >- Android
- >- Objective-C
- >- Swift
- >- Python
- >- Java
- >- C#
- >- C++
- >- C
- >
->
-```javascript
-// Obtain current runtime settings of `reader` instance.
-let settings = await scanner.getRuntimeSettings();
-settings.region.regionTop = 10;
-settings.region.regionBottom = 90;
-settings.region.regionLeft = 10;
-settings.region.regionRight = 90;
-settings.region.regionMeasuredByPercentage = 1;
-settings.barcodeFormatIds = Dynamsoft.DBR.EnumBarcodeFormat.BF_ONED | Dynamsoft.DBR.EnumBarcodeFormat.BF_QR_CODE;
-// Update the settings.
-await scanner.updateRuntimeSettings(settings);
-```
->
-```java
-// Obtain current runtime settings of `reader` instance.
-PublicRuntimeSettings settings = reader.getRuntimeSettings();
-settings.region.regionTop = 10;
-settings.region.regionBottom = 90;
-settings.region.regionLeft = 10;
-settings.region.regionRight = 90;
-settings.region.regionMeasuredByPercentage = 1;
-settings.barcodeFormatIds = EnumBarcodeFormat.BF_QR_CODE | EnumBarcodeFormat.BF_ONED;
-// Update the settings.
-reader.updateRuntimeSettings(settings);
-```
->
-```objc
-NSError* err = nil;
-// Obtain current runtime settings of `reader` instance.
-iPublicRuntimeSettings* settings = [reader getRuntimeSettings:&err];
-settings.region.regionTop = 10;
-settings.region.regionBottom = 90;
-settings.region.regionLeft = 10;
-settings.region.regionRight = 90;
-settings.region.regionMeasuredByPercentage = 1;
-// Update the settings.
-[reader updateRuntimeSettings:settings error:&err];
-```
->
-```swift
-// Obtain current runtime settings of `barcodeReader` instance.
-let settings = try? barcodeReader.getRuntimeSettings()
-settings?.region.regionTop = 10
-settings?.region.regionBottom = 90
-settings?.region.regionLeft = 10
-settings?.region.regionRight = 90
-settings?.region.regionMeasuredByPercentage = 1
-// Update the settings.
-try? barcodeReader.updateRuntimeSettings(settings!)
-```
->
-```python
-# Obtain current runtime settings of `reader` instance.
-settings = reader.get_runtime_settings()
-settings.region_top = 10
-settings.region_bottom = 90
-settings.region_left = 10
-settings.region_right = 90
-settings.region_measured_by_percentage = 1
-# Update the settings.
-reader.update_runtime_settings(settings)
-```
->
-```java
-// Obtain current runtime settings of `reader` instance.
-PublicRuntimeSettings settings = reader.getRuntimeSettings();
-settings.region.regionTop = 10;
-settings.region.regionBottom = 90;
-settings.region.regionLeft = 10;
-settings.region.regionRight = 90;
-settings.region.regionMeasuredByPercentage = 1;
-settings.barcodeFormatIds = EnumBarcodeFormat.BF_ONED | EnumBarcodeFormat.BF_QR_CODE;
-// Update the settings.
-reader.updateRuntimeSettings(settings);
-```
->
-```c#
-// Obtain current runtime settings of `reader` instance.
-PublicRuntimeSettings settings = reader.GetRuntimeSettings();
-settings.Region.RegionTop = 10;
-settings.Region.RegionBottom = 90;
-settings.Region.RegionLeft = 10;
-settings.Region.RegionRight = 90;
-settings.Region.RegionMeasuredByPercentage = 1;
-// Update the settings.
-reader.UpdateRuntimeSettings(settings);
-```
->
-```c++
-PublicRuntimeSettings settings;
-char szErrorMsg[256] = {0};
-// Obtain current runtime settings of `reader` instance.
-reader.GetRuntimeSettings(&settings);
-settings.region.regionTop = 10;
-settings.region.regionBottom = 90;
-settings.region.regionLeft = 10;
-settings.region.regionRight = 90;
-settings.region.regionMeasuredByPercentage = 1;
-// Update the settings.
-reader.UpdateRuntimeSettings(&settings, szErrorMsg, 256);
-```
->
-```c
-PublicRuntimeSettings settings;
-char szErrorMsg[256] = {0};
-// Obtain current runtime settings of `reader` instance.
-DBR_GetRuntimeSettings(reader, &settings);
-settings.region.regionTop = 10;
-settings.region.regionBottom = 90;
-settings.region.regionLeft = 10;
-settings.region.regionRight = 90;
-settings.region.regionMeasuredByPercentage = 1;
-// Update the settings.
-DBR_UpdateRuntimeSettings(reader, &settings, szErrorMsg, 256);
-```
-
-To do the same with a JSON Template. Read more on [RuntimeSettings and templates](use-runtimesettings-or-templates.md#json-templates):
-
-```json
-{
- "ImageParameter": {
- "BarcodeFormatIds": ["BF_ALL"],
- "RegionDefinitionNameArray": ["RP_1"]
- },
- "RegionDefinition": {
- "Name": "RP_1",
- "Top": 10,
- "Bottom": 90,
- "Left": 10,
- "Right": 90,
- "MeasuredByPercentage": 1,
- },
- "Version": "3.0"
-}
-```
-
-## Multiple Region Specification
-
-If you need to specify more than one ROI, you have to use a JSON template. Furthermore, you can even configure different barcode-decoding parameter settings for each region. Read more on [RuntimeSettings and templates](use-runtimesettings-or-templates.md#json-templates):
-
-```json
-{
- "ImageParameter": {
- "RegionDefinitionNameArray": ["RP_1", "RP_2"]
- },
- "RegionDefinitionArray": [
- {
- // Settings for ROI 1
- "Name": "RP_1",
- "BarcodeFormatIds": ["BF_CODE_39"],
- "Top": 20,
- "Bottom": 80,
- "Left": 20,
- "Right": 80,
- "ExpectedBarcodesCount": 10,
- "MeasuredByPercentage": 0
- },
- {
- // Settings for ROI 2
- "Name": "RP_2",
- "BarcodeFormatIds": ["BF_CODE_93"],
- "BarcodeFormatIds_2": ["BF_DOTCODE"],
- "Top": 30,
- "Bottom": 70,
- "Left": 30,
- "Right": 80,
- "MeasuredByPercentage": 1
- }
- ],
- "Version": "3.0"
-}
-```
diff --git a/programming/features/control-terminate-phase-v9.6.42.md b/programming/features/control-terminate-phase-v9.6.42.md
deleted file mode 100644
index c5b777f3..00000000
--- a/programming/features/control-terminate-phase-v9.6.42.md
+++ /dev/null
@@ -1,406 +0,0 @@
----
-layout: default-layout
-title: Control the termination phase of DBR
-description: This article describes how to use runtime settings to make DBR terminate at a certain stage.
-needAutoGenerateSidebar: true
-keywords: terminate timeout
-breadcrumbText: Termination Control
----
-
-# Control when to terminate a decoding process
-
-Typically, DBR will terminate a decoding process after the barcode is decoded or the process has failed. In some cases we may want the process to terminate earlier than that. To do this, we use either the parameter [ `TerminatePhase` ]({{ site.parameters_reference }}terminate-phase.html) or the parameter [ `Timeout` ]({{ site.parameters_reference }}time-out.html). The former specifies the stage to terminate the process while the latter specifies the maximum time allowed for the process.
-
-## TerminatePhase
-
-This parameter specifies a certain stage to terminate the decoding. By default, the decoding process will only terminate after all these stages are completed and the barcode is recognized (`TP_BARCODE_RECOGNIZED`). To terminate early, assign one of the first 5 values in the following table to [ `TerminatePhase` ]({{ site.parameters_reference }}terminate-phase.html):
-
-|Enumeration name|Notes|
-|---|----|
-|TP_REGION_PREDETECTED | Terminate after the barcode region is pre-detected. |
-|TP_IMAGE_PREPROCESSED | Terminate after the image is preprocessed. |
-|TP_IMAGE_BINARIZED | Terminate after the image is binarized. |
-|TP_BARCODE_LOCALIZED | Terminate after the barcode zone is localized. |
-|TP_BARCODE_TYPE_DETERMINED | Terminate after the barcode type is identified. |
-|TP_BARCODE_RECOGNIZED | Terminate after the barcode is recognized, the default value. |
-
-After the termination, we can acquire information generated in the process as `Intermediate Results` which include the following:
-
-> Note that for the JavaScript Edition, the intermediate result is only available when decoding an image and not a video stream.
-
-| Enumeration name | Notes | Available in JavaScript Edition |
-|---|----|---|
-| IRT_NO_RESULT | No information at all. | NA |
-| IRT_ORIGINAL_IMAGE | The original image processed by the barcode reader. | Yes |
-| IRT_COLOUR_CONVERTED_GRAYSCALE_IMAGE | Converted grayscale image based on the original image. | Yes |
-| IRT_TRANSFORMED_GRAYSCALE_IMAGE | Transformed grayscale image (e.g. color inversion). | Yes |
-| IRT_PREDETECTED_REGION | The coordinates of the predetected region. | No |
-| IRT_PREPROCESSED_IMAGE | The preprocessed image. | Yes |
-| IRT_BINARIZED_IMAGE | The binarized image. | Yes |
-| IRT_TEXT_ZONE | Coordinates of the zones of text found on the image. | No |
-| IRT_CONTOUR | Contours found on the image that surrounds different areas on the image. | No |
-| IRT_LINE_SEGMENT | Detected line segments. | No |
-| IRT_TYPED_BARCODE_ZONE | Coordinates of the barcode zones with determined barcode type(s). | No |
-| IRT_PREDETECTED_QUADRILATERAL | Coordinates of the predetected quadrilaterals. | No |
-
-The following code illustrates how it's done:
-
-
- >- Javascript
- >- Android
- >- Objective-C
- >- Swift
- >- Python
- >- Java
- >- C#
- >- C++
- >- C
- >
->
-```javascript
-// Obtains the current runtime settings of DBR.
-let rs = await scanner.getRuntimeSettings();
-// Sets the termination phase.
-rs.terminatePhase = Dynamsoft.DBR.EnumTerminatePhase.TP_BARCODE_TYPE_DETERMINED;
-// Sets the intermidate result types.
-rs.intermediateResultTypes =
- Dynamsoft.DBR.EnumIntermediateResultType.IRT_ORIGINAL_IMAGE |
- Dynamsoft.DBR.EnumIntermediateResultType.IRT_BINARIZED_IMAGE |
- Dynamsoft.DBR.EnumIntermediateResultType.IRT_COLOUR_CONVERTED_GRAYSCALE_IMAGE |
- Dynamsoft.DBR.EnumIntermediateResultType.IRT_TRANSFORMED_GRAYSCALE_IMAGE |
- Dynamsoft.DBR.EnumIntermediateResultType.IRT_PREPROCESSED_IMAGE;
-// Updates the settings.
-await scanner.updateRuntimeSettings(rs);
-const interval = setInterval(async() => {
- try {
- // Shows the intermediate results (images) on the page.
- let cvss = await scanner.getIntermediateCanvas();
- if (cvss.length > 0) {
- for (let cvs of cvss) {
- document.body.appendChild(cvs);
- }
- scanner.destroyContext();
- clearInterval(interval);
- }
- } catch (ex) {
- console.error(ex);
- }
-}, 1000);
-await scanner.show();
-```
->
-```java
-// Obtains the current runtime settings of DBR.
-PublicRuntimeSettings rs = reader.getRuntimeSettings();
-// Sets the termination phase.
-rs.terminatePhase = EnumTerminatePhase.TP_BARCODE_TYPE_DETERMINED;
-// Sets the intermidate result types.
-rs.intermediateResultTypes =
- EnumIntermediateResultType.IRT_ORIGINAL_IMAGE |
- EnumIntermediateResultType.IRT_BINARIZED_IMAGE |
- EnumIntermediateResultType.IRT_COLOUR_CONVERTED_GRAYSCALE_IMAGE |
- EnumIntermediateResultType.IRT_TRANSFORMED_GRAYSCALE_IMAGE |
- EnumIntermediateResultType.IRT_PREPROCESSED_IMAGE;
-rs.intermediateResultSavingMode = EnumIntermediateResultSavingMode.IRSM_FILESYSTEM;
-// Updates the settings.
-reader.updateRuntimeSettings(rs);
-reader.setModeArgument("IntermediateResultSavingMode", 0, "FolderPath", "YOUR-FOLDER-PATH");
-reader.setModeArgument("IntermediateResultSavingMode", 0, "RecordsetSizeOfLatestImages", "1");
-// Decodes the image.
-reader.decodeFile("YOUR-IMAGE-FILE-PATH");
-```
->
-```objc
-NSError* err = nil;
-// Obtains the current runtime settings of DBR.
-iPublicRuntimeSettings* rs = [reader getRuntimeSettings:&err];
-// Sets the termination phase.
-rs.terminatePhase = EnumTerminatePhaseDetermined;
-// Sets the intermidate result types.
-rs.intermediateResultTypes =
- EnumIntermediateResultTypeOriginalImage |
- EnumIntermediateResultTypeBinarizedImage |
- EnumIntermediateResultTypeColourConvertedGrayImage |
- EnumIntermediateResultTypeTransformedGrayscaleImage |
- EnumIntermediateResultTypePreprocessedImage;
-rs.intermediateResultSavingMode = EnumIntermediateResultSavingModeFileSystem;
-// Updates the settings.
-[reader updateRuntimeSettings:rs error:&err];
-[reader setModeArgument:@"IntermediateResultSavingMode" index:0 argumentName:@"FolderPath" argumentValue:@"YOUR-FOLDER-PATH" error:&err];
-[reader setModeArgument:@"IntermediateResultSavingMode" index:0 argumentName:@"RecordsetSizeOfLatestImages" argumentValue:@"1" error:&err];
-// Decodes the image.
-[reader decodeFileWithName:@"YOUR-IMAGE-FILE-PATH" error:&err];
-```
->
-```swift
-// Obtains the current runtime settings of DBR.
-let rs = try? reader.getRuntimeSettings()
-// Sets the termination phase.
-rs?.terminatePhase = EnumTerminatePhase.Determined
-// Sets the intermidate result types.
-rs?.intermediateResultTypes =
- [EnumIntermediateResultType.originalImage.rawValue | EnumIntermediateResultType.binarizedImage.rawValue | EnumIntermediateResultType.colourConvertedGrayImage.rawValue | EnumIntermediateResultType.transformedGrayscaleImage.rawValue | EnumIntermediateResultType.preprocessedImage.rawValue]
-rs?.intermediateResultSavingMode = EnumIntermediateResultSavingMode.fileSystem
-// Updates the settings.
-try? reader.updateRuntimeSettings(rs!)
-try? reader.setModeArgument("IntermediateResultSavingMode", index:0, argumentName:"FolderPath", argumentValue:"YOUR-FOLDER-PATH")
-try? reader.setModeArgument("IntermediateResultSavingMode", index:0, argumentName:"RecordsetSizeOfLatestImages", argumentValue:"1")
-// Decodes the image.
-try? reader.decodeFileWithName("YOUR-IMAGE-FILE-PATH")
-```
->
-```python
-error = BarcodeReader.init_license("YOUR-LICENSE-KEY")
-if error[0] != EnumErrorCode.DBR_OK:
- print(error[1])
-dbr = BarcodeReader()
-settings = dbr.get_runtime_settings()
-# Sets the termination phase
-settings.terminate_phase = EnumTerminatePhase.TP_BARCODE_TYPE_DETERMINED
-# Set binarized image and localized barcode zone of the intermediate result types to be saved
-settings.intermediate_result_types = EnumIntermediateResultType.IRT_BINARIZED_IMAGE | EnumIntermediateResultType.IRT_TYPED_BARCODE_ZONE
-# Save intermediate result to both file system and memory
-settings.intermediate_result_saving_mode = EnumIntermediateResultSavingMode.IRSM_FILESYSTEM
-dbr.update_runtime_settings(settings)
-# Set the folder path which stores the intermediate result. Please make sure you have write permission to this folder.
-dbr.set_mode_argument("IntermediateResultSavingMode", 0, "FolderPath", "YOUR-SAVING-PATH")
-dbr.decode_file("YOUR-IMAGE-FILE-PATH")
-# After decoding, the intermediate results can be found at "YOUR-SAVING-PATH"
-# Add further process
-```
->
-```java
-BarcodeReader.initLicense("YOUR-LICENSE-KEY");
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.getRuntimeSettings();
-// Sets the termination phase
-settings.terminatePhase = EnumTerminatePhase.TP_BARCODE_TYPE_DETERMINED;
-// Set binarized image and localized barcode zone of the intermediate result types to be saved
-settings.intermediateResultTypes = EnumIntermediateResultType.IRT_BINARIZED_IMAGE | EnumIntermediateResultType.IRT_TYPED_BARCODE_ZONE;
-// Save intermediate result to both file system and memory
-settings.intermediateResultSavingMode = EnumIntermediateResultSavingMode.IRSM_FILESYSTEM;
-// Update RuntimeSettings with above settings
-reader.updateRuntimeSettings(settings);
-// Set the folder path which stores the intermediate result. Please make sure you have write permission to this folder.
-reader.setModeArgument("IntermediateResultSavingMode", 0, "FolderPath", "YOUR-SAVING-PATH");
-reader.decodeFile("YOUR-IMAGE-FILE-PATH", "");
-// After decoding, the intermediate results can be found at "YOUR-SAVING-PATH"
-// Add further process
-```
->
-```csharp
-string errorMsg;
-EnumErrorCode iRet = BarcodeReader.InitLicense("YOUR-LICENSE-KEY", out errorMsg);
-if (iRet != EnumErrorCode.DBR_SUCCESS)
-{
- Console.WriteLine(errorMsg);
-}
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.GetRuntimeSettings();
-// Sets the termination phase
-settings.TerminatePhase = EnumTerminatePhase.TP_BARCODE_TYPE_DETERMINED;
-// Set binarized image and localized barcode zone of the intermediate result types to be saved
-settings.IntermediateResultTypes = (int)(EnumIntermediateResultType.IRT_BINARIZED_IMAGE | EnumIntermediateResultType.IRT_TYPED_BARCODE_ZONE);
-// Save intermediate result to both file system and memory
-settings.IntermediateResultSavingMode = EnumIntermediateResultSavingMode.IRSM_FILESYSTEM;
-// Update RuntimeSettings with above settings
-reader.UpdateRuntimeSettings(settings);
-// Set the folder path which stores the intermediate result. Please make sure you have write permission to this folder.
-reader.SetModeArgument("IntermediateResultSavingMode", 0, "FolderPath", "YOUR-SAVING-PATH", out errorMsg);
-reader.DecodeFile("YOUR-IMAGE-FILE-PATH", "");
-// After decoding, the intermediate results can be found at "YOUR-SAVING-PATH"
-// Add further process
-```
->
-```cpp
-char errorBuf[512];
-int iRet = -1;
-iRet = dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- cout << errorBuf << endl;
-}
-CBarcodeReader* reader = new CBarcodeReader();
-PublicRuntimeSettings runtimeSettings;
-reader->GetRuntimeSettings(&runtimeSettings);
-// Sets the termination phase
-runtimeSettings.terminatePhase = TP_BARCODE_TYPE_DETERMINED;
-// Set binarized image and localized barcode zone of the intermediate result types to be saved
-runtimeSettings.intermediateResultTypes = IRT_BINARIZED_IMAGE | IRT_TYPED_BARCODE_ZONE;
-// Save intermediate result to both file system and memory
-runtimeSettings.intermediateResultSavingMode = IRSM_FILESYSTEM;
-// Update RuntimeSettings with above settings
-reader->UpdateRuntimeSettings(&runtimeSettings, errorBuf, 512);
-// Set the folder path which stores the intermediate result. Please make sure you have write permission to this folder.
-reader->SetModeArgument("IntermediateResultSavingMode", 0, "FolderPath", "YOUR-SAVING-PATH", errorBuf, 512);
-reader->DecodeFile("YOUR-IMAGE-FILE-PATH", "");
-// After decoding, the intermediate results can be found at "YOUR-SAVING-PATH"
-// Add further process
-```
-```c
-int iRet = -1;
-char errorBuf[512];
-iRet = DBR_InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- printf("%s\n", errorBuf);
-}
-void* reader = DBR_CreateInstance();
-PublicRuntimeSettings runtimeSettings;
-DBR_GetRuntimeSettings(reader, &runtimeSettings);
-// Sets the termination phase
-runtimeSettings.terminatePhase = TP_BARCODE_TYPE_DETERMINED;
-// Set binarized image and localized barcode zone of the intermediate result types to be saved
-runtimeSettings.intermediateResultTypes = IRT_BINARIZED_IMAGE | IRT_TYPED_BARCODE_ZONE;
-// Save intermediate result to both file system and memory
-runtimeSettings.intermediateResultSavingMode = IRSM_FILESYSTEM;
-// Update RuntimeSettings with above settings
-DBR_UpdateRuntimeSettings(reader, &runtimeSettings, errorBuf, 512);
-// Set the folder path which stores the intermediate result. Please make sure you have write permission to this folder.
-DBR_SetModeArgument(reader, "IntermediateResultSavingMode", 0, "FolderPath", "YOUR-SAVING-PATH", errorBuf, 512);
-DBR_DecodeFile(reader, "YOUR-IMAGE-FILE-PATH", "");
-// After decoding, the intermediate results can be found at "YOUR-SAVING-PATH"
-// Add further process
-```
-
-### Timeout
-
-This parameter controls the timeout for an individual decoding process in milliseconds. When the timeout occurs, the decoding will be terminated.
-
-Allowed values are between 0 and 0x7fffffff. The default value is 10000.
-
-The timeout setting is helpful in multi-image decoding situations where some images may take a long time to process. With proper timeout, we can balance the tradeoff between speed and read rate.
-
-> The timeout setting is especially useful when decoding barcodes from consecutive video frames, where the same barcode appears in multiple frame images, and it takes much less time to read it in a clear frame, meaning blurry frames should be skipped fast.
-
-The following code illustrates how to set `Timeout`:
-
-
- >- Javascript
- >- Android
- >- Objective-C
- >- Swift
- >- Python
- >- Java
- >- C#
- >- C++
- >- C
- >
->
-```javascript
-(async() => {
- let scanner = await Dynamsoft.DBR.BarcodeScanner.createInstance();
- // Obtains the current runtime settings of DBR.
- let rs = await scanner.getRuntimeSettings();
- // Sets timeout to 1000 milliseconds.
- rs.timeout = 1000;
- // Updates the settings.
- await scanner.updateRuntimeSettings(rs);
- scanner.onUniqueRead = (txt, result) => {
- alert(txt);
- };
- await scanner.show();
-})();
-```
->
-```java
-BarcodeReader reader = new BarcodeReader();
-// Obtains the current runtime settings of DBR.
-PublicRuntimeSettings rs = reader.getRuntimeSettings();
-// Sets timeout to 1000 milliseconds.
-rs.timeout = 1000;
-// Updates the settings.
-reader.updateRuntimeSettings(rs);
-```
->
-```objc
-NSError* err = nil;
-DBRBarcodeReader* reader = [[DBRBarcodeReader alloc] init];
-// Obtains the current runtime settings of DBR.
-iPublicRuntimeSettings* rs = [reader getRuntimeSettings:&err];
-// Sets timeout to 1000 milliseconds.
-rs.timeout = 1000;
-// Updates the settings.
-[reader updateRuntimeSettings:rs error:&err];
-```
->
-```swift
-let reader = DynamsoftBarcodeReader();
-// Obtains the current runtime settings of DBR.
-let rs = try? reader.getRuntimeSettings();
-// Sets timeout to 1000 milliseconds.
-rs?.timeout = 1000;
-// Updates the settings.
-try? reader.updateRuntimeSettings(rs!);
-```
->
-```python
-error = BarcodeReader.init_license("YOUR-LICENSE-KEY")
-if error[0] != EnumErrorCode.DBR_OK:
- print(error[1])
-dbr = BarcodeReader()
-settings = dbr.get_runtime_settings()
-settings.timeout = 1000
-dbr.update_runtime_settings(settings)
-text_results = dbr.decode_file("YOUR-IMAGE-FILE-PATH")
-# Add further process
-```
->
-```java
-BarcodeReader.initLicense("YOUR-LICENSE-KEY");
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.getRuntimeSettings(); //Get the current RuntimeSettings
-settings.timeout = 1000;
-reader.updateRuntimeSettings(settings); // Update RuntimeSettings with above setting
-TextResult[] result = reader.decodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```csharp
-string errorMsg;
-EnumErrorCode iRet = BarcodeReader.InitLicense("YOUR-LICENSE-KEY", out errorMsg);
-if (iRet != EnumErrorCode.DBR_SUCCESS)
-{
- Console.WriteLine(errorMsg);
-}
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.GetRuntimeSettings(); //Get the current RuntimeSettings
-settings.Timeout = 1000;
-reader.UpdateRuntimeSettings(settings); // Update RuntimeSettings with above setting
-TextResult[] result = reader.DecodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```cpp
-char errorBuf[512];
-int iRet = -1;
-iRet = dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- cout << errorBuf << endl;
-}
-CBarcodeReader* reader = new CBarcodeReader();
-PublicRuntimeSettings* runtimeSettings = new PublicRuntimeSettings();
-reader->GetRuntimeSettings(runtimeSettings); //Get the current RuntimeSettings
-runtimeSettings->timeout = 1000;
-reader->UpdateRuntimeSettings(runtimeSettings, errorBuf, 512); // Update RuntimeSettings with above setting
-reader->DecodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```c
-int iRet = -1;
-char errorBuf[512];
-iRet = DBR_InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- printf("%s\n", errorBuf);
-}
-void* barcodeReader = DBR_CreateInstance();
-PublicRuntimeSettings runtimeSettings;
-DBR_GetRuntimeSettings(barcodeReader, &runtimeSettings); //Get the current RuntimeSettings
-runtimeSettings.timeout = 1000;
-DBR_UpdateRuntimeSettings(barcodeReader, &runtimeSettings, errorBuf, 512); // Update RuntimeSettings with above setting
-DBR_DecodeFile(barcodeReader, "YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
diff --git a/programming/features/filter-and-sort-v9.6.42.md b/programming/features/filter-and-sort-v9.6.42.md
deleted file mode 100644
index de89566e..00000000
--- a/programming/features/filter-and-sort-v9.6.42.md
+++ /dev/null
@@ -1,191 +0,0 @@
----
-layout: default-layout
-title: How to Filter and Sort Barcode Results
-description: This page shows how to filter and sort barcode results.
-keywords: filter, decode result, barcode confidence, result length, how-to guides
-needAutoGenerateSidebar: false
----
-
-
-# How to Filter and Sort Barcode Results
-
-Dynamsoft Barcode Reader SDK is able to read multiple barcodes at once and return results of all the decoded barcodes. However, you may not want all the results. For example, you may need only the results of a specific barcode format, or you may need only the barcodes with a certain text string. The SDK provides the following parameters to help you filter the barcode results by barcode format, confidence, etc and order the results by confidence, position or format.
-
-- [BarcodeFormatIds]({{ site.parameters_reference }}barcode-format-ids.html) and [BarcodeFormatIds_2]({{ site.parameters_reference }}barcode-format-ids-2.html)
-- [BarcodeAngleRangeArray]({{ site.parameters_reference }}barcode-angle-range-array.html)
-- [BarcodeWidthRangeArray]({{ site.parameters_reference }}barcode-width-range-array.html)
-- [BarcodeHeightRangeArray]({{ site.parameters_reference }}barcode-height-range-array.html)
-- [MinRatioOfBarcodeZoneWidthToHeight]({{ site.parameters_reference }}min-ratio-of-barcode-zone-width-to-height.html)
-- [BarcodeTextLengthRangeArray]({{ site.parameters_reference }}barcode-text-length-range-array.html)
-- [BarcodeTextRegExPattern]({{ site.parameters_reference }}barcode-text-regex-pattern.html)
-- [MinResultConfidence]({{ site.parameters_reference }}min-result-confidence.html)
-- [ModuleSizeRangeArray]({{ site.parameters_reference }}module-size-range-array.html)
-- [TextResultOrderModes]({{ site.parameters_reference }}text-result-order-modes.html)
-
-Here is an example template containing all these parameters:
-
-```json
-{
- "Version": "3.0",
- "ImageParameter": {
- "Name":"IP_FilterBarcode",
- "BarcodeFormatIds": [
- "BF_CODE_39"
- ],
- "BarcodeFormatIds_2": [
- "BF2_NULL"
- ],
- "TextResultOrderModes": [
- {
- "Mode": "TROM_POSITION"
- }
- ],
- "FormatSpecificationNameArray": [
- "FP_1"
- ]
- },
- "FormatSpecification": {
- "Name": " FP_1",
- "BarcodeAngleRangeArray": [
- {
- "MinValue": 80,
- "MaxValue": 100
- }
- ],
- "BarcodeWidthRangeArray": [
- {
- "MaxValue": 200,
- "MinValue": 100
- }
- ],
- "BarcodeHeightRangeArray": [
- {
- "MaxValue": 100,
- "MinValue": 50
- }
- ],
- "MinRatioOfBarcodeZoneWidthToHeight": 100,
- "BarcodeTextLengthRangeArray": [
- {
- "MaxValue": 20,
- "MinValue": 10
- }
- ],
- "BarcodeTextRegExPattern": "[0-9]{4}",
- "MinResultConfidence": 50,
- "ModuleSizeRangeArray": [
- {
- "MaxValue": 20,
- "MinValue": 10
- }
- ]
- }
-}
-```
-
-These parameters can work both individually and in combination. Here we will show how to filter out QR Code results with confidence lower than 50 and then order the results by position.
-
-
->- JavaScript
->- C
->- C++
->- C#
->- Java
->- Android
->- Objective-C
->- Swift
->- Python
->
->
-```javascript
-const scanner = await Dynamsoft.DBR.BarcodeScanner.createInstance();
-// Defines the template for the filtering & sorting
-let jsonString = "{\"Version\":\"3.0\", \"ImageParameter\":{\"Name\":\"IP_FilterBarcode\", \"BarcodeFormatIds\":[\"BF_QR_CODE\"], \"TextResultOrderModes\":[{\"Mode\":\"TROM_POSITION\"}], \"FormatSpecificationNameArray\": [\"FP_1\"]},\"FormatSpecification\":{\"Name\":\"FP_1\", \"MinResultConfidence\":50}}";
-// Configures the BarcodeScanner object with the settings.
-await scanner.initRuntimeSettingsWithString(jsonString);
-scanner.show();
-```
->
-```c
-int iRet = -1;
-char errorBuf[512];
-iRet = DBR_InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- printf("%s\n", errorBuf);
-}
-void* barcodeReader = DBR_CreateInstance();
-DBR_InitRuntimeSettingsWithString(barcodeReader, "{\"Version\":\"3.0\", \"ImageParameter\":{\"Name\":\"IP_FilterBarcode\", \"BarcodeFormatIds\":[\"BF_QR_CODE\"], \"TextResultOrderModes\":[{\"Mode\":\"TROM_POSITION\"}], \"FormatSpecificationNameArray\": [\"FP_1\"]},\"FormatSpecification\":{\"Name\":\"FP_1\", \"MinResultConfidence\":50}}", CM_OVERWRITE, errorBuf, 512);
-DBR_DecodeFile(barcodeReader, "YOUR-IMAGE-FILE-WITH-QR-CODES", "IP_FilterBarcode"); // Start decoding
-// Add further process
-```
->
-```cpp
-char errorBuf[512];
-int iRet = -1;
-iRet = dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- cout << errorBuf << endl;
-}
-CBarcodeReader* reader = new CBarcodeReader();
-reader->InitRuntimeSettingsWithString("{\"Version\":\"3.0\", \"ImageParameter\":{\"Name\":\"IP_FilterBarcode\", \"BarcodeFormatIds\":[\"BF_QR_CODE\"], \"TextResultOrderModes\":[{\"Mode\":\"TROM_POSITION\"}], \"FormatSpecificationNameArray\": [\"FP_1\"]},\"FormatSpecification\":{\"Name\":\"FP_1\", \"MinResultConfidence\":50}}", CM_OVERWRITE, errorBuf, 512);
-reader->DecodeFile("YOUR-IMAGE-FILE-WITH-QR-CODES", "IP_FilterBarcode"); // Start decoding
-// Add further process
-```
->
-```csharp
-string errorMsg;
-EnumErrorCode iRet = BarcodeReader.InitLicense("YOUR-LICENSE-KEY", out errorMsg);
-if (iRet != EnumErrorCode.DBR_SUCCESS)
-{
- Console.WriteLine(errorMsg);
-}
-BarcodeReader reader = new BarcodeReader();
-reader.InitRuntimeSettingsWithString("{\"Version\":\"3.0\", \"ImageParameter\":{\"Name\":\"IP_FilterBarcode\", \"BarcodeFormatIds\":[\"BF_QR_CODE\"], \"TextResultOrderModes\":[{\"Mode\":\"TROM_POSITION\"}], \"FormatSpecificationNameArray\": [\"FP_1\"]},\"FormatSpecification\":{\"Name\":\"FP_1\", \"MinResultConfidence\":50}}", EnumConflictMode.CM_OVERWRITE, out errorMsg);
-TextResult[] result = reader.DecodeFile("YOUR-IMAGE-FILE-WITH-QR-CODES", "IP_FilterBarcode"); // Start decoding
-// Add further process
-```
->
-```java
-BarcodeReader.initLicense("YOUR-LICENSE-KEY");
-BarcodeReader reader = new BarcodeReader();
-reader.initRuntimeSettingsWithString("{\"Version\":\"3.0\", \"ImageParameter\":{\"Name\":\"IP_FilterBarcode\", \"BarcodeFormatIds\":[\"BF_QR_CODE\"], \"TextResultOrderModes\":[{\"Mode\":\"TROM_POSITION\"}], \"FormatSpecificationNameArray\": [\"FP_1\"]},\"FormatSpecification\":{\"Name\":\"FP_1\", \"MinResultConfidence\":50}}", EnumConflictMode.CM_OVERWRITE);
-TextResult[] result = reader.decodeFile("YOUR-IMAGE-FILE-WITH-QR-CODES", "IP_FilterBarcode"); // Start decoding
-// Add further process
-```
->
-```java
-BarcodeReader reader = new BarcodeReader();
-reader.initRuntimeSettingsWithString("{\"Version\":\"3.0\", \"ImageParameter\":{\"Name\":\"IP_FilterBarcode\", \"BarcodeFormatIds\":[\"BF_QR_CODE\"], \"TextResultOrderModes\":[{\"Mode\":\"TROM_POSITION\"}], \"FormatSpecificationNameArray\": [\"FP_1\"]},\"FormatSpecification\":{\"Name\":\"FP_1\", \"MinResultConfidence\":50}}", EnumConflictMode.CM_OVERWRITE);
-// Start decoding
-TextResult[] result = reader.decodeFile("YOUR-IMAGE-FILE-WITH-QR-CODES");
-// Add further process
-```
->
-```objc
-NSError* err = nil;
-DynamsoftBarcodeReader* reader = [[DynamsoftBarcodeReader alloc] init];
-[reader initRuntimeSettingsWithString:@"{\"Version\":\"3.0\", \"ImageParameter\":{\"Name\":\"IP_FilterBarcode\", \"BarcodeFormatIds\":[\"BF_QR_CODE\"], \"TextResultOrderModes\":[{\"Mode\":\"TROM_POSITION\"}], \"FormatSpecificationNameArray\": [\"FP_1\"]},\"FormatSpecification\":{\"Name\":\"FP_1\", \"MinResultConfidence\":50}}" conflictMode:EnumConflictModeOverwrite error:&err];
-// Start decoding
-NSArray* result = [reader decodeFileWithName:@"YOUR-IMAGE-FILE-WITH-QR-CODES" error:&err];
-// Add further process
-```
->
-```swift
-let reader = DynamsoftBarcodeReader.init()
-try? reader.initRuntimeSettingsWithString("{\"Version\":\"3.0\", \"ImageParameter\":{\"Name\":\"IP_FilterBarcode\", \"BarcodeFormatIds\":[\"BF_QR_CODE\"], \"TextResultOrderModes\":[{\"Mode\":\"TROM_POSITION\"}], \"FormatSpecificationNameArray\": [\"FP_1\"]},\"FormatSpecification\":{\"Name\":\"FP_1\", \"MinResultConfidence\":50}}", conflictMode:EnumConflictMode.overwrite)
-// Start decoding
-let result = try? reader.decodeFileWithName("YOUR-IMAGE-FILE-WITH-QR-CODES")
-// Add further process
-```
->
-```python
-error = BarcodeReader.init_license("YOUR-LICENSE-KEY")
-if error[0] != EnumErrorCode.DBR_OK:
- print(error[1])
-dbr = BarcodeReader()
-dbr.init_runtime_settings_with_string('{"Version":"3.0", "ImageParameter":{"Name":"IP_FilterBarcode", "BarcodeFormatIds":["BF_QR_CODE"], "TextResultOrderModes":[{"Mode":"TROM_POSITION"}], "FormatSpecificationNameArray": ["FP_1"]},"FormatSpecification":{"Name":"FP_1", "MinResultConfidence":50}}')
-text_results = dbr.decode_file("YOUR-IMAGE-FILE-WITH-QR-CODES")
-# Add further process
-```
diff --git a/programming/features/get-barcode-location-v10.0.0.md b/programming/features/get-barcode-location-v10.0.0.md
deleted file mode 100644
index 13549544..00000000
--- a/programming/features/get-barcode-location-v10.0.0.md
+++ /dev/null
@@ -1,100 +0,0 @@
----
-layout: default-layout
-title: How to Get Barcode Location
-description: This page shows how to get barcode location.
-keywords: location, decode result, how-to guides
-needAutoGenerateSidebar: false
----
-
-# How to Get Barcode Location
-
-Once a barcode is found, you could be inclined to highlight it on the image for a better user experience. In this article, we will explain how to get the coordinates of the barcode so that they can be used to highlight the barcode.
-
-## BarcodeResultItem
-
-A barcode result is returned as a `BarcodeResultItem` which provides a method `GetLocation` to get the result coordinate points. The result points are listed in clockwise order, starting from the top-left point of the barcode area. The next section will explore the different code snippets for each supported programming language.
-
-## Code Snippet
-
-The following code snippet shows how to get the coordinates of the barcode:
-
-
- >- C++
- >- Android
- >- Objective-C
- >- Swift
- >
->
-```c++
-CCaptureVisionRouter* cvr = new CCaptureVisionRouter;
-CCapturedResult* result = cvr->Capture("IMAGE-FILE-PATH", CPresetTemplate::PT_READ_BARCODES);
-if (result->GetErrorCode() != 0) {
- cout << "Error: " << result->GetErrorCode() << "," << result->GetErrorString() << endl;
-}
-int capturedResultItemCount = result->GetCount();
-for (int j = 0; j < capturedResultItemCount; j++)
-{
- const CCapturedResultItem* capturedResultItem = result->GetItem(j);
- CapturedResultItemType type = capturedResultItem->GetType();
- if (type == CapturedResultItemType::CRIT_BARCODE)
- {
- const CBarcodeResultItem* barcodeResultItem = dynamic_cast (capturedResultItem);
- CQuadrilateral location = barcodeResultItem->GetLocation();
- cout << "Result " << j + 1 << endl;
- cout << "Point 0: [ " << location.points[0].coordinate[0] << ", " << location.points[0].coordinate[1] << " ]" << endl;
- cout << "Point 1: [ " << location.points[1].coordinate[0] << ", " << location.points[1].coordinate[1] << " ]" << endl;
- cout << "Point 2: [ " << location.points[2].coordinate[0] << ", " << location.points[2].coordinate[1] << " ]" << endl;
- cout << "Point 3: [ " << location.points[3].coordinate[0] << ", " << location.points[3].coordinate[1] << " ]" << endl;
- }
-}
-// more process here
-```
->
-```java
-public void onDecodedBarcodesReceived(DecodedBarcodesResult result) {
- if (result != null){
- BarcodeResultItem[] items = result.getItems();
- for (int i=0; i < items.length; i++){
- BarcodeResultItem item = items[i];
- Quadrilateral barcodeQuadArea = item.getLocation();
- Point topLeftPoint = barcodeQuadArea.points[0];
- Point topRightPoint = barcodeQuadArea.points[1];
- Point bottomRightPoint = barcodeQuadArea.points[2];
- Point bottomLeftPoint = barcodeQuadArea.points[3];
- Log.i("DecodedBarcodes", "onDecodedBarcodesReceived: This is the number "+i+" barcode");
- Log.i("DecodedBarcodes", "The first point is: ("+topLeftPoint.x+", "+topLeftPoint.y+")");
- Log.i("DecodedBarcodes", "The second point is: ("+topRightPoint.x+", "+topRightPoint.y+")");
- Log.i("DecodedBarcodes", "The third point is: ("+bottomRightPoint.x+", "+bottomRightPoint.y+")");
- Log.i("DecodedBarcodes", "The fourth point is: ("+bottomLeftPoint.x+", "+bottomLeftPoint.y+")");
- }
- }
-}
-```
->
-```objc
-- (void)onDecodedBarcodesReceived:(DSDecodedBarcodesResult *)result {
- if (result.items.count > 0) {
- for (DSBarcodeResultItem *item in result.items) {
- DSQuadrilateral *barcodeQuadArea = item.location;
- CGPoint topLeftPoint = [barcodeQuadArea.points[0] CGPointValue];
- CGPoint topRightPoint = [barcodeQuadArea.points[1] CGPointValue];
- CGPoint bottomRightPoint = [barcodeQuadArea.points[2] CGPointValue];
- CGPoint bottomLeftPoint = [barcodeQuadArea.points[3] CGPointValue];
- }
- }
-}
-```
->
-```swift
-func onDecodedBarcodesReceived(_ result: DecodedBarcodesResult) {
- if let items = result.items, items.count > 0 {
- for item in items {
- let barcodeQuadArea = item.location
- let topLeftPoint:CGPoint = barcodeQuadArea.points[0] as! CGPoint
- let topRightPoint:CGPoint = barcodeQuadArea.points[1] as! CGPoint
- let buttomRightPoint:CGPoint = barcodeQuadArea.points[2] as! CGPoint
- let bottomLeftPoint:CGPoint = barcodeQuadArea.points[3] as! CGPoint
- }
- }
-}
-```
diff --git a/programming/features/get-barcode-location-v10.2.0.md b/programming/features/get-barcode-location-v10.2.0.md
deleted file mode 100644
index 7979626f..00000000
--- a/programming/features/get-barcode-location-v10.2.0.md
+++ /dev/null
@@ -1,100 +0,0 @@
----
-layout: default-layout
-title: How to Get Barcode Location
-description: This page shows how to get barcode location.
-keywords: location, decode result, how-to guides
-needAutoGenerateSidebar: false
----
-
-# How to Get Barcode Location
-
-Once a barcode is found, you could be inclined to highlight it on the image for a better user experience. In this article, we will explain how to get the coordinates of the barcode so that they can be used to highlight the barcode.
-
-## BarcodeResultItem
-
-A barcode result is returned as a `BarcodeResultItem` which provides a method `GetLocation` to get the result coordinate points. The result points are listed in clockwise order, starting from the top-left point of the barcode area. The next section will explore the different code snippets for each supported programming language.
-
-## Code Snippet
-
-The following code snippet shows how to get the coordinates of the barcode:
-
-
- >- C++
- >- Android
- >- Objective-C
- >- Swift
- >
->
-```c++
-CCaptureVisionRouter* cvr = new CCaptureVisionRouter;
-CCapturedResult* result = cvr->Capture("IMAGE-FILE-PATH", CPresetTemplate::PT_READ_BARCODES);
-if (result->GetErrorCode() != 0) {
- cout << "Error: " << result->GetErrorCode() << "," << result->GetErrorString() << endl;
-}
-int capturedResultItemCount = result->GetItemsCount();
-for (int j = 0; j < capturedResultItemCount; j++)
-{
- const CCapturedResultItem* capturedResultItem = result->GetItem(j);
- CapturedResultItemType type = capturedResultItem->GetType();
- if (type == CapturedResultItemType::CRIT_BARCODE)
- {
- const CBarcodeResultItem* barcodeResultItem = dynamic_cast (capturedResultItem);
- CQuadrilateral location = barcodeResultItem->GetLocation();
- cout << "Result " << j + 1 << endl;
- cout << "Point 0: [ " << location.points[0][0] << ", " << location.points[0][1] << " ]" << endl;
- cout << "Point 1: [ " << location.points[1][0] << ", " << location.points[1][1] << " ]" << endl;
- cout << "Point 2: [ " << location.points[2][0] << ", " << location.points[2][1] << " ]" << endl;
- cout << "Point 3: [ " << location.points[3][0] << ", " << location.points[3][1] << " ]" << endl;
- }
-}
-// more process here
-```
->
-```java
-public void onDecodedBarcodesReceived(DecodedBarcodesResult result) {
- if (result != null){
- BarcodeResultItem[] items = result.getItems();
- for (int i=0; i < items.length; i++){
- BarcodeResultItem item = items[i];
- Quadrilateral barcodeQuadArea = item.getLocation();
- Point topLeftPoint = barcodeQuadArea.points[0];
- Point topRightPoint = barcodeQuadArea.points[1];
- Point bottomRightPoint = barcodeQuadArea.points[2];
- Point bottomLeftPoint = barcodeQuadArea.points[3];
- Log.i("DecodedBarcodes", "onDecodedBarcodesReceived: This is the number "+i+" barcode");
- Log.i("DecodedBarcodes", "The first point is: ("+topLeftPoint.x+", "+topLeftPoint.y+")");
- Log.i("DecodedBarcodes", "The second point is: ("+topRightPoint.x+", "+topRightPoint.y+")");
- Log.i("DecodedBarcodes", "The third point is: ("+bottomRightPoint.x+", "+bottomRightPoint.y+")");
- Log.i("DecodedBarcodes", "The fourth point is: ("+bottomLeftPoint.x+", "+bottomLeftPoint.y+")");
- }
- }
-}
-```
->
-```objc
-- (void)onDecodedBarcodesReceived:(DSDecodedBarcodesResult *)result {
- if (result.items.count > 0) {
- for (DSBarcodeResultItem *item in result.items) {
- DSQuadrilateral *barcodeQuadArea = item.location;
- CGPoint topLeftPoint = [barcodeQuadArea.points[0] CGPointValue];
- CGPoint topRightPoint = [barcodeQuadArea.points[1] CGPointValue];
- CGPoint bottomRightPoint = [barcodeQuadArea.points[2] CGPointValue];
- CGPoint bottomLeftPoint = [barcodeQuadArea.points[3] CGPointValue];
- }
- }
-}
-```
->
-```swift
-func onDecodedBarcodesReceived(_ result: DecodedBarcodesResult) {
- if let items = result.items, items.count > 0 {
- for item in items {
- let barcodeQuadArea = item.location
- let topLeftPoint:CGPoint = barcodeQuadArea.points[0] as! CGPoint
- let topRightPoint:CGPoint = barcodeQuadArea.points[1] as! CGPoint
- let buttomRightPoint:CGPoint = barcodeQuadArea.points[2] as! CGPoint
- let bottomLeftPoint:CGPoint = barcodeQuadArea.points[3] as! CGPoint
- }
- }
-}
-```
diff --git a/programming/features/get-barcode-location-v9.6.42.md b/programming/features/get-barcode-location-v9.6.42.md
deleted file mode 100644
index 9ca25789..00000000
--- a/programming/features/get-barcode-location-v9.6.42.md
+++ /dev/null
@@ -1,206 +0,0 @@
----
-layout: default-layout
-title: How to Get Barcode Location
-description: This page shows how to get barcode location.
-keywords: location, decode result, how-to guides
-needAutoGenerateSidebar: false
----
-
-# How to Get Barcode Location
-
-Once a barcode is found, you could be inclined to highlight it on the image for a better user experience. In this article, we will explain how to get the coordinates of the barcode so that they can be used to highlight the barcode.
-
-## Localization Result
-
-The barcode location information is found within the LocalizationResult attribute of a barcode TextResult object. Each barcode result comes with a localizationResult which can be accessed to get the result coordinate points. The next section will explore the different code snippets for each supported programming language.
-
-First, we must point out that the result coordinates can come in two forms: exact coordinate points in pixels, or as percentages of the total dimensions of the image. If you would like to learn more about how regions and coordinates are calculated, please refer to this [**section**](../../parameters/structure-and-interfaces-of-parameters.md#regiondefinition-and-how-it-works) of the Structure and Interfaces page.
-
-In order to control what form the result location should come in, please use the [ResultCoordinateType](../../parameters/reference/result-coordinate-type.md) parameter to control that.
-
-In either mode, the points are listed in clockwise order, starting from the top-left point of the barcode area.
-
-## Code Snippet
-
-The following code snippet shows how to get the coordinates of the barcode:
-
-
->- JavaScript
->- C
->- C++
->- C#
->- Java
->- Android
->- Objective-C
->- Swift
->- Python
->
->
-```javascript
-(async() => {
- let scanner = await Dynamsoft.DBR.BarcodeScanner.createInstance();
- scanner.onUniqueRead = (txt, result) => {
- let x1 = result.localizationResult.x1;
- let y1 = result.localizationResult.y1;
- let x2 = result.localizationResult.x2;
- let y2 = result.localizationResult.y2;
- let x3 = result.localizationResult.x3;
- let y3 = result.localizationResult.y3;
- let x4 = result.localizationResult.x4;
- let y4 = result.localizationResult.x4;
- /* use the coordinates in some way */
- alert(txt);
- };
- await scanner.show();
-})();
-```
->
-```c
-int iRet = -1;
-char errorBuf[512];
-TextResultArray* paryResult = NULL;
-iRet = DBR_InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- printf("%s\n", errorBuf);
-}
-void* reader = DBR_CreateInstance();
-DBR_DecodeFile(reader, "YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-DBR_GetAllTextResults(reader, &paryResult);
-for (int iIndex = 0; iIndex < paryResult->resultsCount; iIndex++)
-{
- int x1 = paryResult->results[iIndex]->localizationResult->x1;
- int y1 = paryResult->results[iIndex]->localizationResult->y1;
- int x2 = paryResult->results[iIndex]->localizationResult->x2;
- int y2 = paryResult->results[iIndex]->localizationResult->y2;
- int x3 = paryResult->results[iIndex]->localizationResult->x3;
- int y3 = paryResult->results[iIndex]->localizationResult->y3;
- int x4 = paryResult->results[iIndex]->localizationResult->x4;
- int y4 = paryResult->results[iIndex]->localizationResult->y4;
- /* use the coordinates to draw a highlight rectangle around them */
-}
-DBR_FreeTextResults(&paryResult);
-// Add further process
-```
->
-```cpp
-char errorBuf[512];
-int iRet = -1;
-TextResultArray* paryResult = NULL;
-iRet = dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- cout << errorBuf << endl;
-}
-CBarcodeReader* reader = new CBarcodeReader();
-reader->DecodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-reader->GetAllTextResults(&paryResult);
-for (int iIndex = 0; iIndex < paryResult->resultsCount; iIndex++)
-{
- int x1 = paryResult->results[iIndex]->localizationResult->x1;
- int y1 = paryResult->results[iIndex]->localizationResult->y1;
- int x2 = paryResult->results[iIndex]->localizationResult->x2;
- int y2 = paryResult->results[iIndex]->localizationResult->y2;
- int x3 = paryResult->results[iIndex]->localizationResult->x3;
- int y3 = paryResult->results[iIndex]->localizationResult->y3;
- int x4 = paryResult->results[iIndex]->localizationResult->x4;
- int y4 = paryResult->results[iIndex]->localizationResult->y4;
- /* Use the coordinates to draw a highlight rectangle around the barcode */
-}
-CBarcodeReader::FreeTextResults(&paryResult);
-// Add further process
-```
->
-```csharp
-string errorMsg;
-EnumErrorCode iRet = BarcodeReader.InitLicense("YOUR-LICENSE-KEY", out errorMsg);
-if (iRet != EnumErrorCode.DBR_SUCCESS)
-{
- Console.WriteLine(errorMsg);
-}
-BarcodeReader reader = new BarcodeReader();
-TextResult[] result = reader.DecodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-for (int iIndex = 0; iIndex < result.Length; iIndex++)
-{
- Point[] resLocation = result[iIndex].LocalizationResult.ResultPoints;
- //The points array will come out in clockwise order starting from the top-left point
- //add further process with the location points array
-}
-// Add further process
-```
->
-```java
-BarcodeReader.initLicense("YOUR-LICENSE-KEY");
-BarcodeReader reader = new BarcodeReader();
-TextResult[] result = reader.decodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-for (int iIndex = 0; iIndex < result.length; iIndex++)
-{
- Point[] resLocation = result[iIndex].localizationResult.resultPoints;
- //The points array will come out in clockwise order starting from the top-left point
- //add further process with the points, like drawing a rectangle to highlight the barcode
-}
-// Add further process
-```
->
-```java
-BarcodeReader reader = new BarcodeReader();
-TextResult[] result = reader.decodeFile("YOUR-IMAGE-FILE-PATH"); // Start decoding
-for (int iIndex = 0; iIndex < result.length; iIndex++)
-{
- Point[] resLocation = result[iIndex].localizationResult.resultPoints;
- //The points array will come out in clockwise order starting from the top-left point
- //add further process with the points, like drawing a rectangle to highlight the barcode
-}
-// Add further process
-```
->
-```objc
-NSError *error = nil;
-DynamsoftBarcodeReader* reader = [[DynamsoftBarcodeReader alloc] init];
-NSArray* result = [reader decodeFileWithName:@"YOUR-IMAGE-FILE-PATH" error:&err]; // Start decoding
-for (iTextResult* barcode in result)
-{
- NSArray* resLocation = barcode.localizationResult.resultPoints;
- CGPoint resPoint1 = [resLocation[0] CGPointValue];
- CGPoint resPoint2 = [resLocation[1] CGPointValue];
- CGPoint resPoint3 = [resLocation[2] CGPointValue];
- CGPoint resPoint4 = [resLocation[3] CGPointValue];
- //The points are listed in clockwise order starting from the top-left point
- //add further process with the above result coordinates
-}
-// Add further process
-```
->
-```swift
-let reader = DynamsoftBarcodeReader.init()
-var result: [iTextResult]? = nil
-var resLocation:[CGPoint]
-do {
- result = try reader.decodeFileWithName("YOUR-IMAGE-FILE-PATH")
-} catch let err {
-} // Start decoding
-for barcode in result ?? [] {
- resLocation = barcode.localizationResult.resultPoints as! [CGPoint]
- let resPoint1:CGPoint = resLocation[0]
- let resPoint2:CGPoint = resLocation[1]
- let resPoint3:CGPoint = resLocation[2]
- let resPoint4:CGPoint = resLocation[3]
- //add further process with the coordinate points
-}
-// Add further process
-```
->
-```python
-error = BarcodeReader.init_license("YOUR-LICENSE-KEY")
-if error[0] != EnumErrorCode.DBR_OK:
- print(error[1])
-dbr = BarcodeReader()
-text_results = dbr.decode_file("YOUR-IMAGE-FILE-PATH")
-for result in text_results:
- resPoints = result.localization_result.localization_points
- resPoint1 = resPoints[0]
- resPoint2 = resPoints[1]
- resPoint3 = resPoints[2]
- resPoint4 = resPoints[3]
- #add further process with the resPoints tuple or with the individual result points
-```
\ No newline at end of file
diff --git a/programming/features/get-confidence-rotation-v10.0.0.md b/programming/features/get-confidence-rotation-v10.0.0.md
deleted file mode 100644
index 345db41b..00000000
--- a/programming/features/get-confidence-rotation-v10.0.0.md
+++ /dev/null
@@ -1,117 +0,0 @@
----
-layout: default-layout
-title: How to Get Barcode Confidence and Angle
-description: This page shows how to get barcode confidence and angle.
-keywords: angle, confidence, decode result, how-to guides
-needAutoGenerateSidebar: false
----
-
-# How to Get Barcode Confidence and Rotation Angle
-
-This article offers two examples about how to get result confidence and barcode rotation angle.
-
-## Barcode Confidence
-
-The score of recognition confidence could measure the reliability of a recognized result. The higher the score, the more precise the results are.
-
-## Barcode Rotation Angle
-
-Dynamsoft Barcode Reader SDK is able to detect barcodes at all angles. The SDK is also able to return the angles of the barcodes decoded.
-
-The following illustrations will show how the angle is calculated for different barcode types:
-
-1. OneD Barcode
- ![OneD Barcode Rotation Angle][1]
-
-2. QR Code
- ![QR Code Rotation Angle][2]
-
-3. Data Matrix
- ![Data Matrix Rotation Angle][3]
-
-4. Aztec
- ![Aztec Rotation Angle][4]
-
-5. Maxicode
- ![Maxicode Rotation Angle][5]
-
-## Code Snippet for Getting Confidence and Angle
-
-The following code snippet shows how to get the confidence and rotation angle of the barcode result:
-
-
- >- C++
- >- Android
- >- Objective-C
- >- Swift
- >
->
-```c++
-CCaptureVisionRouter* cvr = new CCaptureVisionRouter;
-CCapturedResult* result = cvr->Capture("IMAGE-FILE-PATH", CPresetTemplate::PT_READ_BARCODES);
-if (result->GetErrorCode() != 0) {
- cout << "Error: " << result->GetErrorCode() << "," << result->GetErrorString() << endl;
-}
-int capturedResultItemCount = result->GetCount();
-for (int j = 0; j < capturedResultItemCount; j++)
-{
- const CCapturedResultItem* capturedResultItem = result->GetItem(j);
- CapturedResultItemType type = capturedResultItem->GetType();
- if (type == CapturedResultItemType::CRIT_BARCODE)
- {
- const CBarcodeResultItem* barcodeResultItem = dynamic_cast (capturedResultItem);
- cout << "Result " << j + 1 << endl;
- cout << "Confidence: " << barcodeResultItem->GetConfidence() << endl;
- cout << "Angle: " << barcodeResultItem->GetAngle() << endl;
- }
-}
-// more process here
-```
->
-```java
-public void onDecodedBarcodesReceived(DecodedBarcodesResult result) {
- if (result != null){
- BarcodeResultItem[] items = result.getItems();
- for (int i=0; i < items.length; i++){
- BarcodeResultItem item = items[i];
- Log.i("DecodedBarcodes", "onDecodedBarcodesReceived: This is the number "+i+" barcode");
- int confidence = item.getConfidence();
- Log.i("DecodedBarcodes", "The confidence of the barcode is: "+confidence);
- int angle = item.getAngle();
- Log.i("DecodedBarcodes", "The rotation angle of the barcode is: "+angle);
- }
- }
-}
-```
->
-```objc
-- (void)onDecodedBarcodesReceived:(DSDecodedBarcodesResult *)result {
- if (result.items.count > 0) {
- for (DSBarcodeResultItem *item in result.items) {
- NSInteger confidence = item.confidence;
- NSInteger angle = item.angle;
- }
- }
-}
-```
->
-```swift
-func onDecodedBarcodesReceived(_ result: DecodedBarcodesResult) {
- if let items = result.items, items.count > 0 {
- for item in items {
- let confidence = item.confidence
- let angle = item.angle
- }
- }
-}
-```
-
-[1]: assets/get-confidence-rotation/1d-angle.png
-
-[2]: assets/get-confidence-rotation/qr-angle.png
-
-[3]: assets/get-confidence-rotation/dm-angle.png
-
-[4]: assets/get-confidence-rotation/aztec-angle.png
-
-[5]: assets/get-confidence-rotation/maxicode-angle.png
diff --git a/programming/features/get-confidence-rotation-v9.6.42.md b/programming/features/get-confidence-rotation-v9.6.42.md
deleted file mode 100644
index 3d2000c7..00000000
--- a/programming/features/get-confidence-rotation-v9.6.42.md
+++ /dev/null
@@ -1,201 +0,0 @@
----
-layout: default-layout
-title: How to Get Barcode Confidence and Angle
-description: This page shows how to get barcode confidence and angle.
-keywords: angle, confidence, decode result, how-to guides
-needAutoGenerateSidebar: false
----
-
-# How to Get Barcode Confidence and Rotation Angle
-
-This article offers two examples about how to get result confidence and barcode rotation angle.
-
-## Barcode Confidence
-
-The score of recognition confidence could measure the reliability of a recognized result. The higher the score, the more precise the results are.
-
-## Barcode Rotation Angle
-
-Dynamsoft Barcode Reader SDK is able to detect barcodes at all angles. The SDK is also able to return the angles of the barcodes decoded.
-
-The following illustrations will show how the angle is calculated for different barcode types:
-
-1. OneD Barcode
- ![OneD Barcode Rotation Angle][1]
-
-2. QR Code
- ![QR Code Rotation Angle][2]
-
-3. Data Matrix
- ![Data Matrix Rotation Angle][3]
-
-4. Aztec
- ![Aztec Rotation Angle][4]
-
-5. Maxicode
- ![Maxicode Rotation Angle][5]
-
-## Code Snippet for Getting Confidence and Angle
-
-The following code snippet shows how to get the confidence and rotation angle of the barcode result:
-
-
->- JavaScript
->- C
->- C++
->- C#
->- Java
->- Android
->- Objective-C
->- Swift
->- Python
->
->
-```javascript
-(async() => {
- let scanner = await Dynamsoft.DBR.BarcodeScanner.createInstance();
- scanner.onUniqueRead = (txt, result) => {
- let conficence = result.localizationResult.confidence;
- let angle = result.localizationResult.angle;
- alert(txt);
- };
- await scanner.show();
-})();
-```
->
-```c
-int iRet = -1;
-char errorBuf[512];
-TextResultArray* paryResult = NULL;
-iRet = DBR_InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- printf("%s\n", errorBuf);
-}
-void* reader = DBR_CreateInstance();
-DBR_DecodeFile(reader, "YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-DBR_GetAllTextResults(reader, &paryResult);
-for (int iIndex = 0; iIndex < paryResult->resultsCount; iIndex++)
-{
- int confidence = paryResult->results[iIndex]->results[0]->confidence;
- int angle = paryResult->results[iIndex]->localizationResult->angle;
- //add further process with the confidence and angle
-}
-DBR_FreeTextResults(&paryResult);
-// Add further process
-```
->
-```cpp
-char errorBuf[512];
-int iRet = -1;
-TextResultArray* paryResult = NULL;
-iRet = dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- cout << errorBuf << endl;
-}
-CBarcodeReader* reader = new CBarcodeReader();
-reader->DecodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-reader->GetAllTextResults(&paryResult);
-for (int iIndex = 0; iIndex < paryResult->resultsCount; iIndex++)
-{
- int confidence = paryResult->results[iIndex]->results[0]->confidence;
- int angle = paryResult->results[iIndex]->localizationResult->angle;
- //add further process with the confidence and angle
-}
-CBarcodeReader::FreeTextResults(&paryResult);
-// Add further process
-```
->
-```csharp
-string errorMsg;
-EnumErrorCode iRet = BarcodeReader.InitLicense("YOUR-LICENSE-KEY", out errorMsg);
-if (iRet != EnumErrorCode.DBR_SUCCESS)
-{
- Console.WriteLine(errorMsg);
-}
-BarcodeReader reader = new BarcodeReader();
-TextResult[] result = reader.DecodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-for (int iIndex = 0; iIndex < result.Length; iIndex++)
-{
- int confidence = result[iIndex].Results[0].Confidence;
- int angle = result[iIndex].LocalizationResult.Angle;
- //add further process with the confidence and angle
-}
-// Add further process
-```
->
-```java
-BarcodeReader.initLicense("YOUR-LICENSE-KEY");
-BarcodeReader reader = new BarcodeReader();
-TextResult[] result = reader.decodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-for (int iIndex = 0; iIndex < result.length; iIndex++)
-{
- int confidence = result[iIndex].results[0].confidence;
- int angle = result[iIndex].localizationResult.angle;
- //add further process with the confidence and angle
-}
-// Add further process
-```
->
-```java
-BarcodeReader reader = new BarcodeReader();
-TextResult[] result = reader.decodeFile("YOUR-IMAGE-FILE-PATH"); // Start decoding
-for (int iIndex = 0; iIndex < result.length; iIndex++)
-{
- int confidence = result[iIndex].results[0].confidence;
- int angle = result[iIndex].localizationResult.angle;
- //add further process with the confidence and angle
-}
-// Add further process
-```
->
-```objc
-NSError *error = nil;
-DynamsoftBarcodeReader* reader = [[DynamsoftBarcodeReader alloc] init];
-NSArray* result = [reader decodeFileWithName:@"YOUR-IMAGE-FILE-PATH" error:&err]; // Start decoding
-for (iTextResult* barcode in result)
-{
- int confidence = barcode.results[0].confidence;
- int angle = barcode.localizationResult.angle;
- //add further process with the confidence and angle
-}
-// Add further process
-```
->
-```swift
-let reader = DynamsoftBarcodeReader.init()
-var result: [iTextResult]? = nil
-do {
- result = try reader.decodeFileWithName("YOUR-IMAGE-FILE-PATH")
-} catch let err {
-} // Start decoding
-for barcode in result ?? [] {
- let confidence = barcode.results[0].confidence
- let angle = barcode.localizationResult.angle
- //add further process with the confidence and angle
-}
-// Add further process
-```
->
-```python
-error = BarcodeReader.init_license("YOUR-LICENSE-KEY")
-if error[0] != EnumErrorCode.DBR_OK:
- print(error[1])
-dbr = BarcodeReader()
-text_results = dbr.decode_file("YOUR-IMAGE-FILE-PATH")
-for result in text_results:
- confidence = result.extended_results[0].confidence
- angle = result.localization_result.angle
- #add further process with the confidence and angle
-```
-
-[1]: assets/get-confidence-rotation/1d-angle.png
-
-[2]: assets/get-confidence-rotation/qr-angle.png
-
-[3]: assets/get-confidence-rotation/dm-angle.png
-
-[4]: assets/get-confidence-rotation/aztec-angle.png
-
-[5]: assets/get-confidence-rotation/maxicode-angle.png
diff --git a/programming/features/get-detailed-info-v10.0.0.md b/programming/features/get-detailed-info-v10.0.0.md
deleted file mode 100644
index 31be9f82..00000000
--- a/programming/features/get-detailed-info-v10.0.0.md
+++ /dev/null
@@ -1,111 +0,0 @@
----
-layout: default-layout
-title: How to Get Detailed Barcode Information
-description: This page shows how to get detailed barcode information.
-keywords: additional information, OneDCodeDetails, QRCodeDetails, PDF417Details, DataMatrixDetails, AztecDetails
-needAutoGenerateSidebar: false
----
-
-# How to Get Detailed Barcode Information
-
-The Dynamsoft Barcode Reader SDK provides APIs for you to get the detailed barcode information like checksum digit, start/stop characters, error correction level, etc. To learn more about what information you can get, see the following items:
-
-- `OneDCodeDetails`: [C++]({{ site.cpp_api }}oned-code-details.html)
-- `QRCodeDetails`: [C++]({{ site.cpp_api }}qr-code-details.html)
-- `PDF417Details`: [C++]({{ site.cpp_api }}pdf417-details.html)
-- `DataMatrixDetails`: [C++]({{ site.cpp_api }}datamatrix-details.html)
-- `AztecDetails`: [C++]({{ site.cpp_api }}aztec-details.html)
-
-Here we take QR Code as example and show how to get the version and model of a QR Code.
-
-## What is the Version of a QR Code?
-
-| QRCode Version | Modules |
-|----------------|---------|
-| Version 1 | 21 x 21 |
-| Version 2 | 25 x 25 |
-| ... | ... |
-| Version N | (17 + N x 4) x (17 + N x 4) |
-| Version 40 | 177 x 177 |
-
-## What is the Model of a QR Code?
-
-| QRCode Model | Description |
-|--------------|---------|
-| Model 1 | The original QR Code. It is a code capable of coding 1,167 numerals with its maximum version being 14 (73 x 73 modules). |
-| Model 2 | Created by improving Model 1 so that this code can be read smoothly even if it is distorted in some way. This code can encode up to 7,089 numerals with its maximum version being 40 (177 x 177 modules). Today, the term QRCode usually refers to QRCode Model 2. |
-
-## Code Snippet for Getting Detailed Barcode Information
-
-
- >- C++
- >- Android
- >- Objective-C
- >- Swift
- >
->
-```c++
-CCaptureVisionRouter* cvr = new CCaptureVisionRouter;
-CCapturedResult* result = cvr->Capture("IMAGE-FILE-PATH", CPresetTemplate::PT_READ_BARCODES);
-if (result->GetErrorCode() != 0) {
- cout << "Error: " << result->GetErrorCode() << "," << result->GetErrorString() << endl;
-}
-int capturedResultItemCount = result->GetCount();
-for (int j = 0; j < capturedResultItemCount; j++)
-{
- const CCapturedResultItem* capturedResultItem = result->GetItem(j);
- CapturedResultItemType type = capturedResultItem->GetType();
- if (type == CapturedResultItemType::CRIT_BARCODE)
- {
- const CBarcodeResultItem* barcodeResultItem = dynamic_cast (capturedResultItem);
- if (barcodeResultItem->GetFormat() == BarcodeFormat::BF_QR_CODE)
- {
- const CQRCodeDetails* detail = dynamic_cast(barcodeResultItem->GetDetails());
- cout << "Version: " << detail->version;
- cout << "Model: " << detail->model;
- }
- }
-}
-// more process here
-```
->
-```java
-public void onDecodedBarcodesReceived(DecodedBarcodesResult result) {
- if (result != null){
- BarcodeResultItem[] items = result.getItems();
- for (int i=0; i < items.length; i++){
- BarcodeResultItem item = items[i];
- Log.i("DecodedBarcodes", "onDecodedBarcodesReceived: This is the number "+i+" barcode");
- QRCodeDetails qrDetails = (QRCodeDetails) item.getDetails();
- int version = qrDetails.getVersion();
- Log.i("DecodedBarcodes", "The version of the QR barcode is: "+version);
- int model = qrDetails.getModel();
- Log.i("DecodedBarcodes", "The model of the QR barcode is: "+model);
- }
- }
-}
-```
->
-```objc
-- (void)onDecodedBarcodesReceived:(DSDecodedBarcodesResult *)result {
- if (result.items.count > 0) {
- for (DSBarcodeResultItem *item in result.items) {
- DSQRCodeDetails *qrDetails = (DSQRCodeDetails *) item.details;
- NSInteger version = qrDetails.version;
- NSInteger model = qrDetails.model;
- }
- }
-}
-```
->
-```swift
-func onDecodedBarcodesReceived(_ result: DecodedBarcodesResult) {
- if let items = result.items, items.count > 0 {
- for item in items {
- let qrCodeDetails = item.details as! QRCodeDetails
- let version = qrCodeDetails.version
- let model = qrCodeDetails.model
- }
- }
-}
-```
diff --git a/programming/features/get-detailed-info-v9.6.42.md b/programming/features/get-detailed-info-v9.6.42.md
deleted file mode 100644
index f04f63a2..00000000
--- a/programming/features/get-detailed-info-v9.6.42.md
+++ /dev/null
@@ -1,226 +0,0 @@
----
-layout: default-layout
-title: How to Get Detailed Barcode Information
-description: This page shows how to get detailed barcode information.
-keywords: additional information, OneDCodeDetails, QRCodeDetails, PDF417Details, DataMatrixDetails, AztecDetails
-needAutoGenerateSidebar: false
----
-
-
-# How to Get Detailed Barcode Information
-
-The Dynamsoft Barcode Reader SDK provides APIs for you to get the detailed barcode information like checksum digit, start/stop characters, error correction level, etc. To learn more about what information you can get, see the following API links:
-
-- [OneDCodeDetails]({{ site.structs }}OneDCodeDetails.html)
-- [QRCodeDetails]({{ site.structs }}QRCodeDetails.html)
-- [PDF417Details]({{ site.structs }}PDF417Details.html)
-- [DataMatrixDetails]({{ site.structs }}DataMatrixDetails.html)
-- [AztecDetails]({{ site.structs }}AztecDetails.html)
-
-Here we take QR Code as example and show how to get the version and model of a QR Code.
-
-## What is the Version of a QR Code?
-
-| QRCode Version | Modules |
-|----------------|---------|
-| Version 1 | 21 x 21 |
-| Version 2 | 25 x 25 |
-| ... | ... |
-| Version N | (17 + N x 4) x (17 + N x 4) |
-| Version 40 | 177 x 177 |
-
-## What is the Model of a QR Code?
-
-| QRCode Model | Description |
-|--------------|---------|
-| Model 1 | The original QR Code. It is a code capable of coding 1,167 numerals with its maximum version being 14 (73 x 73 modules). |
-| Model 2 | Created by improving Model 1 so that this code can be read smoothly even if it is distorted in some way. This code can encode up to 7,089 numerals with its maximum version being 40 (177 x 177 modules). Today, the term QRCode usually refers to QRCode Model 2. |
-
-## Code Snippet for Getting Detailed Barcode Information
-
-
->- JavaScript
->- C
->- C++
->- C#
->- Java
->- Android
->- Objective-C
->- Swift
->- Python
->
->
-```javascript
-(async() => {
- let scanner = await Dynamsoft.DBR.BarcodeScanner.createInstance();
- scanner.onUniqueRead = (txt, result) => {
- // Gets detailed information about QR codes.
- if(result.barcodeFormat == Dynamsoft.DBR.EnumBarcodeFormat.BF_QR_CODE) {
- let QRCodeDetails = result.detailedResult;
- let model = QRCodeDetails.model;
- let version = QRCodeDetails.version;
- let moduleSize = QRCodeDetails.moduleSize;
- }
- };
- await scanner.show();
-})();
-```
->
-```c
-int iRet = -1;
-char errorBuf[512];
-TextResultArray* paryResult = NULL;
-iRet = DBR_InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- printf("%s\n", errorBuf);
-}
-void* reader = DBR_CreateInstance();
-DBR_DecodeFile(reader, "YOUR-IMAGE-FILE-WITH-QR-CODES", ""); // Start decoding
-DBR_GetAllTextResults(reader, &paryResult);
-for (int iIndex = 0; iIndex < paryResult->resultsCount; iIndex++)
-{
- if(BF_QR_CODE == paryResult->results[iIndex]->barcodeFormat)
- {
- QRCodeDetails* qrd = (QRCodeDetails*)paryResult->results[iIndex]->detailedResult; // For QR Code, the type of detailedResult is QRCodeDetails
- printf("QRCode Model:%d \r\n", qrd->model);
- printf("QRCode Version: %d \r\n", qrd->version);
- printf("BarcodeFormat: %s\r\n", paryResult->results[iIndex]->barcodeFormatString);
- printf("Text read: %s\r\n", paryResult->results[iIndex]->barcodeText);
- }
-}
-DBR_FreeTextResults(&paryResult);
-// Add further process
-```
->
-```cpp
-char errorBuf[512];
-int iRet = -1;
-TextResultArray* paryResult = NULL;
-iRet = dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- cout << errorBuf << endl;
-}
-CBarcodeReader* reader = new CBarcodeReader();
-reader->DecodeFile("YOUR-IMAGE-FILE-WITH-QR-CODES", ""); // Start decoding
-reader->GetAllTextResults(&paryResult);
-for (int iIndex = 0; iIndex < paryResult->resultsCount; iIndex++)
-{
- if(BF_QR_CODE == paryResult->results[iIndex]->barcodeFormat)
- {
- QRCodeDetails* qrd = (QRCodeDetails*)paryResult->results[iIndex]->detailedResult; // For QR Code, the type of detailedResult is QRCodeDetails
- cout << "QRCode Model: " << qrd->model << endl;
- cout << "QRCode Version: " << qrd->version << endl;
- cout << "Barcode Format: " << paryResult->results[iIndex]->barcodeFormatString << endl;
- cout << "Barcode Text: " << paryResult->results[iIndex]->barcodeText << endl;
- }
-}
-CBarcodeReader::FreeTextResults(&paryResult);
-// Add further process
-```
->
-```csharp
-string errorMsg;
-EnumErrorCode iRet = BarcodeReader.InitLicense("YOUR-LICENSE-KEY", out errorMsg);
-if (iRet != EnumErrorCode.DBR_SUCCESS)
-{
- Console.WriteLine(errorMsg);
-}
-BarcodeReader reader = new BarcodeReader();
-TextResult[] result = reader.DecodeFile("YOUR-IMAGE-FILE-WITH-QR-CODES", ""); // Start decoding
-for (int iIndex = 0; iIndex < result.Length; iIndex++)
-{
- if(EnumBarcodeFormat.BF_QR_CODE == result[iIndex].BarcodeFormat)
- {
- QRCodeDetails qrd = (QRCodeDetails)result[iIndex].DetailedResult; // For QR Code, the type of detailedResult is QRCodeDetails
- Console.WriteLine("QRCode Model: " + qrd.Model);
- Console.WriteLine("QRCode Version: " + qrd.Version);
- Console.WriteLine("Barcode Format: " + result[iIndex].BarcodeFormatString);
- Console.WriteLine("Barcode Text: " + result[iIndex].BarcodeText);
- }
-}
-// Add further process
-```
->
-```java
-BarcodeReader.initLicense("YOUR-LICENSE-KEY");
-BarcodeReader reader = new BarcodeReader();
-TextResult[] result = reader.decodeFile("YOUR-IMAGE-FILE-WITH-QR-CODES", ""); // Start decoding
-for (int iIndex = 0; iIndex < result.length; iIndex++)
-{
- if(EnumBarcodeFormat.BF_QR_CODE == result[iIndex].barcodeFormat)
- {
- QRCodeDetails qrd = (QRCodeDetails)result[iIndex].detailedResult; // For QR Code, the type of detailedResult is QRCodeDetails
- System.out.println("QRCode Model: " + qrd.model);
- System.out.println("QRCode Version: " + qrd.version);
- System.out.println("Barcode Format: " + result[iIndex].barcodeFormatString);
- System.out.println("Barcode Text: " + result[iIndex].barcodeText);
- }
-}
-// Add further process
-```
->
-```java
-BarcodeReader reader = new BarcodeReader();
-TextResult[] result = reader.decodeFile("YOUR-IMAGE-FILE-WITH-QR-CODES"); // Start decoding
-for (int iIndex = 0; iIndex < result.length; iIndex++)
-{
- if(EnumBarcodeFormat.BF_QR_CODE == result[iIndex].barcodeFormat)
- {
- // For QR Code, the type of detailedResult is QRCodeDetails
- QRCodeDetails qrd = (QRCodeDetails)result[iIndex].detailedResult;
- //Add further process
- }
-}
-```
->
-```objc
-NSError *err = nil;
-DynamsoftBarcodeReader* reader = [[DynamsoftBarcodeReader alloc] init];
-NSArray* result = [reader decodeFileWithName:@"YOUR-IMAGE-FILE-PATH" error:&err]; // Start decoding
-for (iTextResult* barcode in result)
-{
- if(barcode.barcodeFormat == EnumBarcodeFormatQRCODE)
- {
- // For QR Code, the type of detailedResult is QRCodeDetails
- iQRCodeDetails* qrd = (iQRCodeDetails*)barcode.detailedResult;
- //Add further process
- }
-}
-```
->
-```swift
-let reader = DynamsoftBarcodeReader.init()
-var result: [iTextResult]? = nil
-do {
- result = try reader.decodeFileWithName("YOUR-IMAGE-FILE-PATH")
-} catch let err {
-} // Start decoding
-for barcode in result ?? [] {
- if barcode.barcodeFormat == EnumBarcodeFormat.QRCODE {
- // For QR Code, the type of detailedResult is QRCodeDetails
- let qrd = barcode.detailedResult as! QRCodeDetails
- //Add further process
- }
-}
-```
->
-```python
-error = BarcodeReader.init_license("YOUR-LICENSE-KEY")
-if error[0] != EnumErrorCode.DBR_OK:
- print(error[1])
-dbr = BarcodeReader()
-text_results = dbr.decode_file("YOUR-IMAGE-FILE-WITH-QR-CODES")
-for result in text_results:
- if EnumBarcodeFormat.BF_QR_CODE == result.barcode_format:
- qr_detail = result.detailed_result
- print("QRCode Model: ")
- print(qr_detail.model)
- print("QRCode Version: ")
- print(qr_detail.versions)
- print("Barcode Format: ")
- print(result.barcode_format_string)
- print("Barcode Text: ")
- print(result.barcode_text)
-```
diff --git a/programming/features/preprocess-images-v10.5.2100.md b/programming/features/preprocess-images-v10.5.2100.md
deleted file mode 100644
index e7f8938c..00000000
--- a/programming/features/preprocess-images-v10.5.2100.md
+++ /dev/null
@@ -1,122 +0,0 @@
----
-layout: default-layout
-description: This article introduces how to perform grayscale enhancement according to scene characteristics to improve the success rate of DBR positioning code area
-title: Preprocess Images based on Different Scenarios
-keywords: grayscale enhancement
-needAutoGenerateSidebar: false
----
-
-# How to Preprocess Images based on Different Scenarios
-
-The default configuration of Dynamsoft Barcode Reader (DBR) can handle most common scenarios. However, there are still some specific scenarios where the default configuration of DBR cannot locate the code area for decoding. For these specific scenarios, DBR has built-in [`GrayscaleEnhancementModes`]({{ site.dcvb_parameters_reference }}image-parameter/grayscale-enhancement-modes.html) to configure the grayscale enhancement algorithm. For different scenarios, a specific enhancement algorithm can effectively improve the success rate when detecting areas of interest. This article will detail how to choose the appropriate enhancement mode according to the scenario.
-
-## grayscale enhancement mode
-
-DBR provides three grayscale enhancement modes, `GEM_GRAY_EQUALIZE`, `GEM_GRAY_SMOOTH` and `GEM_SHARPEN_SMOOTH`, to deal with different situations. Below we will introduce the scenarios where one of the these modes helps.
-
-- `GEM_GRAY_EQUALIZE`
-
-Gray-level equalization, which is used to enhance the contrast of an image. The sample image below demonstrates the effect, before and after grayscale equalization. The colours of the QR code on the original image (left) is too similar to the background color, which would makes decoding, as is, more difficult. The picture on the right is the result of preprocessing through `GEM_GRAY_EQUALIZE`. The QR code becomes much more pronounced, which will make the subsequent decoding process much easier.
-
-![Before Equalizing][1]![After Equalizing][2]
-
-This mode has an additional parameter `Sensitivity`, where the default value is 5, and the range is [1~9]. When you set `GEM_GRAY_EQUALIZE`, `DBR` does not necessarily perform equalization but will judge whether to perform it based on the gray distribution and `Sensitivity` of the image itself. The greater the value of `Sensitivity`, the more likely that DBR will perform the equalization process. Setting it to 9 means that gray-scale equalization must be performed while 1 means to skip the process.
-
-- `GEM_GRAY_SMOOTH`
-
-Grayscale smoothing, which is used to reduce image noise and texture. The following sample image shows a grayscale image with more noise and its corresponding binarized image. Obviously, there are many noises which will be bad for barcode reading.
-
-![Grayscale Before Smoothing][3]![Binarized Before Smoothing][5]
-
-After configuring `GEM_GRAY_SMOOTH` for smoothing. The noise of the binarized image are well handled well as shown below.
-
-![Grayscale After Smoothing][4]![Binarized After Smoothing][6]
-
-- `GEM_SHARPEN_SMOOTH`
-
-Sharpening and smoothing are used to reduce blur. The following sample image demonstrates the effect before and after processing in this mode. It is obvious that the processed picture is much clearer.
-
-![Before Sharpen-Smoothing][7]![After Sharpen-Smoothing][8]
-
-## Combination of enhancement modes
-
-If the image to be processed is more complicated, you can use the above grayscale enhancement modes in combination. After configuring multiple modes through [`GrayscaleEnhancementModes`]({{ site.dcvb_parameters_reference }}image-parameter/grayscale-enhancement-modes.html), DBR will try each mode in sequence until the number of successful decoded barcodes meets the expected value (`ExpectedBarcodeCount`), or the algorithm combination is exhausted.
-
-## Example
-
-Below is an example illustrating how to configure the parameter `GrayscaleEnhancementModes`.
-
-* Update parameter `GrayscaleEnhancementModes` in your JSON template
-
- ```json
- {
- "CaptureVisionTemplates": [
- {
- "Name": "CV_0",
- "ImageROIProcessingNameArray": ["TA_0" ]
- }
- ],
- "TargetROIDefOptions" : [
- {
- "Name": "TA_0",
- "TaskSettingNameArray": [ "BR_0" ]
- }
- ],
- "BarcodeReaderTaskSettingOptions": [
- {
- "Name" : "BR_0",
- "SectionImageParameterArray": [
- {
- "Section": "ST_REGION_PREDETECTION",
- "ImageParameterName": "IP_0"
- },
- {
- "Section": "ST_BARCODE_LOCALIZATION",
- "ImageParameterName": "IP_0"
- },
- {
- "Section": "ST_BARCODE_DECODING",
- "ImageParameterName": "IP_0"
- }
- ]
- }
- ],
- "ImageParameterOptions": [
- {
- "Name": "IP_0",
- "GrayscaleEnhancementModes": [
- {
- "Mode": "GEM_GRAY_EQUALIZE",
- "Sensitivity": 9
- },
- {
- "Mode": "GEM_GRAY_SMOOTH",
- "SmoothBlockSizeX": 10,
- "SmoothBlockSizeY": 10
- },
- {
- "Mode": "GEM_SHARPEN_SMOOTH",
- "SmoothBlockSizeX": 5,
- "SmoothBlockSizeY": 5,
- "SharpenBlockSizeX": 5,
- "SharpenBlockSizeY": 5
- }
- ]
- }
- ]
- }
- ```
-
-* Apply the above settings following the article [Use Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html#json-template).
-
-
-[1]:assets/preprocess-images/gray-equalize-sample-1.png
-[2]:assets/preprocess-images/gray-equalize-sample-2.png
-[3]:assets/preprocess-images/gray-smooth-sample-1.png
-[4]:assets/preprocess-images/gray-smooth-sample-2.png
-[5]:assets/preprocess-images/gray-smooth-sample-3.png
-[6]:assets/preprocess-images/gray-smooth-sample-4.png
-[7]:assets/preprocess-images/before-sharpen-sample.png
-[8]:assets/preprocess-images/after-sharpen-sample.png
-[9]:assets/preprocess-images/before-close-sample.png
-[10]:assets/preprocess-images/after-close-sample.png
diff --git a/programming/features/preprocess-images-v9.6.42.md b/programming/features/preprocess-images-v9.6.42.md
deleted file mode 100644
index 7ab48795..00000000
--- a/programming/features/preprocess-images-v9.6.42.md
+++ /dev/null
@@ -1,390 +0,0 @@
----
-layout: default-layout
-description: This article introduces how to perform image preprocessing according to scene characteristics to improve the success rate of DBR positioning code area
-title: Preprocess Images based on Different Scenarios
-keywords: image preprocessing
-needAutoGenerateSidebar: false
----
-
-# How to Preprocess Images based on Different Scenarios
-
-The default configuration of Dynamsoft Barcode Reader (DBR) can handle most common scenarios. However, there are still some specific scenarios where the default configuration of DBR cannot locate the code area for decoding. For these specific scenarios, DBR has built-in [`ImagePreprocessingModes`]({{ site.parameters_reference }}image-preprocessing-modes.html#imagepreprocessingmodes) to configure the image preprocessing algorithm. For different scenarios, a specific pre-processing algorithm can effectively improve the success rate when detecting areas of interest. This article will detail how to choose the appropriate pre-processing mode according to the scenario.
-
-## Image preprocessing mode
-
-DBR provides multiple image preprocessing modes to deal with different situations. After configuring the preprocessing modes, we can judge the effectiveness and make adjustments by looking at the intermediate result `IRT_PREPROCESSED_IMAGE`, which is the pre-processed grayscale image, and `IRT_BINARIZED_IMAGE`, which is the binarized image. Below we will introduce the scenarios where one of the four modes `IPM_GRAY_EQUALIZE`, `IPM_GRAY_SMOOTH`, `IPM_SHARPEN_SMOOTH` and `IPM_MORPHOLOGY` helps.
-
-- `IPM_GRAY_EQUALIZE`
-
-Gray-level equalization, which is used to enhance the contrast of an image. The sample image below demonstrates the effect, before and after grayscale equalization. The colours of the QR code on the original image (left) is too similar to the background color, which would makes decoding, as is, more difficult. The picture on the right is the result of preprocessing through `IPM_GRAY_EQUALIZE`. The QR code becomes much more pronounced, which will make the subsequent decoding process much easier.
-
-![Before Equalizing][1]![After Equalizing][2]
-
-This mode has an additional parameter `Sensitivity`, where the default value is 5, and the range is [1~9]. When you set `IPM_GRAY_EQUALIZE`, `DBR` does not necessarily perform equalization but will judge whether to perform it based on the gray distribution and `Sensitivity` of the image itself. The greater the value of `Sensitivity`, the more likely that DBR will perform the equalization process. Setting it to 9 means that gray-scale equalization must be performed while 1 means to skip the process.
-
-- `IPM_GRAY_SMOOTH`
-
-Grayscale smoothing, which is used to reduce image noise and texture. The following sample image shows a grayscale image with more noise and its corresponding binarized image. Obviously, there are many noises which will be bad for barcode reading.
-
-![Grayscale Before Smoothing][3]![Binarized Before Smoothing][5]
-
-After configuring `IPM_GRAY_SMOOTH` for smoothing. The noise of the binarized image are well handled well as shown below.
-
-![Grayscale After Smoothing][4]![Binarized After Smoothing][6]
-
-- `IPM_SHARPEN_SMOOTH`
-
-Sharpening and smoothing are used to reduce blur. The following sample image demonstrates the effect before and after processing in this mode. It is obvious that the processed picture is much clearer.
-
-![Before Sharpen-Smoothing][7]![After Sharpen-Smoothing][8]
-
-- `IPM_MORPHOLOGY`
-
-This mode improves the binarization process by eliminating noise and filling holes through corrosion and expansion operations. It is suitable for when the barcode area is polluted or destroyed. The following sample image demonstrates the effect.
-
-![Before Morphology][9]![After Morphology][10]
-
-## Combination of pre-processing modes
-
-If the image to be processed is more complicated, you can use the above image preprocessing modes in combination. After configuring multiple modes through [`ImagePreprocessingModes`]({{ site.parameters_reference }}image-preprocessing-modes.html#imagepreprocessingmodes), DBR will try each mode in sequence until the number of successful decoded barcodes meets the expected value (`ExpectedBarcodeCount`), or the algorithm combination is exhausted.
-
-## Sample Code
-
-- Using RuntimeSetting
-
-
->- JavaScript
->- C
->- C++
->- C#
->- Java
->- Android
->- Objective-C
->- Swift
->- Python
->
->
-```javascript
-// Obtains the current runtime settings of DBR.
-let rs = await scanner.getRuntimeSettings();
-// Sets the preprocessing modes
-rs.furtherModes.imagePreprocessingModes[0] = Dynamsoft.DBR.EnumImagePreprocessingMode.IPM_GRAY_EQUALIZE;
-rs.furtherModes.imagePreprocessingModes[1] = Dynamsoft.DBR.EnumImagePreprocessingMode.IPM_GRAY_SMOOTH;
-rs.furtherModes.imagePreprocessingModes[2] = Dynamsoft.DBR.EnumImagePreprocessingMode.IPM_SHARPEN_SMOOTH;
-rs.furtherModes.imagePreprocessingModes[3] = Dynamsoft.DBR.EnumImagePreprocessingMode.IPM_MORPHOLOGY;
-// Updates the settings.
-await scanner.updateRuntimeSettings(rs);
-// Fine-tunes some arguments of these modes
-scanner.setModeArgument("imagePreprocessingModes", 0, "Sensitivity", "9");
-scanner.setModeArgument("imagePreprocessingModes", 1, "SmoothBlockSizeX", "10");
-scanner.setModeArgument("imagePreprocessingModes", 1, "SmoothBlockSizeY", "10");
-scanner.setModeArgument("imagePreprocessingModes", 2, "SharpenBlockSizeX", "5");
-scanner.setModeArgument("imagePreprocessingModes", 2, "SharpenBlockSizeY", "5");
-scanner.setModeArgument("imagePreprocessingModes", 3, "MorphOperation", "Close");
-scanner.setModeArgument("imagePreprocessingModes", 3, "MorphOperationKernelSizeX", "7");
-scanner.setModeArgument("imagePreprocessingModes", 3, "MorphOperationKernelSizeY", "7");
-await scanner.show();
-```
->
-```c
-int iRet = -1;
-char errorBuf[512];
-iRet = DBR_InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- printf("%s\n", errorBuf);
-}
-void* barcodeReader = DBR_CreateInstance();
-PublicRuntimeSettings runtimeSettings;
-DBR_GetRuntimeSettings(barcodeReader, &runtimeSettings); //Get the current RuntimeSettings
-runtimeSettings.furtherModes.imagePreprocessingModes[0] = IPM_GRAY_EQUALIZE;
-runtimeSettings.furtherModes.imagePreprocessingModes[1] = IPM_GRAY_SMOOTH;
-runtimeSettings.furtherModes.imagePreprocessingModes[2] = IPM_SHARPEN_SMOOTH;
-runtimeSettings.furtherModes.imagePreprocessingModes[3] = IPM_MORPHOLOGY;
-DBR_UpdateRuntimeSettings(barcodeReader, &runtimeSettings, errorBuf, 512); // Update RuntimeSettings with above setting
-DBR_SetModeArgument(barcodeReader, "ImagePreprocessingModes", 0, "Sensitivity", "9", sError, 512);
-DBR_SetModeArgument(barcodeReader, "ImagePreprocessingModes", 1, "SmoothBlockSizeX", "10", sError, 512);
-DBR_SetModeArgument(barcodeReader, "ImagePreprocessingModes", 1, "SmoothBlockSizeY", "10", sError, 512);
-DBR_SetModeArgument(barcodeReader, "ImagePreprocessingModes", 2, "SharpenBlockSizeX", "5", sError, 512);
-DBR_SetModeArgument(barcodeReader, "ImagePreprocessingModes", 2, "SharpenBlockSizeY", "5", sError, 512);
-DBR_SetModeArgument(barcodeReader, "ImagePreprocessingModes", 3, "MorphOperation", "Close", sError, 512);
-DBR_SetModeArgument(barcodeReader, "ImagePreprocessingModes", 3, "MorphOperationKernelSizeX", "7", sError, 512);
-DBR_SetModeArgument(barcodeReader, "ImagePreprocessingModes", 3, "MorphOperationKernelSizeY", "7", sError, 512);
-DBR_DecodeFile(barcodeReader, "YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```cpp
-char errorBuf[512];
-int iRet = -1;
-iRet = dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- cout << errorBuf << endl;
-}
-CBarcodeReader* reader = new CBarcodeReader();
-PublicRuntimeSettings* runtimeSettings = new PublicRuntimeSettings();
-reader->GetRuntimeSettings(runtimeSettings); //Get the current RuntimeSettings
-runtimeSettings->furtherModes.imagePreprocessingModes[0] = IPM_GRAY_EQUALIZE;
-runtimeSettings->furtherModes.imagePreprocessingModes[1] = IPM_GRAY_SMOOTH;
-runtimeSettings->furtherModes.imagePreprocessingModes[2] = IPM_SHARPEN_SMOOTH;
-runtimeSettings->furtherModes.imagePreprocessingModes[3] = IPM_MORPHOLOGY;
-reader->UpdateRuntimeSettings(runtimeSettings, errorBuf, 512); // Update RuntimeSettings with above setting
-reader->SetModeArgument("ImagePreprocessingModes", 0, "Sensitivity", "9", sError, 512);
-reader->SetModeArgument("ImagePreprocessingModes", 1, "SmoothBlockSizeX", "10", sError, 512);
-reader->SetModeArgument("ImagePreprocessingModes", 1, "SmoothBlockSizeY", "10", sError, 512);
-reader->SetModeArgument("ImagePreprocessingModes", 2, "SharpenBlockSizeX", "5", sError, 512);
-reader->SetModeArgument("ImagePreprocessingModes", 2, "SharpenBlockSizeY", "5", sError, 512);
-reader->SetModeArgument("ImagePreprocessingModes", 3, "MorphOperation", "Close", sError, 512);
-reader->SetModeArgument("ImagePreprocessingModes", 3, "MorphOperationKernelSizeX", "7", sError, 512);
-reader->SetModeArgument("ImagePreprocessingModes", 3, "MorphOperationKernelSizeY", "7", sError, 512);
-reader->DecodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```csharp
-string errorMsg;
-EnumErrorCode iRet = BarcodeReader.InitLicense("YOUR-LICENSE-KEY", out errorMsg);
-if (iRet != EnumErrorCode.DBR_SUCCESS)
-{
- Console.WriteLine(errorMsg);
-}
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.GetRuntimeSettings(); //Get the current RuntimeSettings
-settings.FurtherModes.ImagePreprocessingModes[0] = EnumImagePreprocessingMode.IPM_GRAY_EQUALIZE;
-settings.FurtherModes.ImagePreprocessingModes[1] = EnumImagePreprocessingMode.IPM_GRAY_SMOOTH;
-settings.FurtherModes.ImagePreprocessingModes[2] = EnumImagePreprocessingMode.IPM_SHARPEN_SMOOTH;
-settings.FurtherModes.ImagePreprocessingModes[3] = EnumImagePreprocessingMode.IPM_MORPHOLOGY;
-reader.UpdateRuntimeSettings(settings); // Update RuntimeSettings with above setting
-reader.SetModeArgument("ImagePreprocessingModes", 0, "Sensitivity", "9", out errorMsg);
-reader.SetModeArgument("ImagePreprocessingModes", 1, "SmoothBlockSizeX", "10", out errorMsg);
-reader.SetModeArgument("ImagePreprocessingModes", 1, "SmoothBlockSizeY", "10", out errorMsg);
-reader.SetModeArgument("ImagePreprocessingModes", 2, "SharpenBlockSizeX", "5", out errorMsg);
-reader.SetModeArgument("ImagePreprocessingModes", 2, "SharpenBlockSizeY", "5", out errorMsg);
-reader.SetModeArgument("ImagePreprocessingModes", 3, "MorphOperation", "Close", out errorMsg);
-reader.SetModeArgument("ImagePreprocessingModes", 3, "MorphOperationKernelSizeX", "7", out errorMsg);
-reader.SetModeArgument("ImagePreprocessingModes", 3, "MorphOperationKernelSizeY", "7", out errorMsg);
-TextResult[] result = reader.DecodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```java
-BarcodeReader.initLicense("YOUR-LICENSE-KEY");
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.getRuntimeSettings(); //Get the current RuntimeSettings
-settings.furtherModes.imagePreprocessingModes[0] = EnumImagePreprocessingMode.IPM_GRAY_EQUALIZE;
-settings.furtherModes.imagePreprocessingModes[1] = EnumImagePreprocessingMode.IPM_GRAY_SMOOTH;
-settings.furtherModes.imagePreprocessingModes[2] = EnumImagePreprocessingMode.IPM_SHARPEN_SMOOTH;
-settings.furtherModes.imagePreprocessingModes[3] = EnumImagePreprocessingMode.IPM_MORPHOLOGY;
-reader.updateRuntimeSettings(settings); // Update RuntimeSettings with above setting
-reader.setModeArgument("ImagePreprocessingModes", 0, "Sensitivity", "9");
-reader.setModeArgument("ImagePreprocessingModes", 1, "SmoothBlockSizeX", "10");
-reader.setModeArgument("ImagePreprocessingModes", 1, "SmoothBlockSizeY", "10");
-reader.setModeArgument("ImagePreprocessingModes", 2, "SharpenBlockSizeX", "5");
-reader.setModeArgument("ImagePreprocessingModes", 2, "SharpenBlockSizeY", "5");
-reader.setModeArgument("ImagePreprocessingModes", 3, "MorphOperation", "Close");
-reader.setModeArgument("ImagePreprocessingModes", 3, "MorphOperationKernelSizeX", "7");
-reader.setModeArgument("ImagePreprocessingModes", 3, "MorphOperationKernelSizeY", "7");
-TextResult[] result = reader.decodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```java
-BarcodeReader.initLicense("YOUR-LICENSE-KEY");
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.getRuntimeSettings(); //Get the current RuntimeSettings
-settings.furtherModes.imagePreprocessingModes[0] = EnumImagePreprocessingMode.IPM_GRAY_EQUALIZE;
-settings.furtherModes.imagePreprocessingModes[1] = EnumImagePreprocessingMode.IPM_GRAY_SMOOTH;
-settings.furtherModes.imagePreprocessingModes[2] = EnumImagePreprocessingMode.IPM_SHARPEN_SMOOTH;
-settings.furtherModes.imagePreprocessingModes[3] = EnumImagePreprocessingMode.IPM_MORPHOLOGY;
-reader.updateRuntimeSettings(settings); // Update RuntimeSettings with above setting
-reader.setModeArgument("ImagePreprocessingModes", 0, "Sensitivity", "9");
-reader.setModeArgument("ImagePreprocessingModes", 1, "SmoothBlockSizeX", "10");
-reader.setModeArgument("ImagePreprocessingModes", 1, "SmoothBlockSizeY", "10");
-reader.setModeArgument("ImagePreprocessingModes", 2, "SharpenBlockSizeX", "5");
-reader.setModeArgument("ImagePreprocessingModes", 2, "SharpenBlockSizeY", "5");
-reader.setModeArgument("ImagePreprocessingModes", 3, "MorphOperation", "Close");
-reader.setModeArgument("ImagePreprocessingModes", 3, "MorphOperationKernelSizeX", "7");
-reader.setModeArgument("ImagePreprocessingModes", 3, "MorphOperationKernelSizeY", "7");
-TextResult[] result = reader.decodeFile("YOUR-IMAGE-FILE-PATH"); // Start decoding
-// Add further process
-```
->
-```objc
-NSError *err = nil;
-DynamsoftBarcodeReader* reader = [[DynamsoftBarcodeReader alloc] init];
-iPublicRuntimeSettings* settings = [reader getRuntimeSettings:&err];//Get the current RuntimeSettings
-settings.furtherModes.imagePreprocessingModes[0] = EnumImagePreprocessingModeGrayEqualize;
-settings.furtherModes.imagePreprocessingModes[1] = EnumImagePreprocessingModeGraySmooth;
-settings.furtherModes.imagePreprocessingModes[2] = EnumImagePreprocessingModeSharpenSmooth;
-settings.furtherModes.imagePreprocessingModes[3] = EnumImagePreprocessingModeMorphology;
-[reader updateRuntimeSettings:settings error:&err]; // Update RuntimeSettings with above setting
-[reader setModeArgument:@"ImagePreprocessingModes" index:0 argumentName:@"Sensitivity" argumentValue:@"9" error:&err];
-[reader setModeArgument:@"ImagePreprocessingModes" index:1 argumentName:@"SmoothBlockSizeX" argumentValue:@"10" error:&err];
-[reader setModeArgument:@"ImagePreprocessingModes" index:1 argumentName:@"SmoothBlockSizeY" argumentValue:@"10" error:&err];
-[reader setModeArgument:@"ImagePreprocessingModes" index:2 argumentName:@"SharpenBlockSizeX" argumentValue:@"5" error:&err];
-[reader setModeArgument:@"ImagePreprocessingModes" index:2 argumentName:@"SharpenBlockSizeY" argumentValue:@"5" error:&err];
-[reader setModeArgument:@"ImagePreprocessingModes" index:3 argumentName:@"MorphOperation" argumentValue:@"Close" error:&err];
-[reader setModeArgument:@"ImagePreprocessingModes" index:3 argumentName:@"MorphOperationKernelSizeX" argumentValue:@"7" error:&err];
-[reader setModeArgument:@"ImagePreprocessingModes" index:3 argumentName:@"MorphOperationKernelSizeY" argumentValue:@"7" error:&err];
-NSArray* result = [reader decodeFileWithName:@"YOUR-IMAGE-FILE-PATH" error:&err]; // Start decoding
-// Add further process
-```
->
-```swift
-let reader = DynamsoftBarcodeReader.init()
-let settings = try? reader.getRuntimeSettings() //Get the current RuntimeSettings
-settings?.furtherModes.imagePreprocessingModes = [EnumImagePreprocessingMode.grayEqualize, EnumImagePreprocessingMode.graySmooth, EnumImagePreprocessingMode.sharpenSmooth, EnumImagePreprocessingMode.morphology]
-do {
- try reader.updateRuntimeSettings(settings) // Update RuntimeSettings with above setting
- try reader.setModeArgument("ImagePreprocessingModes", index:0, argumentName:"Sensitivity", argumentValue:"9")
- try reader.setModeArgument("ImagePreprocessingModes", index:1, argumentName:"SmoothBlockSizeX", argumentValue:"10")
- try reader.setModeArgument("ImagePreprocessingModes", index:1, argumentName:"SmoothBlockSizeY", argumentValue:"10")
- try reader.setModeArgument("ImagePreprocessingModes", index:2, argumentName:"SharpenBlockSizeX", argumentValue:"5")
- try reader.setModeArgument("ImagePreprocessingModes", index:2, argumentName:"SharpenBlockSizeY", argumentValue:"5")
- try reader.setModeArgument("ImagePreprocessingModes", index:3, argumentName:"MorphOperation", argumentValue:"Close")
- try reader.setModeArgument("ImagePreprocessingModes", index:3, argumentName:"MorphOperationKernelSizeX", argumentValue:"7")
- try reader.setModeArgument("ImagePreprocessingModes", index:3, argumentName:"MorphOperationKernelSizeY", argumentValue:"7")
- let result = try reader.decodeFileWithName("YOUR-IMAGE-FILE-PATH") // Add further process
-} catch let err {
-}
-// Add further process
-```
->
-```python
-error = BarcodeReader.init_license("YOUR-LICENSE-KEY")
-if error[0] != EnumErrorCode.DBR_OK:
- print(error[1])
-dbr = BarcodeReader()
-settings = dbr.get_runtime_settings()
-settings.image_preprocessing_modes[0] = EnumImagePreprocessingMode.IPM_GRAY_EQUALIZE
-settings.image_preprocessing_modes[1] = EnumImagePreprocessingMode.IPM_GRAY_SMOOTH
-settings.image_preprocessing_modes[2] = EnumImagePreprocessingMode.IPM_SHARPEN_SMOOTH
-settings.image_preprocessing_modes[3] = EnumImagePreprocessingMode.IPM_MORPHOLOGY
-dbr.update_runtime_settings(settings)
-dbr.set_mode_argument("ImagePreprocessingModes", 0, "Sensitivity", "9")
-dbr.set_mode_argument("ImagePreprocessingModes", 1, "SmoothBlockSizeX", "10")
-dbr.set_mode_argument("ImagePreprocessingModes", 1, "SmoothBlockSizeY", "10")
-dbr.set_mode_argument("ImagePreprocessingModes", 2, "SharpenBlockSizeX", "5")
-dbr.set_mode_argument("ImagePreprocessingModes", 2, "SharpenBlockSizeY", "5")
-dbr.set_mode_argument("ImagePreprocessingModes", 3, "MorphOperation", "Close")
-dbr.set_mode_argument("ImagePreprocessingModes", 3, "MorphOperationKernelSizeX", "7")
-dbr.set_mode_argument("ImagePreprocessingModes", 3, "MorphOperationKernelSizeY", "7")
-text_results = dbr.decode_file("YOUR-IMAGE-FILE-PATH")
-# Add further process
-```
-
-- Using a JSON template
-
-
->- JavaScript
->- C
->- C++
->- C#
->- Java
->- Android
->- Objective-C
->- Swift
->- Python
->
->
-```javascript
-const scanner = await Dynamsoft.DBR.BarcodeScanner.createInstance();
-// Defines settings for the preprocessing in a template.
-let jsonString = "{\"Version\":\"3.0\", \"ImageParameter\":{\"Name\":\"IP1\",\"ImagePreprocessingModes\": [{\"Mode\": \"IPM_GRAY_EQUALIZE\",\"Sensitivity\": 9},{\"Mode\": \"IPM_GRAY_SMOOTH\",\"SmoothBlockSizeX\": 10,\"SmoothBlockSizeY\": 10},{\"Mode\": \"IPM_SHARPEN_SMOOTH\",\"SharpenBlockSizeX\": 5,\"SharpenBlockSizeY\": 5},{\"Mode\": \"IPM_MORPHOLOGY\",\"MorphOperation\": \"Close\",\"MorphOperationKernelSizeX\": 7,\"MorphOperationKernelSizeY\": 7}]}}";
-// Configures the BarcodeScanner object with the settings.
-await scanner.initRuntimeSettingsWithString(jsonString);
-scanner.show();
-```
->
-```c
-int iRet = -1;
-char errorBuf[512];
-iRet = DBR_InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- printf("%s\n", errorBuf);
-}
-void* barcodeReader = DBR_CreateInstance();
-DBR_InitRuntimeSettingsWithString(barcodeReader, "{\"Version\":\"3.0\", \"ImageParameter\":{\"Name\":\"IP1\",\"ImagePreprocessingModes\": [{\"Mode\": \"IPM_GRAY_EQUALIZE\",\"Sensitivity\": 9},{\"Mode\": \"IPM_GRAY_SMOOTH\",\"SmoothBlockSizeX\": 10,\"SmoothBlockSizeY\": 10},{\"Mode\": \"IPM_SHARPEN_SMOOTH\",\"SharpenBlockSizeX\": 5,\"SharpenBlockSizeY\": 5},{\"Mode\": \"IPM_MORPHOLOGY\",\"MorphOperation\": \"Close\",\"MorphOperationKernelSizeX\": 7,\"MorphOperationKernelSizeY\": 7}]}}", CM_OVERWRITE, errorBuf, 512);
-DBR_DecodeFile(barcodeReader, "YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```cpp
-char errorBuf[512];
-int iRet = -1;
-iRet = dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- cout << errorBuf << endl;
-}
-CBarcodeReader* reader = new CBarcodeReader();
-reader->InitRuntimeSettingsWithString("{\"Version\":\"3.0\", \"ImageParameter\":{\"Name\":\"IP1\",\"ImagePreprocessingModes\": [{\"Mode\": \"IPM_GRAY_EQUALIZE\",\"Sensitivity\": 9},{\"Mode\": \"IPM_GRAY_SMOOTH\",\"SmoothBlockSizeX\": 10,\"SmoothBlockSizeY\": 10},{\"Mode\": \"IPM_SHARPEN_SMOOTH\",\"SharpenBlockSizeX\": 5,\"SharpenBlockSizeY\": 5},{\"Mode\": \"IPM_MORPHOLOGY\",\"MorphOperation\": \"Close\",\"MorphOperationKernelSizeX\": 7,\"MorphOperationKernelSizeY\": 7}]}}", CM_OVERWRITE, errorBuf, 512);
-reader->DecodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```csharp
-string errorMsg;
-EnumErrorCode iRet = BarcodeReader.InitLicense("YOUR-LICENSE-KEY", out errorMsg);
-if (iRet != EnumErrorCode.DBR_SUCCESS)
-{
- Console.WriteLine(errorMsg);
-}
-BarcodeReader reader = new BarcodeReader();
-reader.InitRuntimeSettingsWithString("{\"Version\":\"3.0\", \"ImageParameter\":{\"Name\":\"IP1\",\"ImagePreprocessingModes\": [{\"Mode\": \"IPM_GRAY_EQUALIZE\",\"Sensitivity\": 9},{\"Mode\": \"IPM_GRAY_SMOOTH\",\"SmoothBlockSizeX\": 10,\"SmoothBlockSizeY\": 10},{\"Mode\": \"IPM_SHARPEN_SMOOTH\",\"SharpenBlockSizeX\": 5,\"SharpenBlockSizeY\": 5},{\"Mode\": \"IPM_MORPHOLOGY\",\"MorphOperation\": \"Close\",\"MorphOperationKernelSizeX\": 7,\"MorphOperationKernelSizeY\": 7}]}}", EnumConflictMode.CM_OVERWRITE, out errorMsg);
-TextResult[] result = reader.DecodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```java
-BarcodeReader.initLicense("YOUR-LICENSE-KEY");
-BarcodeReader reader = new BarcodeReader();
-reader.initRuntimeSettingsWithString("{\"Version\":\"3.0\", \"ImageParameter\":{\"Name\":\"IP1\",\"ImagePreprocessingModes\": [{\"Mode\": \"IPM_GRAY_EQUALIZE\",\"Sensitivity\": 9},{\"Mode\": \"IPM_GRAY_SMOOTH\",\"SmoothBlockSizeX\": 10,\"SmoothBlockSizeY\": 10},{\"Mode\": \"IPM_SHARPEN_SMOOTH\",\"SharpenBlockSizeX\": 5,\"SharpenBlockSizeY\": 5},{\"Mode\": \"IPM_MORPHOLOGY\",\"MorphOperation\": \"Close\",\"MorphOperationKernelSizeX\": 7,\"MorphOperationKernelSizeY\": 7}]}}", EnumConflictMode.CM_OVERWRITE);
-TextResult[] result = reader.decodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```java
-BarcodeReader reader = new BarcodeReader();
-reader.initRuntimeSettingsWithString("{\"Version\":\"3.0\", \"ImageParameter\":{\"Name\":\"IP1\",\"ImagePreprocessingModes\": [{\"Mode\": \"IPM_GRAY_EQUALIZE\",\"Sensitivity\": 9},{\"Mode\": \"IPM_GRAY_SMOOTH\",\"SmoothBlockSizeX\": 10,\"SmoothBlockSizeY\": 10},{\"Mode\": \"IPM_SHARPEN_SMOOTH\",\"SharpenBlockSizeX\": 5,\"SharpenBlockSizeY\": 5},{\"Mode\": \"IPM_MORPHOLOGY\",\"MorphOperation\": \"Close\",\"MorphOperationKernelSizeX\": 7,\"MorphOperationKernelSizeY\": 7}]}}", EnumConflictMode.CM_OVERWRITE);
-TextResult[] result = reader.decodeFile("YOUR-IMAGE-FILE-PATH"); // Start decoding
-// Add further process
-```
->
-```objc
-NSError* error = nil;
-DynamsoftBarcodeReader* reader = [[DynamsoftBarcodeReader alloc] init];
-[reader initRuntimeSettingsWithString:@"{\"Version\":\"3.0\", \"ImageParameter\":{\"Name\":\"IP1\",\"ImagePreprocessingModes\": [{\"Mode\": \"IPM_GRAY_EQUALIZE\",\"Sensitivity\": 9},{\"Mode\": \"IPM_GRAY_SMOOTH\",\"SmoothBlockSizeX\": 10,\"SmoothBlockSizeY\": 10},{\"Mode\": \"IPM_SHARPEN_SMOOTH\",\"SharpenBlockSizeX\": 5,\"SharpenBlockSizeY\": 5},{\"Mode\": \"IPM_MORPHOLOGY\",\"MorphOperation\": \"Close\",\"MorphOperationKernelSizeX\": 7,\"MorphOperationKernelSizeY\": 7}]}}" confictMode:EnumConflictModeOverwrite error:&error];
-NSArray* result = [reader decodeFileWithName:@"YOUR-IMAGE-FILE-PATH" error:&err]; // Start decoding
-// Add further process
-```
->
-```swift
-let reader = DynamsoftBarcodeReader()
-try? reader.initRuntimeSettingsWithString("{\"Version\":\"3.0\", \"ImageParameter\":{\"Name\":\"IP1\",\"ImagePreprocessingModes\": [{\"Mode\": \"IPM_GRAY_EQUALIZE\",\"Sensitivity\": 9},{\"Mode\": \"IPM_GRAY_SMOOTH\",\"SmoothBlockSizeX\": 10,\"SmoothBlockSizeY\": 10},{\"Mode\": \"IPM_SHARPEN_SMOOTH\",\"SharpenBlockSizeX\": 5,\"SharpenBlockSizeY\": 5},{\"Mode\": \"IPM_MORPHOLOGY\",\"MorphOperation\": \"Close\",\"MorphOperationKernelSizeX\": 7,\"MorphOperationKernelSizeY\": 7}]}}", confictMode:EnumConflictMode.overwrite)
-let result = try? reader.decodeFileWithName("YOUR-IMAGE-FILE-PATH") // Start decoding
-// Add further process
-```
->
-```python
-error = BarcodeReader.init_license("YOUR-LICENSE-KEY")
-if error[0] != EnumErrorCode.DBR_OK:
- print(error[1])
-dbr = BarcodeReader()
-dbr.init_runtime_settings_with_string('{"Version":"3.0", "ImageParameter":{"Name":"IP1","ImagePreprocessingModes": [{"Mode": "IPM_GRAY_EQUALIZE","Sensitivity": 9},{"Mode": "IPM_GRAY_SMOOTH","SmoothBlockSizeX": 10,"SmoothBlockSizeY": 10},{"Mode": "IPM_SHARPEN_SMOOTH","SharpenBlockSizeX": 5,"SharpenBlockSizeY": 5},{"Mode": "IPM_MORPHOLOGY","MorphOperation": "Close","MorphOperationKernelSizeX": 7,"MorphOperationKernelSizeY": 7}]}}')
-text_results = dbr.decode_file("YOUR-IMAGE-FILE-PATH")
-# Add further process
-```
-
-[1]:assets/preprocess-images/gray-equalize-sample-1.png
-[2]:assets/preprocess-images/gray-equalize-sample-2.png
-[3]:assets/preprocess-images/gray-smooth-sample-1.png
-[4]:assets/preprocess-images/gray-smooth-sample-2.png
-[5]:assets/preprocess-images/gray-smooth-sample-3.png
-[6]:assets/preprocess-images/gray-smooth-sample-4.png
-[7]:assets/preprocess-images/before-sharpen-sample.png
-[8]:assets/preprocess-images/after-sharpen-sample.png
-[9]:assets/preprocess-images/before-close-sample.png
-[10]:assets/preprocess-images/after-close-sample.png
diff --git a/programming/features/read-a-large-image-v10.5.2100.md b/programming/features/read-a-large-image-v10.5.2100.md
deleted file mode 100644
index ae9614cb..00000000
--- a/programming/features/read-a-large-image-v10.5.2100.md
+++ /dev/null
@@ -1,65 +0,0 @@
----
-layout: default-layout
-title: Read barcodes from large image - Dynamsoft Barcode Reader SDK
-description: This page describes how to read barcodes from large image in Dynamsoft Barcode Reader SDK.
-keywords: large image, barcode
-needAutoGenerateSidebar: false
----
-
-# How to Read Barcodes from Large Images
-
-In some cases, the captured image is very large, so Dynamsoft Barcode Reader (DBR) may require more memory and take longer to read the barcode. To speed up the barcode localization process and reduce memory overhead, you can configure the `ScaleDownThreshold` parameter to shrink the image size. If the shorter side length of the image is larger than `ScaleDownThreshold`, the library will shrink the image (50% on each dimension) until the shorter side is less than the threshold.
-
->Note:
->
->Don't worry about the location of the barcodes, as DBR will still return their coordinates in the original image.
-
-## Example
-
-Below is an example illustrating how to configure the parameter `ScaleDownThreshold`.
-
-* Update parameter `ScaleDownThreshold` in your JSON template
-
- ```json
- {
- "CaptureVisionTemplates": [
- {
- "Name": "CV_0",
- "ImageROIProcessingNameArray": ["TA_0" ]
- }
- ],
- "TargetROIDefOptions" : [
- {
- "Name": "TA_0",
- "TaskSettingNameArray": [ "BR_0" ]
- }
- ],
- "BarcodeReaderTaskSettingOptions": [
- {
- "Name" : "BR_0",
- "SectionImageParameterArray": [
- {
- "Section": "ST_REGION_PREDETECTION",
- "ImageParameterName": "IP_0"
- },
- {
- "Section": "ST_BARCODE_LOCALIZATION",
- "ImageParameterName": "IP_0"
- },
- {
- "Section": "ST_BARCODE_DECODING",
- "ImageParameterName": "IP_0"
- }
- ]
- }
- ],
- "ImageParameterOptions": [
- {
- "Name": "IP_0",
- "ScaleDownThreshold": 1600
- }
- ]
- }
- ```
-
-* Apply the above settings following the article [Use Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html#json-template).
diff --git a/programming/features/read-a-large-image-v9.6.42.md b/programming/features/read-a-large-image-v9.6.42.md
deleted file mode 100644
index 186b243f..00000000
--- a/programming/features/read-a-large-image-v9.6.42.md
+++ /dev/null
@@ -1,143 +0,0 @@
----
-layout: default-layout
-title: Read barcodes from large image - Dynamsoft Barcode Reader SDK
-description: This page describes how to read barcodes from large image in Dynamsoft Barcode Reader SDK.
-keywords: large image, barcode
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# How to Read Barcodes from Large Images
-
-In some cases, the captured image is very large, so DBR may require more memory and take longer to read the barcode. To speed up the barcode localization process and reduce memory overhead, you can configure the `ScaleDownThreshold` parameter to shrink the image size. If the shorter side length of the image is larger than `ScaleDownThreshold`, the library will shrink the image (50% on each dimension) until the shorter side is less than the threshold.
-
->Note:
->
->1. If the image size is large and the barcode [`module size`](read-barcodes-with-small-module-size.md) is small, shrinking the image size may result in unreadable barcodes.
->2. Don't worry about the location of the barcodes, as DBR will still return their coordinates in the original image.
->3. For the JavaScript edition, a `BarcodeScanner` instance comes with a default `ScaleDownThreshold` of `2300`, which makes it easier to handle continuous video frames.
-
-
- >- JavaScript
- >- Android
- >- Objective-C
- >- Swift
- >- Python
- >- Java
- >- C#
- >- C++
- >- C
- >
->
-```javascript
-let scanner = await Dynamsoft.DBR.BarcodeScanner.createInstance();
-// Force js to compress images larger than 2K.
-scanner.maxCvsSideLength = 2048;
-// Obtains the current runtime settings of DBR.
-let rs = await scanner.getRuntimeSettings();
-// Sets the threshold for scaling down.
-rs.scaleDownThreshold = 2048;
-// Updates the settings.
-await scanner.updateRuntimeSettings(rs);
-await scanner.show();
-```
->
-```java
-// Obtain current runtime settings of `reader` instance.
-PublicRuntimeSettings settings = reader.getRuntimeSettings();
-// Set a suitable scaleDownThreshold
-settings.scaleDownThreshold = 1600;
-// Update the settings.
-reader.updateRuntimeSettings(settings);
-```
->
-```objc
-NSError* err = nil;
-// Obtain current runtime settings of `reader` instance.
-iPublicRuntimeSettings* settings = [reader getRuntimeSettings:&err];
-// Set a suitable scaleDownThreshold
-settings.scaleDownThreshold = 1600;
-// Update the settings.
-[reader updateRuntimeSettings:settings error:&err];
-```
->
-```swift
-// Obtain current runtime settings of `reader` instance.
-let settings = try? reader.getRuntimeSettings()
-// Set a suitable scaleDownThreshold
-settings!.scaleDownThreshold = 1600
-// Update the settings.
-try? reader.updateRuntimeSettings(settings!)
-```
->
-```python
-error = BarcodeReader.init_license("YOUR-LICENSE-KEY")
-if error[0] != EnumErrorCode.DBR_OK:
- print(error[1])
-dbr = BarcodeReader()
-settings = dbr.get_runtime_settings()
-settings.scale_down_threshold = 1600
-dbr.update_runtime_settings(settings)
-text_results = dbr.decode_file("YOUR-IMAGE-FILE-PATH")
-# Add further process
-```
->
-```java
-BarcodeReader.initLicense("YOUR-LICENSE-KEY");
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.getRuntimeSettings(); //Get the current RuntimeSettings
-settings.scaleDownThreshold = 1600;
-reader.updateRuntimeSettings(settings); // Update RuntimeSettings with above setting
-TextResult[] result = reader.decodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```csharp
-string errorMsg;
-EnumErrorCode iRet = BarcodeReader.InitLicense("YOUR-LICENSE-KEY", out errorMsg);
-if (iRet != EnumErrorCode.DBR_SUCCESS)
-{
- Console.WriteLine(errorMsg);
-}
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.GetRuntimeSettings(); //Get the current RuntimeSettings
-settings.ScaleDownThreshold = 1600;
-reader.UpdateRuntimeSettings(settings); // Update RuntimeSettings with above setting
-TextResult[] result = reader.DecodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```cpp
-char errorBuf[512];
-int iRet = -1;
-iRet = dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- cout << errorBuf << endl;
-}
-CBarcodeReader* reader = new CBarcodeReader();
-PublicRuntimeSettings* runtimeSettings = new PublicRuntimeSettings();
-reader->GetRuntimeSettings(runtimeSettings); //Get the current RuntimeSettings
-runtimeSettings->scaleDownThreshold = 1600;
-reader->UpdateRuntimeSettings(runtimeSettings, errorBuf, 512); // Update RuntimeSettings with above setting
-reader->DecodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```c
-int iRet = -1;
-char errorBuf[512];
-iRet = DBR_InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- printf("%s\n", errorBuf);
-}
-void* barcodeReader = DBR_CreateInstance();
-PublicRuntimeSettings runtimeSettings;
-DBR_GetRuntimeSettings(barcodeReader, &runtimeSettings); //Get the current RuntimeSettings
-runtimeSettings.scaleDownThreshold = 1600;
-DBR_UpdateRuntimeSettings(barcodeReader, &runtimeSettings, errorBuf, 512); // Update RuntimeSettings with above setting
-DBR_DecodeFile(barcodeReader, "YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
diff --git a/programming/features/read-barcodes-with-imbalanced-colour-v10.5.2100.md b/programming/features/read-barcodes-with-imbalanced-colour-v10.5.2100.md
deleted file mode 100644
index 1e5e44c1..00000000
--- a/programming/features/read-barcodes-with-imbalanced-colour-v10.5.2100.md
+++ /dev/null
@@ -1,99 +0,0 @@
----
-layout: default-layout
-title: Read barcodes with imbalanced colour - Dynamsoft Barcode Reader SDK
-description: This page describes how to read huge barcodes with imbalanced colour in Dynamsoft Barcode Reader SDK.
-keywords: imbalanced colour barcode
-needAutoGenerateSidebar: false
----
-
-# How to Read Barcodes with Imbalanced Colour
-
-As we all know, any color is composed of red, blue and green (RGB). If the image is a colour image, Dynamsoft Barcode Reader (DBR) will convert it to grayscale first for further processing.
-
-```math
-Gray = Red*RedChannelWeight + Green*GreenChannelWeight + Blue*BlueChannelWeight
-```
-
-The default weights in DBR are suitable for most cases. However, some color images may produce poor grayscale images based on the default weights. For example, the image below is a color image with imbalanced colour.
-
-
-
-
Figure 1 – Sample barcode colour image
-
-
-The image below shows the grayscale image converted by DBR using the default channel weights setting.
-
-
-
-
Figure 2 – Sample barcode gray image using default mode
-
-
-The image below shows the grayscale image converted by DBR using only red channel.
-
-
-
-
Figure 3 – Sample barcode gray image using only red channel
-
-
-As we can see, the gray image converted using only red channel is much better than the default one. Now we will demonstrate how to configure the parameter `ColourConversionModes` to adjust the colour channel weights used for converting a colour image to a grayscale image.
-
-## Particular Parameter Required
-
-DBR provides a parameter [`ColourConversionModes`]({{ site.dcvb_parameters_reference }}image-parameter/colour-conversion-modes.html) that allows you to control the conversion of a color image to grayscale.
-
-## Example
-
-Below is an example illustrating how to configure the parameter `ColourConversionModes` to use only red channel.
-
-* Update parameter `ColourConversionModes` in your JSON template
-
- ```json
- {
- "CaptureVisionTemplates": [
- {
- "Name": "CV_0",
- "ImageROIProcessingNameArray": ["TA_0" ]
- }
- ],
- "TargetROIDefOptions" : [
- {
- "Name": "TA_0",
- "TaskSettingNameArray": [ "BR_0" ]
- }
- ],
- "BarcodeReaderTaskSettingOptions": [
- {
- "Name" : "BR_0",
- "SectionImageParameterArray": [
- {
- "Section": "ST_REGION_PREDETECTION",
- "ImageParameterName": "IP_0"
- },
- {
- "Section": "ST_BARCODE_LOCALIZATION",
- "ImageParameterName": "IP_0"
- },
- {
- "Section": "ST_BARCODE_DECODING",
- "ImageParameterName": "IP_0"
- }
- ]
- }
- ],
- "ImageParameterOptions": [
- {
- "Name": "IP_0",
- "ColourConversionModes": [
- {
- "Mode": "CICM_GENERAL",
- "RedChannelWeight": 1000,
- "GreenChannelWeight": 0,
- "BlueChannelWeight": 0
- }
- ]
- }
- ]
- }
- ```
-
-* Apply the above settings following the article [Use Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html#json-template).
diff --git a/programming/features/read-barcodes-with-imbalanced-colour-v9.6.42.md b/programming/features/read-barcodes-with-imbalanced-colour-v9.6.42.md
deleted file mode 100644
index 8f94800d..00000000
--- a/programming/features/read-barcodes-with-imbalanced-colour-v9.6.42.md
+++ /dev/null
@@ -1,201 +0,0 @@
----
-layout: default-layout
-title: Read barcodes with imbalanced colour - Dynamsoft Barcode Reader SDK
-description: This page describes how to read huge barcodes with imbalanced colour in Dynamsoft Barcode Reader SDK.
-keywords: imbalanced colour barcode
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# How to Read Barcodes with Imbalanced Colour
-
-As we all know, any color is composed of red, blue and green (RGB). If the image is a colour image, DBR will convert it to grayscale first for further processing.
-
-```math
-Gray = Red*RedChannelWeight + Green*GreenChannelWeight + Blue*BlueChannelWeight
-```
-
-The default weights in DBR are suitable for most cases. However, some color images may produce poor grayscale images based on the default weights. For example, the image below is a color image with imbalanced colour.
-
-
-
-
Figure 1 – Sample barcode colour image
-
-
-The default grayscale image converted by DBR is shown below.
-
-
-
-
Figure 2 – Sample barcode gray image using default mode
-
-
-The image below shows the grayscale image converted by DBR using only red channel.
-
-
-
-
Figure 3 – Sample barcode gray image using only red channel
-
-
-As we can see, the gray image converted using only red channel is much better than the default gray image. Now we will demonstrate how to configure the `colourConversionModes` to adjust the colour channel weights used for converting a colour image to a grayscale image.
-
-
- >- JavaScript
- >- Android
- >- Objective-C
- >- Swift
- >- Python
- >- Java
- >- C#
- >- C++
- >- C
- >
->
-```javascript
-// Obtains the current runtime settings of DBR.
-let rs = await scanner.getRuntimeSettings();
-// Sets the text filter mode.
-rs.furtherModes.colourConversionModes[0] = Dynamsoft.DBR.EnumColourConversionMode.CICM_GENERAL;
-// Updates the settings.
-await scanner.updateRuntimeSettings(rs);
-// Fine-tunes some arguments of the first mode in `colourConversionModes`
-// In this case, we set RedChannelWeight to 1000 while GreenChannelWeight and BlueChannelWeight to 0 which means using red channel only
-scanner.setModeArgument("colourConversionModes", 0, "RedChannelWeight", "1000");
-scanner.setModeArgument("colourConversionModes", 0, "GreenChannelWeight", "0");
-scanner.setModeArgument("colourConversionModes", 0, "BlueChannelWeight", "0");
-await scanner.show();
-```
->
-```java
-// Obtain current runtime settings of `reader` instance.
-PublicRuntimeSettings settings = reader.getRuntimeSettings();
-// Enable a colour conversion mode
-settings.furtherModes.colourConversionModes = new int[]{ EnumColourConversionMode.CICM_GENERAL };
-// Update the settings.
-reader.updateRuntimeSettings(settings);
-// Fine-tune three `Weight` parameter value of the first mode in `colourConversionModes`
-// In this case, we set RedChannelWeight to 1000 while GreenChannelWeight and BlueChannelWeight to 0 which means using red channel only
-reader.setModeArgument("colourConversionModes", 0, "RedChannelWeight", "1000");
-reader.setModeArgument("colourConversionModes", 0, "GreenChannelWeight", "0");
-reader.setModeArgument("colourConversionModes", 0, "BlueChannelWeight", "0");
-```
->
-```objc
-NSError* err = nil;
-// Obtain current runtime settings of `reader` instance.
-iPublicRuntimeSettings* settings = [reader getRuntimeSettings:&err];
-// Enable a colour conversion mode
-settings.furtherModes.colourConversionModes = @[@(EnumColourConversionModeGeneral)];
-// Update the settings.
-[reader updateRuntimeSettings:settings error:&err];
-// Fine-tune three `Weight` parameter value of the first mode in `colourConversionModes`
-// In this case, we set RedChannelWeight to 1000 while GreenChannelWeight and BlueChannelWeight to 0 which means using red channel only
-[reader setModeArgument:@"colourConversionModes" index:0 argumentName:@"RedChannelWeight" argumentValue:@"1000" error:nil];
-[reader setModeArgument:@"colourConversionModes" index:0 argumentName:@"GreenChannelWeight" argumentValue:@"0" error:nil];
-[reader setModeArgument:@"colourConversionModes" index:0 argumentName:@"BlueChannelWeight" argumentValue:@"0" error:nil];
-```
->
-```swift
-// Obtain current runtime settings of `reader` instance.
-let settings = try? reader.getRuntimeSettings()
-// Enable a colour conversion mode
-settings!.furtherModes.colourConversionModes = [EnumColourConversionMode.general]
-// Update the settings.
-try? reader.updateRuntimeSettings(settings!)
-// Fine-tune three `Weight` parameter value of the first mode in `colourConversionModes`
-// In this case, we set RedChannelWeight to 1000 while GreenChannelWeight and BlueChannelWeight to 0 which means using red channel only
-try? reader.setModeArgument("colourConversionModes", index: 0, argumentName: "RedChannelWeight", argumentValue: "1000")
-try? reader.setModeArgument("colourConversionModes", index: 0, argumentName: "GreenChannelWeight", argumentValue: "0")
-try? reader.setModeArgument("colourConversionModes", index: 0, argumentName: "BlueChannelWeight", argumentValue: "0")
-```
->
-```python
-error = BarcodeReader.init_license("YOUR-LICENSE-KEY")
-if error[0] != EnumErrorCode.DBR_OK:
- print(error[1])
-dbr = BarcodeReader()
-settings = dbr.get_runtime_settings()
-settings.colour_conversion_modes[0] = EnumColourConversionMode.CICM_GENERAL
-dbr.update_runtime_settings(settings)
-# In this case, we set RedChannelWeight to 1000 while GreenChannelWeight and BlueChannelWeight to 0 which means using red channel only
-dbr.set_mode_argument("ColourConversionModes", 0, "RedChannelWeight", "1000")
-dbr.set_mode_argument("ColourConversionModes", 0, "GreenChannelWeight", "0")
-dbr.set_mode_argument("ColourConversionModes", 0, "BlueChannelWeight", "0")
-text_results = dbr.decode_file("YOUR-IMAGE-FILE-PATH")
-# Add further process
-```
->
-```java
-BarcodeReader.initLicense("YOUR-LICENSE-KEY");
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.getRuntimeSettings(); //Get the current RuntimeSettings
-settings.furtherModes.colourConversionModes[0] = EnumColourConversionMode.CICM_GENERAL;
-reader.updateRuntimeSettings(settings); // Update RuntimeSettings with above setting
-// In this case, we set RedChannelWeight to 1000 while GreenChannelWeight and BlueChannelWeight to 0 which means using red channel only
-reader.setModeArgument("ColourConversionModes", 0, "RedChannelWeight", "1000");
-reader.setModeArgument("ColourConversionModes", 0, "GreenChannelWeight", "0");
-reader.setModeArgument("ColourConversionModes", 0, "BlueChannelWeight", "0");
-TextResult[] result = reader.decodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```csharp
-string errorMsg;
-EnumErrorCode iRet = BarcodeReader.InitLicense("YOUR-LICENSE-KEY", out errorMsg);
-if (iRet != EnumErrorCode.DBR_SUCCESS)
-{
- Console.WriteLine(errorMsg);
-}
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.GetRuntimeSettings(); //Get the current RuntimeSettings
-settings.FurtherModes.ColourConversionModes[0] = EnumColourConversionMode.CICM_GENERAL;
-reader.UpdateRuntimeSettings(settings); // Update RuntimeSettings with above setting
-// In this case, we set RedChannelWeight to 1000 while GreenChannelWeight and BlueChannelWeight to 0 which means using red channel only
-reader.SetModeArgument("ColourConversionModes", 0, "RedChannelWeight", "1000", out errorMsg);
-reader.SetModeArgument("ColourConversionModes", 0, "GreenChannelWeight", "0", out errorMsg);
-reader.SetModeArgument("ColourConversionModes", 0, "BlueChannelWeight", "0", out errorMsg);
-TextResult[] result = reader.DecodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```cpp
-char errorBuf[512];
-int iRet = -1;
-iRet = dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- cout << errorBuf << endl;
-}
-CBarcodeReader* reader = new CBarcodeReader();
-PublicRuntimeSettings* runtimeSettings = new PublicRuntimeSettings();
-reader->GetRuntimeSettings(runtimeSettings); //Get the current RuntimeSettings
-runtimeSettings->furtherModes.colourConversionModes[0] = CICM_GENERAL;
-reader->UpdateRuntimeSettings(runtimeSettings, errorBuf, 512); // Update RuntimeSettings with above setting
-// In this case, we set RedChannelWeight to 1000 while GreenChannelWeight and BlueChannelWeight to 0 which means using red channel only
-reader->SetModeArgument("ColourConversionModes", 0, "RedChannelWeight", "1000", sError, 512);
-reader->SetModeArgument("ColourConversionModes", 0, "GreenChannelWeight", "0", sError, 512);
-reader->SetModeArgument("ColourConversionModes", 0, "BlueChannelWeight", "0", sError, 512);
-reader->DecodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```c
-int iRet = -1;
-char errorBuf[512];
-iRet = DBR_InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- printf("%s\n", errorBuf);
-}
-void* barcodeReader = DBR_CreateInstance();
-PublicRuntimeSettings runtimeSettings;
-DBR_GetRuntimeSettings(barcodeReader, &runtimeSettings); //Get the current RuntimeSettings
-runtimeSettings.furtherModes.colourConversionModes[0] = CICM_GENERAL;
-DBR_UpdateRuntimeSettings(barcodeReader, &runtimeSettings, errorBuf, 512); // Update RuntimeSettings with above setting
-// In this case, we set RedChannelWeight to 1000 while GreenChannelWeight and BlueChannelWeight to 0 which means using red channel only
-DBR_SetModeArgument(barcodeReader, "ColourConversionModes", 0, "RedChannelWeight", "1000", sError, 512);
-DBR_SetModeArgument(barcodeReader, "ColourConversionModes", 0, "GreenChannelWeight", "0", sError, 512);
-DBR_SetModeArgument(barcodeReader, "ColourConversionModes", 0, "BlueChannelWeight", "0", sError, 512);
-DBR_DecodeFile(barcodeReader, "YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
diff --git a/programming/features/read-barcodes-with-small-module-size-v10.5.2100.md b/programming/features/read-barcodes-with-small-module-size-v10.5.2100.md
deleted file mode 100644
index 1222c654..00000000
--- a/programming/features/read-barcodes-with-small-module-size-v10.5.2100.md
+++ /dev/null
@@ -1,80 +0,0 @@
----
-layout: default-layout
-title: Read barcodes with small module size - Dynamsoft Barcode Reader SDK
-description: This page describes how to read barcodes with small module size in Dynamsoft Barcode Reader SDK.
-keywords: small barcode, small module size
-needAutoGenerateSidebar: false
----
-
-# How to Read Barcodes with Small Module Size
-
-A module is the narrowest "bar" in a 1D barcode, or the smallest "box" in a 2D barcode. Keep in mind this "bar" or "box" can be either light or dark. The figure below illustrates the module size of 1D and 2D barcodes.
-
-
-
-
Figure 1 – Module size of 1D and 2D barcodes
-
-
-In some scenarios, the barcode is very small relative to the entire image, and its module size is even smaller, making it difficult for the library to read the barcode. In this case, we can use the parameter `ScaleUpModes` in to enlarge the barcode symbol for easier processing.
-
-
-## Particular Parameter Required
-
-Dynamsoft Barcode Reader (DBR) provides a parameter [`ScaleUpModes`]({{ site.dcvb_parameters_reference }}image-parameter/scale-up-modes.html) that allows you to control the scale-up process when targets in the image are too small.
-
-## Example
-
-Below is an example illustrating how to configure the parameter `ScaleUpModes`.
-
-* Update parameter `ScaleUpModes` in your JSON template
-
- ```json
- {
- "CaptureVisionTemplates": [
- {
- "Name": "CV_0",
- "ImageROIProcessingNameArray": ["TA_0" ]
- }
- ],
- "TargetROIDefOptions" : [
- {
- "Name": "TA_0",
- "TaskSettingNameArray": [ "BR_0" ]
- }
- ],
- "BarcodeReaderTaskSettingOptions": [
- {
- "Name" : "BR_0",
- "SectionImageParameterArray": [
- {
- "Section": "ST_REGION_PREDETECTION",
- "ImageParameterName": "IP_0"
- },
- {
- "Section": "ST_BARCODE_LOCALIZATION",
- "ImageParameterName": "IP_0"
- },
- {
- "Section": "ST_BARCODE_DECODING",
- "ImageParameterName": "IP_0"
- }
- ]
- }
- ],
- "ImageParameterOptions": [
- {
- "Name": "IP_0",
- "ScaleUpModes": [
- {
- "Mode": "SUM_LINEAR_INTERPOLATION",
- "AcuteAngleWithXThreshold": 0,
- "ModuleSizeThreshold": 3,
- "TargetModuleSize": 8
- }
- ]
- }
- ]
- }
- ```
-
-* Apply the above settings following the article [Use Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html#json-template).
diff --git a/programming/features/read-barcodes-with-small-module-size-v9.6.42.md b/programming/features/read-barcodes-with-small-module-size-v9.6.42.md
deleted file mode 100644
index f2c06fd9..00000000
--- a/programming/features/read-barcodes-with-small-module-size-v9.6.42.md
+++ /dev/null
@@ -1,180 +0,0 @@
----
-layout: default-layout
-title: Read barcodes with small module size - Dynamsoft Barcode Reader SDK
-description: This page describes how to read barcodes with small module size in Dynamsoft Barcode Reader SDK.
-keywords: small barcode, small module size
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# How to Read Barcodes with Small Module Size
-
-A module is the narrowest "bar" in a 1D barcode, or the smallest "box" in a 2D barcode. Keep in mind this "bar" or "box" can be either light or dark. The figure below illustrates the module size of 1D and 2D barcodes.
-
-
-
-
Figure 1 – Module size of 1D and 2D barcodes
-
-
-In some scenarios, the barcode is very small relative to the entire image, and its module size is even smaller, making it difficult for the library to read the barcode. In this case, we can use the parameter `ScaleUpModes` in to enlarge the barcode symbol for easier processing.
-
-
- >- JavaScript
- >- Android
- >- Objective-C
- >- Swift
- >- Python
- >- Java
- >- C#
- >- C++
- >- C
- >
->
-```javascript
-let scanner = await Dynamsoft.DBR.BarcodeScanner.createInstance();
-// Allow js to directly process 4K images in canvas without compressing them.
-// Please test on the target devices. On devices with limited memory, the settings can lead to out of memory.
-scanner.maxCvsSideLength = 4096;
-// Obtains the current runtime settings of DBR.
-let rs = await scanner.getRuntimeSettings();
-// Do not scale down images equal or smaller than 4K
-rs.scaleDownThreshold = 4096;
-// Sets the scale-up mode.
-rs.scaleUpModes[0] = Dynamsoft.DBR.EnumScaleUpMode.SUM_LINEAR_INTERPOLATION;
-// Updates the settings.
-await scanner.updateRuntimeSettings(rs);
-// Fine-tunes some arguments of the first mode in `scaleUpModes`
-scanner.setModeArgument("scaleUpModes", 0, "AcuteAngleWithXThreshold", "0");
-scanner.setModeArgument("scaleUpModes", 0, "ModuleSizeThreshold", "3");
-scanner.setModeArgument("scaleUpModes", 0, "TargetModuleSize", "8");
-await scanner.show();
-```
->
-```java
-// Obtain current runtime settings of `reader` instance.
-PublicRuntimeSettings settings = reader.getRuntimeSettings();
-// Enable a scale up mode
-settings.scaleUpModes = new int[]{ EnumScaleUpMode.SUM_LINEAR_INTERPOLATION };
-// Update the settings.
-reader.updateRuntimeSettings(settings);
-// Fine-tune some arguments of the first mode in `ScaleUpModes`
-reader.setModeArgument("scaleUpModes", 0, "AcuteAngleWithXThreshold", "0");
-reader.setModeArgument("scaleUpModes", 0, "ModuleSizeThreshold", "3");
-reader.setModeArgument("scaleUpModes", 0, "TargetModuleSize", "8");
-```
->
-```objc
-NSError* err = nil;
-// Obtain current runtime settings of `reader` instance.
-iPublicRuntimeSettings* settings = [reader getRuntimeSettings:&err];
-// Enable a scale up mode
-settings.scaleUpModes = @[@(EnumScaleUpModeLinearInterpolation)];
-// Update the settings.
-[reader updateRuntimeSettings:settings error:&err];
-// Fine-tune some arguments of the first mode in `ScaleUpModes`
-[reader setModeArgument:@"scaleUpModes" index:0 argumentName:@"AcuteAngleWithXThreshold" argumentValue:@"0" error:nil];
-[reader setModeArgument:@"scaleUpModes" index:0 argumentName:@"ModuleSizeThreshold" argumentValue:@"3" error:nil];
-[reader setModeArgument:@"scaleUpModes" index:0 argumentName:@"TargetModuleSize" argumentValue:@"8" error:nil];
-```
->
-```swift
-// Obtain current runtime settings of `reader` instance.
-let settings = try? reader.getRuntimeSettings()
-// Enable a scale up mode
-settings!.scaleUpModes = [EnumScaleUpMode.linearInterpolation.rawValue]
-// Update the settings.
-try? reader.updateRuntimeSettings(settings!)
-// Fine-tune some arguments of the first mode in `ScaleUpModes`
-try? reader.setModeArgument("scaleUpModes", index: 0, argumentName: "AcuteAngleWithXThreshold", argumentValue: "0")
-try? reader.setModeArgument("scaleUpModes", index: 0, argumentName: "ModuleSizeThreshold", argumentValue: "3")
-try? reader.setModeArgument("scaleUpModes", index: 0, argumentName: "TargetModuleSize", argumentValue: "8")
-```
->
-```python
-error = BarcodeReader.init_license("YOUR-LICENSE-KEY")
-if error[0] != EnumErrorCode.DBR_OK:
- print(error[1])
-dbr = BarcodeReader()
-settings = dbr.get_runtime_settings()
-settings.scale_up_modes[0] = EnumScaleUpMode.SUM_LINEAR_INTERPOLATION
-dbr.update_runtime_settings(settings)
-dbr.set_mode_argument("ScaleUpModes", 0, "AcuteAngleWithXThreshold", "0")
-dbr.set_mode_argument("ScaleUpModes", 0, "ModuleSizeThreshold", "3")
-dbr.set_mode_argument("ScaleUpModes", 0, "TargetModuleSize", "8")
-text_results = dbr.decode_file("YOUR-IMAGE-FILE-PATH")
-# Add further process
-```
->
-```java
-BarcodeReader.initLicense("YOUR-LICENSE-KEY");
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.getRuntimeSettings(); //Get the current RuntimeSettings
-settings.scaleUpModes[0] = EnumScaleUpMode.SUM_LINEAR_INTERPOLATION;
-reader.updateRuntimeSettings(settings); // Update RuntimeSettings with above setting
-reader.setModeArgument("ScaleUpModes", 0, "AcuteAngleWithXThreshold", "0");
-reader.setModeArgument("ScaleUpModes", 0, "ModuleSizeThreshold", "3");
-reader.setModeArgument("ScaleUpModes", 0, "TargetModuleSize", "8");
-TextResult[] result = reader.decodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```csharp
-string errorMsg;
-EnumErrorCode iRet = BarcodeReader.InitLicense("YOUR-LICENSE-KEY", out errorMsg);
-if (iRet != EnumErrorCode.DBR_SUCCESS)
-{
- Console.WriteLine(errorMsg);
-}
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.GetRuntimeSettings(); //Get the current RuntimeSettings
-settings.ScaleUpModes[0] = EnumScaleUpMode.SUM_LINEAR_INTERPOLATION;
-reader.UpdateRuntimeSettings(settings); // Update RuntimeSettings with above setting
-reader.SetModeArgument("ScaleUpModes", 0, "AcuteAngleWithXThreshold", "0", out errorMsg);
-reader.SetModeArgument("ScaleUpModes", 0, "ModuleSizeThreshold", "3", out errorMsg);
-reader.SetModeArgument("ScaleUpModes", 0, "TargetModuleSize", "8", out errorMsg);
-TextResult[] result = reader.DecodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```cpp
-char errorBuf[512];
-int iRet = -1;
-iRet = dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- cout << errorBuf << endl;
-}
-CBarcodeReader* reader = new CBarcodeReader();
-PublicRuntimeSettings* runtimeSettings = new PublicRuntimeSettings();
-reader->GetRuntimeSettings(runtimeSettings); //Get the current RuntimeSettings
-runtimeSettings->scaleUpModes[0] = SUM_LINEAR_INTERPOLATION;
-reader->UpdateRuntimeSettings(runtimeSettings, errorBuf, 512); // Update RuntimeSettings with above setting
-reader->SetModeArgument("ScaleUpModes", 0, "AcuteAngleWithXThreshold", "0", sError, 512);
-reader->SetModeArgument("ScaleUpModes", 0, "ModuleSizeThreshold", "3", sError, 512);
-reader->SetModeArgument("ScaleUpModes", 0, "TargetModuleSize", "8", sError, 512);
-reader->DecodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```c
-int iRet = -1;
-char errorBuf[512];
-iRet = DBR_InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- printf("%s\n", errorBuf);
-}
-void* barcodeReader = DBR_CreateInstance();
-PublicRuntimeSettings runtimeSettings;
-DBR_GetRuntimeSettings(barcodeReader, &runtimeSettings); //Get the current RuntimeSettings
-runtimeSettings.scaleUpModes[0] = SUM_LINEAR_INTERPOLATION;
-DBR_UpdateRuntimeSettings(barcodeReader, &runtimeSettings, errorBuf, 512); // Update RuntimeSettings with above setting
-DBR_SetModeArgument(barcodeReader, "ScaleUpModes", 0, "AcuteAngleWithXThreshold", "0", sError, 512);
-DBR_SetModeArgument(barcodeReader, "ScaleUpModes", 0, "ModuleSizeThreshold", "3", sError, 512);
-DBR_SetModeArgument(barcodeReader, "ScaleUpModes", 0, "TargetModuleSize", "8", sError, 512);
-DBR_DecodeFile(barcodeReader, "YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
-
-Read more about [how to read barcodes which seem blurry](https://www.dynamsoft.com/barcode-dataset/blurry-barcodes/).
diff --git a/programming/features/read-barcodes-with-uneven-lighting-v10.5.2100.md b/programming/features/read-barcodes-with-uneven-lighting-v10.5.2100.md
deleted file mode 100644
index 19bd1e64..00000000
--- a/programming/features/read-barcodes-with-uneven-lighting-v10.5.2100.md
+++ /dev/null
@@ -1,96 +0,0 @@
----
-layout: default-layout
-title: Read barcodes with uneven lighting - Dynamsoft Barcode Reader SDK
-description: This page describes how to read barcodes with uneven lighting in Dynamsoft Barcode Reader SDK.
-keywords: uneven lighting, barcode
-needAutoGenerateSidebar: false
----
-
-# How to Read Barcodes with Uneven Lighting
-
-In some scenarios, the captured barcode image may have inconsistent lighting across the barcode. For example, the following image shows a barcode image with uneven lighting.
-
-
-
-
Figure 1 – Sample barcode image with uneven lighting
-
-
-Converting the original barcode image to a binarized image is a very important step. Dynamsoft Barcode Reader (DBR) provides two binarization modes:
-- `BM_THRESHOLD`: uses a global threshold to binarize the image. If the gray value of the pixel is less than the threshold, it will be black in the binary image, otherwise it will be white.
-- `BM_LOCAL_BLOCK`: use a threshold for a pixel based on a small region around it.
-
-The following two images show the effects of `BM_THRESHOLD` (global thresholding) and `BM_LOCAL_BLOCK` (local thresholding).
-
-
-
-
Figure 2 – Binarized image by global thresholding
-
-
-
-
-
Figure 3 – Binarized image by local thresholding
-
-
-Obviously, the local thresholding result is much better. Now we will demonstrate how to configure the parameter `BinarizationModes` to achieve the effect mentioned above.
-
-## Particular Parameter Required
-
-DBR provides a parameter [`BinarizationModes`]({{ site.dcvb_parameters_reference }}image-parameter/binarization-modes.html) that allows you to control the conversion of a grayscale image to a binary image.
-
-## Example
-
-Below is an example illustrating how to configure the parameter `BinarizationModes`.
-
-* Update parameter `BinarizationModes` in your JSON template
-
- ```json
- {
- "CaptureVisionTemplates": [
- {
- "Name": "CV_0",
- "ImageROIProcessingNameArray": ["TA_0" ]
- }
- ],
- "TargetROIDefOptions" : [
- {
- "Name": "TA_0",
- "TaskSettingNameArray": [ "BR_0" ]
- }
- ],
- "BarcodeReaderTaskSettingOptions": [
- {
- "Name" : "BR_0",
- "SectionImageParameterArray": [
- {
- "Section": "ST_REGION_PREDETECTION",
- "ImageParameterName": "IP_0"
- },
- {
- "Section": "ST_BARCODE_LOCALIZATION",
- "ImageParameterName": "IP_0"
- },
- {
- "Section": "ST_BARCODE_DECODING",
- "ImageParameterName": "IP_0"
- }
- ]
- }
- ],
- "ImageParameterOptions": [
- {
- "Name": "IP_0",
- "BinarizationModes": [
- {
- "Mode": "BM_LOCAL_BLOCK",
- "BlockSizeX": 0,
- "BlockSizeY": 0,
- "EnableFillBinaryVacancy": 1,
- "ThresholdCompensation": 10
- }
- ]
- }
- ]
- }
- ```
-
-* Apply the above settings following the article [Use Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html#json-template).
diff --git a/programming/features/read-barcodes-with-uneven-lighting-v9.6.42.md b/programming/features/read-barcodes-with-uneven-lighting-v9.6.42.md
deleted file mode 100644
index fbcd29c7..00000000
--- a/programming/features/read-barcodes-with-uneven-lighting-v9.6.42.md
+++ /dev/null
@@ -1,192 +0,0 @@
----
-layout: default-layout
-title: Read barcodes with uneven lighting - Dynamsoft Barcode Reader SDK
-description: This page describes how to read barcodes with uneven lighting in Dynamsoft Barcode Reader SDK.
-keywords: uneven lighting, barcode
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# How to read barcodes with uneven lighting
-
-In some scenarios, the captured barcode image may have inconsistent lighting across the barcode. For example, the following image shows a barcode image with uneven lighting.
-
-
-
-
Figure 1 – Sample barcode image with uneven lighting
-
-
-Converting the original barcode image to a binarized image is a very important step. DBR provides two binarization modes:
-- `BM_THRESHOLD`: uses a global threshold to binarize the image. If the gray value of the pixel is less than the threshold, it will be black in the binary image, otherwise it will be white.
-- `BM_LOCAL_BLOCK`: use a threshold for a pixel based on a small region around it.
-
-The following two images show the effects of `BM_THRESHOLD` (global thresholding) and `BM_LOCAL_BLOCK` (local thresholding).
-
-
-
-
Figure 2 – Binarized image by global thresholding
-
-
-
-
-
Figure 3 – Binarized image by local thresholding
-
-
-Obviously, the local thresholding result is much better. Now we will demonstrate how to configure the `BinarizationModes` to use the `BM_LOCAL_BLOCK` binarization.
-
-
- >- JavaScript
- >- Android
- >- Objective-C
- >- Swift
- >- Python
- >- Java
- >- C#
- >- C++
- >- C
- >
->
-```javascript
-// Obtains the current runtime settings of DBR.
-let rs = await scanner.getRuntimeSettings();
-// Sets the binarization mode.
-rs.binarizationModes[0] = Dynamsoft.DBR.EnumBinarizationMode.BM_LOCAL_BLOCK;
-// Updates the settings.
-await scanner.updateRuntimeSettings(rs);
-// Fine-tunes some arguments of the first mode in `binarizationModes`
-scanner.setModeArgument("binarizationModes", 0, "BlockSizeX", "0");
-scanner.setModeArgument("binarizationModes", 0, "BlockSizeY", "0");
-scanner.setModeArgument("binarizationModes", 0, "EnableFillBinaryVacancy", "1");
-scanner.setModeArgument("binarizationModes", 0, "ThresholdCompensation", "10");
-await scanner.show();
-```
->
-```java
-// Obtain current runtime settings of `reader` instance.
-PublicRuntimeSettings settings = reader.getRuntimeSettings();
-// Set a binarization mode
-settings.binarizationModes = new int[]{ EnumBinarizationMode.BM_LOCAL_BLOCK };
-// Update the settings.
-reader.updateRuntimeSettings(settings);
-// Fine-tune some arguments of the first mode in `binarizationModes`
-reader.setModeArgument("binarizationModes", 0, "BlockSizeX", "0");
-reader.setModeArgument("binarizationModes", 0, "BlockSizeY", "0");
-reader.setModeArgument("binarizationModes", 0, "EnableFillBinaryVacancy", "1");
-reader.setModeArgument("binarizationModes", 0, "ThresholdCompensation", "10");
-```
->
-```objc
-NSError* err = nil;
-// Obtain current runtime settings of `reader` instance.
-iPublicRuntimeSettings* settings = [reader getRuntimeSettings:&err];
-// Set a binarization mode
-settings.binarizationModes = @[@(EnumBinarizationModeLocalBlock)];
-// Update the settings.
-[reader updateRuntimeSettings:settings error:&err];
-// Fine-tune some arguments of the first mode in `binarizationModes`
-[reader setModeArgument:@"binarizationModes" index:0 argumentName:@"BlockSizeX" argumentValue:@"0" error:nil];
-[reader setModeArgument:@"binarizationModes" index:0 argumentName:@"BlockSizeY" argumentValue:@"0" error:nil];
-[reader setModeArgument:@"binarizationModes" index:0 argumentName:@"EnableFillBinaryVacancy" argumentValue:@"1" error:nil];
-[reader setModeArgument:@"binarizationModes" index:0 argumentName:@"ThresholdCompensation" argumentValue:@"10" error:nil];
-```
->
-```swift
-// Obtain current runtime settings of `reader` instance.
-let settings = try? reader.getRuntimeSettings()
-// Set a binarization mode
-settings?.binarizationModes = [EnumBinarizationMode.localBlock]
-// Update the settings.
-try? reader.updateRuntimeSettings(settings!)
-// Fine-tune some arguments of the first mode in `binarizationModes`
-try? reader.setModeArgument("binarizationModes", index: 0, argumentName: "BlockSizeX", argumentValue: "0")
-try? reader.setModeArgument("binarizationModes", index: 0, argumentName: "BlockSizeY", argumentValue: "0")
-try? reader.setModeArgument("binarizationModes", index: 0, argumentName: "EnableFillBinaryVacancy", argumentValue: "1")
-try? reader.setModeArgument("binarizationModes", index: 0, argumentName: "ThresholdCompensation", argumentValue: "10")
-```
->
-```python
-error = BarcodeReader.init_license("YOUR-LICENSE-KEY")
-if error[0] != EnumErrorCode.DBR_OK:
- print(error[1])
-dbr = BarcodeReader()
-settings = dbr.get_runtime_settings()
-settings.binarization_modes[0] = EnumBinarizationMode.BM_LOCAL_BLOCK
-dbr.update_runtime_settings(settings)
-dbr.set_mode_argument("BinarizationModes", 0, "BlockSizeX", "0")
-dbr.set_mode_argument("BinarizationModes", 0, "BlockSizeY", "0")
-dbr.set_mode_argument("BinarizationModes", 0, "ThresholdCompensation", "10")
-text_results = dbr.decode_file("YOUR-IMAGE-FILE-PATH")
-# Add further process
-```
->
-```java
-BarcodeReader.initLicense("YOUR-LICENSE-KEY");
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.getRuntimeSettings(); //Get the current RuntimeSettings
-settings.binarizationModes[0] = EnumBinarizationMode.BM_LOCAL_BLOCK;
-reader.updateRuntimeSettings(settings); // Update RuntimeSettings with above setting
-reader.setModeArgument("BinarizationModes", 0, "BlockSizeX", "0");
-reader.setModeArgument("BinarizationModes", 0, "BlockSizeY", "0");
-reader.setModeArgument("BinarizationModes", 0, "ThresholdCompensation", "10");
-TextResult[] result = reader.decodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```csharp
-string errorMsg;
-EnumErrorCode iRet = BarcodeReader.InitLicense("YOUR-LICENSE-KEY", out errorMsg);
-if (iRet != EnumErrorCode.DBR_SUCCESS)
-{
- Console.WriteLine(errorMsg);
-}
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.GetRuntimeSettings(); //Get the current RuntimeSettings
-settings.BinarizationModes[0] = EnumBinarizationMode.BM_LOCAL_BLOCK;
-reader.UpdateRuntimeSettings(settings); // Update RuntimeSettings with above setting
-reader.SetModeArgument("BinarizationModes", 0, "BlockSizeX", "0", out errorMsg);
-reader.SetModeArgument("BinarizationModes", 0, "BlockSizeY", "0", out errorMsg);
-reader.SetModeArgument("BinarizationModes", 0, "ThresholdCompensation", "10", out errorMsg);
-TextResult[] result = reader.DecodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```cpp
-char errorBuf[512];
-int iRet = -1;
-iRet = dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- cout << errorBuf << endl;
-}
-CBarcodeReader* reader = new CBarcodeReader();
-PublicRuntimeSettings* runtimeSettings = new PublicRuntimeSettings();
-reader->GetRuntimeSettings(runtimeSettings); //Get the current RuntimeSettings
-runtimeSettings->binarizationModes[0] = BM_LOCAL_BLOCK;
-reader->UpdateRuntimeSettings(runtimeSettings, errorBuf, 512); // Update RuntimeSettings with above setting
-reader->SetModeArgument("BinarizationModes", 0, "BlockSizeX", "0", sError, 512);
-reader->SetModeArgument("BinarizationModes", 0, "BlockSizeY", "0", sError, 512);
-reader->SetModeArgument("BinarizationModes", 0, "ThresholdCompensation", "10", sError, 512);
-reader->DecodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```c
-int iRet = -1;
-char errorBuf[512];
-iRet = DBR_InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- printf("%s\n", errorBuf);
-}
-void* barcodeReader = DBR_CreateInstance();
-PublicRuntimeSettings runtimeSettings;
-DBR_GetRuntimeSettings(barcodeReader, &runtimeSettings); //Get the current RuntimeSettings
-runtimeSettings.binarizationModes[0] = BM_LOCAL_BLOCK;
-DBR_UpdateRuntimeSettings(barcodeReader, &runtimeSettings, errorBuf, 512); // Update RuntimeSettings with above setting
-DBR_SetModeArgument(barcodeReader, "BinarizationModes", 0, "BlockSizeX", "0", sError, 512);
-DBR_SetModeArgument(barcodeReader, "BinarizationModes", 0, "BlockSizeY", "0", sError, 512);
-DBR_SetModeArgument(barcodeReader, "BinarizationModes", 0, "ThresholdCompensation", "10", sError, 512);
-DBR_DecodeFile(barcodeReader, "YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
diff --git a/programming/features/read-deformed-barcodes-v10.5.2100.md b/programming/features/read-deformed-barcodes-v10.5.2100.md
deleted file mode 100644
index b56a47ff..00000000
--- a/programming/features/read-deformed-barcodes-v10.5.2100.md
+++ /dev/null
@@ -1,66 +0,0 @@
----
-layout: default-layout
-title: Read Deformed Barcodes - Dynamsoft Barcode Reader SDK
-description: This page describes how to read deformed barcodes in Dynamsoft Barcode Reader SDK.
-keywords: Deformed Barcode
-needAutoGenerateSidebar: false
----
-
-# Read Deformed Barcodes
-
-As shown below, barcodes on the surface of some flexible packaging or cylindrical objects tend to be distorted and deformed.
-
-
-
-
Deformed Barcodes
-
-
-By default, Dynamsoft Barcode Reader (DBR) may not handle such cases well. To get such images decoded, enable deformation resistance by adding `DRM_BROAD_WARP`, `DRM_LOCAL_REFERENCE` and `DRM_DEWRINKLE` to [`DeformationResistingModes`]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/deformation-resisting-modes.html). Here is a quick breakdown of each of the modes:
-
-* `DRM_BROAD_WARP`: Resists deformation when the barcode is warped gently.
-* `DRM_LOCAL_REFERENCE`: Resists deformation for barcodes with minor deformation in local modules.
-* `DRM_DEWRINKLE`: Resists deformation for barcodes on a wrinkled surface.
-
-> Note:
->
-> `DeformationResistingModes` only works for QR Code and DataMatrix codes.
-
-You can either specify one of the `DeformationResistingModes` or add all of them. If mulpitle modes are specified, the library will switch between the modes automatically until the number of detected barcodes meets the `ExpectedBarcodeCount`.
-
-## Example
-
-Below is an example illustrating how to configure the parameter `DeformationResistingModes`.
-
-* Update parameter `DeformationResistingModes` in your JSON template
-
- ```json
- {
- "CaptureVisionTemplates": [
- {
- "Name": "CV_0",
- "ImageROIProcessingNameArray": ["TA_0" ]
- }
- ],
- "TargetROIDefOptions" : [
- {
- "Name": "TA_0",
- "TaskSettingNameArray": [ "BR_0" ]
- }
- ],
- "BarcodeReaderTaskSettingOptions": [
- {
- "Name" : "BR_0",
- "DeformationResistingModes": [
- {
- "Mode": "DRM_BROAD_WARP"
- },
- {
- "Mode": "DRM_LOCAL_REFERENCE"
- }
- ]
- }
- ]
- }
- ```
-
-* Apply the above settings following the article [Use Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html#json-template).
diff --git a/programming/features/read-deformed-barcodes-v8.8.7.md b/programming/features/read-deformed-barcodes-v8.8.7.md
deleted file mode 100644
index 0b393510..00000000
--- a/programming/features/read-deformed-barcodes-v8.8.7.md
+++ /dev/null
@@ -1,119 +0,0 @@
----
-layout: default-layout
-title: Read Deformed Barcodes - Dynamsoft Barcode Reader SDK
-description: This page describes how to read deformed barcodes in Dynamsoft Barcode Reader SDK.
-keywords: Deformed Barcode
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# Read Deformed Barcodes
-
-As shown below, barcodes on the surface of some flexible packaging or cylindrical objects tend to be distorted and deformed.
-
-
-
-
Deformed Barcodes
-
-
-By default, DBR may not handle such cases well. To get such images decoded, enable deformation resistance by adding `DRM_GENERAL` to [`DeformationResistingModes`]({{ site.parameters_reference }}deformation-resisting-modes.html) as shown in the code snippet below:
-
-
- >- JavaScript
- >- Android
- >- Objective-C
- >- Swift
- >- C
- >- C++
- >- C#
- >- Java
- >- Python
- >
->```javascript
-// Obtains the current runtime settings of DBR.
-let settings = await scanner.getRuntimeSettings();
-// Adds DRM_GENERAL to deformationResistingModes.
-settings.furtherModes.deformationResistingModes = [Dynamsoft.DBR.EnumDeformationResistingMode.DRM_GENERAL];
-// Updates the settings.
-await scanner.updateRuntimeSettings(settings);
-```
->```java
-// Obtain current runtime settings of `reader` instance.
-PublicRuntimeSettings settings = reader.getRuntimeSettings();
-// Add DRM_GENERAL to the deformationResistingModes to decode deformed barcodes.
-settings.furtherModes.deformationResistingModes = new int[]{EnumDeformationResistingMode.DRM_GENERAL};
-// Update the settings.
-reader.updateRuntimeSettings(settings);
-```
->```objc
-NSError* err = nil;
-// Obtain current runtime settings of `reader` instance.
-iPublicRuntimeSettings* settings = [reader getRuntimeSettings:&err];
-// Add DRM_GENERAL to the deformationResistingModes to decode deformed barcodes.
-settings.furtherModes.deformationResistingModes = @[@(EnumDeformationResistingModeGeneral)];
-// Update the settings.
-[reader updateRuntimeSettings:settings error:&err];
-```
->```swift
-// Obtain current runtime settings of `barcodeReader` instance.
-let settings = try? barcodeReader.getRuntimeSettings()
-// Add DRM_GENERAL to the deformationResistingModes to decode deformed barcodes.
-settings?.furtherModes.deformationResistingModes = [EnumDeformationResistingMode.general]
-// Update the settings.
-try? barcodeReader.updateRuntimeSettings(settings!)
-```
->```c
-PublicRuntimeSettings settings;
-char szErrorMsg[256] = {0};
-// Obtain current runtime settings of `reader` instance.
-DBR_GetRuntimeSettings(reader, &settings);
-// Add DRM_GENERAL to the deformationResistingModes to decode deformed barcodes.
-settings.furtherModes.deformationResistingModes[0] = DRM_GENERAL;
-// Update the settings.
-DBR_UpdateRuntimeSettings(reader, &settings, szErrorMsg, 256);
-```
->```cpp
-PublicRuntimeSettings settings;
-char szErrorMsg[256] = {0};
-// Obtain current runtime settings of `reader` instance.
-reader.GetRuntimeSettings(&settings);
-// Add DRM_GENERAL to the deformationResistingModes to decode deformed barcodes.
-settings.furtherModes.deformationResistingModes[0] = DRM_GENERAL;
-// Update the settings.
-reader.UpdateRuntimeSettings(&settings, szErrorMsg, 256);
-```
->```c#
-// Obtain current runtime settings of `reader` instance.
-PublicRuntimeSettings settings = reader.GetRuntimeSettings();
-// Add DRM_GENERAL to the deformationResistingModes to decode deformed barcodes.
-settings.FurtherModes.DeformationResistingModes[0] = DRM_GENERAL;
-// Update the settings.
-reader.UpdateRuntimeSettings(settings);
-```
->```java
-// Obtain current runtime settings of `reader` instance.
-PublicRuntimeSettings settings = reader.getRuntimeSettings();
-// Add DRM_GENERAL to the deformationResistingModes to decode deformed barcodes.
-settings.furtherModes.deformationResistingModes = new int[]{EnumDeformationResistingMode.DRM_GENERAL};
-// Update the settings.
-reader.updateRuntimeSettings(settings);
-```
->```python
-# Obtain current runtime settings of `reader` instance.
-settings = reader.get_runtime_settings()
-# Add DRM_GENERAL to the deformationResistingModes to decode deformed barcodes.
-settings.deformation_resisting_modes[0] = EnumDeformationResistingMode.DRM_GENERAL
-# Update the settings.
-reader.update_runtime_settings(settings)
-```
-
-> Note:
->
-> `DeformationResistingModes` only works for QR Code and DataMatrix codes.
-
-If the mode `DRM_GENERAL` doesn't work, try one of the following:
-
-* `DRM_BROAD_WARP`: Resists deformation when the barcode is warped gently.
-* `DRM_LOCAL_REFERENCE`: Resists deformation for barcodes with minor deformation in local modules.
-* `DRM_DEWRINKLE`: Resists deformation for barcodes on a wrinkled surface.
diff --git a/programming/features/read-deformed-barcodes-v9.6.42.md b/programming/features/read-deformed-barcodes-v9.6.42.md
deleted file mode 100644
index 826ba967..00000000
--- a/programming/features/read-deformed-barcodes-v9.6.42.md
+++ /dev/null
@@ -1,138 +0,0 @@
----
-layout: default-layout
-title: Read Deformed Barcodes - Dynamsoft Barcode Reader SDK
-description: This page describes how to read deformed barcodes in Dynamsoft Barcode Reader SDK.
-keywords: Deformed Barcode
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# Read Deformed Barcodes
-
-As shown below, barcodes on the surface of some flexible packaging or cylindrical objects tend to be distorted and deformed.
-
-
-
-
Deformed Barcodes
-
-
-By default, DBR may not handle such cases well. To get such images decoded, enable deformation resistance by adding `DRM_BROAD_WARP`, `DRM_LOCAL_REFERENCE` and `DRM_DEWRINKLE` to [`DeformationResistingModes`]({{ site.parameters_reference }}deformation-resisting-modes.html). Here is a quick breakdown of each of the modes:
-
-* `DRM_BROAD_WARP`: Resists deformation when the barcode is warped gently.
-* `DRM_LOCAL_REFERENCE`: Resists deformation for barcodes with minor deformation in local modules.
-* `DRM_DEWRINKLE`: Resists deformation for barcodes on a wrinkled surface.
-
-> Note:
->
-> `DeformationResistingModes` only works for QR Code and DataMatrix codes.
-
-You can either specify one of the `DeformationResistingModes` or add all of them. If mulpitle modes are specified, the library will switch between the modes automatically until the number of detected barcodes meets the `ExpectedBarcodeCount`.
-
-## Code Snippet
-
-
- >- JavaScript
- >- Android
- >- Objective-C
- >- Swift
- >- C
- >- C++
- >- C#
- >- Java
- >- Python
- >
->
-```javascript
-// Obtains the current runtime settings of DBR.
-let settings = await scanner.getRuntimeSettings();
-// Adds DRM_GENERAL to deformationResistingModes.
-settings.furtherModes.deformationResistingModes = [Dynamsoft.DBR.EnumDeformationResistingMode.DRM_BROAD_WARP, Dynamsoft.DBR.EnumDeformationResistingMode.DRM_LOCAL_REFERENCE, Dynamsoft.DBR.EnumDeformationResistingMode.DRM_DEWRINKLE];
-// Updates the settings.
-await scanner.updateRuntimeSettings(settings);
-```
->
-```java
-// Obtain current runtime settings of `reader` instance.
-PublicRuntimeSettings settings = reader.getRuntimeSettings();
-// Add DRM_GENERAL to the deformationResistingModes to decode deformed barcodes.
-settings.furtherModes.deformationResistingModes = new int[]{EnumDeformationResistingMode.DRM_BROAD_WARP, EnumDeformationResistingMode.DRM_LOCAL_REFERENCE,EnumDeformationResistingMode.DRM_DEWRINKLE};
-// Update the settings.
-reader.updateRuntimeSettings(settings);
-```
->
-```objc
-NSError* err = nil;
-// Obtain current runtime settings of `reader` instance.
-iPublicRuntimeSettings* settings = [reader getRuntimeSettings:&err];
-// Add DRM_GENERAL to the deformationResistingModes to decode deformed barcodes.
-settings.furtherModes.deformationResistingModes = @[@(EnumDeformationResistingModeBroadWarp),@(EnumDeformationResistingModeLocalReference),@(EnumDeformationResistingModeDewrinkle)];
-// Update the settings.
-[reader updateRuntimeSettings:settings error:&err];
-```
->
-```swift
-// Obtain current runtime settings of `barcodeReader` instance.
-let settings = try? barcodeReader.getRuntimeSettings()
-// Add DRM_GENERAL to the deformationResistingModes to decode deformed barcodes.
-settings?.furtherModes.deformationResistingModes = [EnumDeformationResistingMode.broadwarp,EnumDeformationResistingMode.localReference,EnumDeformationResistingMode.dewrinkle]
-// Update the settings.
-try? barcodeReader.updateRuntimeSettings(settings!)
-```
->
-```c
-PublicRuntimeSettings settings;
-char szErrorMsg[256] = {0};
-// Obtain current runtime settings of `reader` instance.
-DBR_GetRuntimeSettings(reader, &settings);
-// Add DRM_GENERAL to the deformationResistingModes to decode deformed barcodes.
-settings.furtherModes.deformationResistingModes[0] = DRM_BROAD_WARP;
-settings.furtherModes.deformationResistingModes[1] = DRM_LOCAL_REFERENCE;
-settings.furtherModes.deformationResistingModes[2] = DRM_DEWRINKLE;
-// Update the settings.
-DBR_UpdateRuntimeSettings(reader, &settings, szErrorMsg, 256);
-```
->
-```cpp
-PublicRuntimeSettings settings;
-char szErrorMsg[256] = {0};
-// Obtain current runtime settings of `reader` instance.
-reader.GetRuntimeSettings(&settings);
-// Add DRM_GENERAL to the deformationResistingModes to decode deformed barcodes.
-settings.furtherModes.deformationResistingModes[0] = DRM_BROAD_WARP;
-settings.furtherModes.deformationResistingModes[1] = DRM_LOCAL_REFERENCE;
-settings.furtherModes.deformationResistingModes[2] = DRM_DEWRINKLE;
-// Update the settings.
-reader.UpdateRuntimeSettings(&settings, szErrorMsg, 256);
-```
->
-```c#
-// Obtain current runtime settings of `reader` instance.
-PublicRuntimeSettings settings = reader.GetRuntimeSettings();
-// Add DRM_GENERAL to the deformationResistingModes to decode deformed barcodes.
-settings.FurtherModes.DeformationResistingModes[0] = DRM_BROAD_WARP;
-settings.FurtherModes.DeformationResistingModes[1] = DRM_LOCAL_REFERENCE;
-settings.FurtherModes.DeformationResistingModes[2] = DRM_DEWRINKLE;
-// Update the settings.
-reader.UpdateRuntimeSettings(settings);
-```
->
-```java
-// Obtain current runtime settings of `reader` instance.
-PublicRuntimeSettings settings = reader.getRuntimeSettings();
-// Add DRM_GENERAL to the deformationResistingModes to decode deformed barcodes.
-settings.furtherModes.deformationResistingModes = new int[]{EnumDeformationResistingMode.DRM_BROAD_WARP, EnumDeformationResistingMode.DRM_LOCAL_REFERENCE,EnumDeformationResistingMode.DRM_DEWRINKLE};
-// Update the settings.
-reader.updateRuntimeSettings(settings);
-```
->
-```python
-# Obtain current runtime settings of `reader` instance.
-settings = reader.get_runtime_settings()
-# Add DRM_GENERAL to the deformationResistingModes to decode deformed barcodes.
-settings.deformation_resisting_modes[0] = EnumDeformationResistingMode.DRM_BROAD_WARP
-settings.deformation_resisting_modes[1] = EnumDeformationResistingMode.DRM_LOCAL_REFERENCE
-settings.deformation_resisting_modes[2] = EnumDeformationResistingMode.DRM_DEWRINKLE
-# Update the settings.
-reader.update_runtime_settings(settings)
-```
\ No newline at end of file
diff --git a/programming/features/read-dense-barcodes-v10.5.2100.md b/programming/features/read-dense-barcodes-v10.5.2100.md
deleted file mode 100644
index 95c57108..00000000
--- a/programming/features/read-dense-barcodes-v10.5.2100.md
+++ /dev/null
@@ -1,98 +0,0 @@
----
-layout: default-layout
-title: Read dense barcodes - Dynamsoft Barcode Reader SDK
-description: This page describes how to read dense barcodes in Dynamsoft Barcode Reader SDK.
-keywords: dense barcodes, qrcode, datamatrix
-needAutoGenerateSidebar: false
----
-
-# How to Read High-Density QR Codes
-
-A QR code can store up to 7,089 numbers, 4,296 alphanumeric characters, 2,953 bytes, or 1,817 Japanese Kanjis. As the encoded information increases, the QR code becomes denser. The diagram below displays a QR code that has high density.
-
-
-
-
Figure 1 – High-density QR Code
-
-
-In some scenarios, high-density QR codes become more difficult to locate and recognize due to small barcode images, perspective, and distortion.
-
-We can do the following to optimize the read rate of high-density QR codes:
-
-- Scale up modules if they are too small
-- Sharpen the image
-- Run gray equalization
-
-## Example
-
-Below is an example illustrating how to configure the parameters to read density QR Codes.
-
-* Update parameters in your JSON template
-
- ```json
- {
- "CaptureVisionTemplates": [
- {
- "Name": "CV_0",
- "ImageROIProcessingNameArray": ["TA_0" ],
- "Timeout":5000
- }
- ],
- "TargetROIDefOptions" : [
- {
- "Name": "TA_0",
- "TaskSettingNameArray": [ "BR_0" ]
- }
- ],
- "BarcodeReaderTaskSettingOptions": [
- {
- "Name" : "BR_0",
- "BarcodeFormatIds" : ["BF_QR_CODE"],
- "ExpectedBarcodesCount" : 1,
- "SectionImageParameterArray": [
- {
- "Section": "ST_REGION_PREDETECTION",
- "ImageParameterName": "IP_0"
- },
- {
- "Section": "ST_BARCODE_LOCALIZATION",
- "ImageParameterName": "IP_0"
- },
- {
- "Section": "ST_BARCODE_DECODING",
- "ImageParameterName": "IP_0"
- }
- ],
- "LocalizationModes":[
- {
- "Mode": "LM_CONNECTED_BLOCKS"
- }
- ],
- "DeblurModes":[
- {
- "Mode": "DM_SHARPENING"
- },
- {
- "Mode": "DM_GRAY_EQUALIZATION"
- }
- ]
- }
- ],
- "ImageParameterOptions": [
- {
- "Name": "IP_0",
- "ScaleDownThreshold": 10000,
- "ScaleUpModes": [
- {
- "Mode": "SUM_LINEAR_INTERPOLATION",
- "AcuteAngleWithXThreshold": 0,
- "ModuleSizeThreshold": 4,
- "TargetModuleSize": 6
- }
- ]
- }
- ]
- }
- ```
-
-* Apply the above settings following the article [Use Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html#json-template).
diff --git a/programming/features/read-dense-barcodes-v9.6.42.md b/programming/features/read-dense-barcodes-v9.6.42.md
deleted file mode 100644
index d51a8353..00000000
--- a/programming/features/read-dense-barcodes-v9.6.42.md
+++ /dev/null
@@ -1,133 +0,0 @@
----
-layout: default-layout
-title: Read dense barcodes - Dynamsoft Barcode Reader SDK
-description: This page describes how to read dense barcodes in Dynamsoft Barcode Reader SDK.
-keywords: dense barcodes, qrcode, datamatrix
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# How to read high-density QR Codes
-
-A QR code can store up to 7,089 numbers, 4,296 alphanumeric characters, 2,953 bytes, or 1,817 Japanese Kanjis. As the encoded information increases, the QR code becomes denser. The diagram below displays a QR code that has high density.
-
-
-
-
Figure 1 – High-density QR Code
-
-
-In some scenarios, high-density QR codes become more difficult to locate and recognize due to small barcode images, perspective, and distortion.
-
-We can do the following to optimize the read rate of high-density QR codes:
-
-- Scale up modules if they are too small
-- Sharpen the image
-- Run gray equalization
-
-The following code snippet shows how to configure the parameters via a json template string.
-
-
- >- JavaScript
- >- Android
- >- Objective-C
- >- Swift
- >- Python
- >- Java
- >- C#
- >- C++
- >- C
- >
->
-```javascript
-const scanner = await Dynamsoft.DBR.BarcodeScanner.createInstance();
-// Allow js to directly process 4K images in canvas without compressing them.
-// Please test on the target devices. On devices with limited memory, the settings can lead to out of memory.
-scanner.maxCvsSideLength = 4096;
-// Defines settings for reading dense barcodes in a template.
-let jsonString = "{\"ImageParameter\":{\"BarcodeComplementModes\":[\"BCM_SKIP\"],\"DeblurModes\":[{\"Mode\":\"DM_SHARPENING\"},{\"Mode\":\"DM_GRAY_EQUALIZATION\"}],\"ExpectedBarcodesCount\":1,\"LocalizationModes\":[\"LM_CONNECTED_BLOCKS\"],\"ScaleUpModes\":[\"SUM_LINEAR_INTERPOLATION(0,4,6)\"],\"MaxAlgorithmThreadCount\":1,\"Name\":\"high-density-qr-tpl\",\"ScaleDownThreshold\":10000,\"Timeout\":5000},\"Version\":\"3.0\"}";
-// Configures the BarcodeScanner object with the settings.
-await scanner.initRuntimeSettingsWithString(jsonString);
-scanner.show();
-```
->
-```java
-String jsonPara = "{\"ImageParameter\":{\"BarcodeComplementModes\":[\"BCM_SKIP\"],\"DeblurModes\":[{\"Mode\":\"DM_SHARPENING\"},{\"Mode\":\"DM_GRAY_EQUALIZATION\"}],\"ExpectedBarcodesCount\":1,\"LocalizationModes\":[\"LM_CONNECTED_BLOCKS\"],\"ScaleUpModes\":[\"SUM_LINEAR_INTERPOLATION(0,4,6)\"],\"MaxAlgorithmThreadCount\":1,\"Name\":\"high-density-qr-tpl\",\"ScaleDownThreshold\":10000,\"Timeout\":5000},\"Version\":\"3.0\"}";
-// Apply the template string to the reader.
-reader.initRuntimeSettingsWithString(jsonPara, EnumConflictMode.CM_OVERWRITE);
-TextResult[] result = reader.decodeFile("YOUR-IMAGE-FILE-PATH");
-```
->
-```objc
-NSError* err = nil;
-NSString* jsonPara = @"{\"ImageParameter\":{\"BarcodeComplementModes\":[\"BCM_SKIP\"],\"DeblurModes\":[{\"Mode\":\"DM_SHARPENING\"},{\"Mode\":\"DM_GRAY_EQUALIZATION\"}],\"ExpectedBarcodesCount\":1,\"LocalizationModes\":[\"LM_CONNECTED_BLOCKS\"],\"ScaleUpModes\":[\"SUM_LINEAR_INTERPOLATION(0,4,6)\"],\"MaxAlgorithmThreadCount\":1,\"Name\":\"high-density-qr-tpl\",\"ScaleDownThreshold\":10000,\"Timeout\":5000},\"Version\":\"3.0\"}";
-// Apply the template string to the reader.
-[reader initRuntimeSettingsWithString:jsonPara conflictMode:EnumConflictModeOverwrite error:&err];
-NSArray* result = [reader decodeFileWithName:"YOUR-IMAGE-FILE-PATH" error:&err];
-```
->
-```swift
-let jsonPara = "{\"ImageParameter\":{\"BarcodeComplementModes\":[\"BCM_SKIP\"],\"DeblurModes\":[{\"Mode\":\"DM_SHARPENING\"},{\"Mode\":\"DM_GRAY_EQUALIZATION\"}],\"ExpectedBarcodesCount\":1,\"LocalizationModes\":[\"LM_CONNECTED_BLOCKS\"],\"ScaleUpModes\":[\"SUM_LINEAR_INTERPOLATION(0,4,6)\"],\"MaxAlgorithmThreadCount\":1,\"Name\":\"high-density-qr-tpl\",\"ScaleDownThreshold\":10000,\"Timeout\":5000},\"Version\":\"3.0\"}"
-// Apply the template string to the reader.
-try? reader.initRuntimeSettingsWithString(jsonPara,conflictMode:EnumConflictMode.overwrite)
-let result = try? reader.decodeFileWithName("YOUR-IMAGE-FILE-PATH")
-```
->
-```python
-error = BarcodeReader.init_license("YOUR-LICENSE-KEY")
-if error[0] != EnumErrorCode.DBR_OK:
- print(error[1])
-dbr = BarcodeReader()
-dbr.init_runtime_settings_with_string('{"Version":"3.0", "ImageParameter":{"Name":"high-density-qr-tpl","DeblurModes":[{"Mode":"DM_SHARPENING"},{"Mode":"DM_GRAY_EQUALIZATION"}],"ExpectedBarcodesCount":1,"LocalizationModes":[{"Mode":"LM_CONNECTED_BLOCKS"}],"ScaleUpModes": [{"Mode": "SUM_LINEAR_INTERPOLATION","AcuteAngleWithXThreshold": 0,"ModuleSizeThreshold": 4,"TargetModuleSize": 6}],"ScaleDownThreshold":10000,"Timeout":5000}}')
-text_results = dbr.decode_file("YOUR-IMAGE-FILE-PATH")
-# Add further process
-```
->
-```java
-BarcodeReader.initLicense("YOUR-LICENSE-KEY");
-BarcodeReader reader = new BarcodeReader();
-reader.initRuntimeSettingsWithString("{\"Version\":\"3.0\", \"ImageParameter\":{\"Name\":\"high-density-qr-tpl\",\"DeblurModes\":[{\"Mode\":\"DM_SHARPENING\"},{\"Mode\":\"DM_GRAY_EQUALIZATION\"}],\"ExpectedBarcodesCount\":1,\"LocalizationModes\":[{\"Mode\":\"LM_CONNECTED_BLOCKS\"}],\"ScaleUpModes\": [{\"Mode\": \"SUM_LINEAR_INTERPOLATION\",\"AcuteAngleWithXThreshold\": 0,\"ModuleSizeThreshold\": 4,\"TargetModuleSize\": 6}],\"ScaleDownThreshold\":10000,\"Timeout\":5000}}}", EnumConflictMode.CM_OVERWRITE);
-TextResult[] result = reader.decodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```csharp
-string errorMsg;
-EnumErrorCode iRet = BarcodeReader.InitLicense("YOUR-LICENSE-KEY", out errorMsg);
-if (iRet != EnumErrorCode.DBR_SUCCESS)
-{
- Console.WriteLine(errorMsg);
-}
-BarcodeReader reader = new BarcodeReader();
-reader.InitRuntimeSettingsWithString("{\"Version\":\"3.0\", \"ImageParameter\":{\"Name\":\"high-density-qr-tpl\",\"DeblurModes\":[{\"Mode\":\"DM_SHARPENING\"},{\"Mode\":\"DM_GRAY_EQUALIZATION\"}],\"ExpectedBarcodesCount\":1,\"LocalizationModes\":[{\"Mode\":\"LM_CONNECTED_BLOCKS\"}],\"ScaleUpModes\": [{\"Mode\": \"SUM_LINEAR_INTERPOLATION\",\"AcuteAngleWithXThreshold\": 0,\"ModuleSizeThreshold\": 4,\"TargetModuleSize\": 6}],\"ScaleDownThreshold\":10000,\"Timeout\":5000}}}", EnumConflictMode.CM_OVERWRITE, out errorMsg);
-TextResult[] result = reader.DecodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```cpp
-char errorBuf[512];
-int iRet = -1;
-iRet = dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- cout << errorBuf << endl;
-}
-CBarcodeReader* reader = new CBarcodeReader();
-reader->InitRuntimeSettingsWithString("{\"Version\":\"3.0\", \"ImageParameter\":{\"Name\":\"high-density-qr-tpl\",\"DeblurModes\":[{\"Mode\":\"DM_SHARPENING\"},{\"Mode\":\"DM_GRAY_EQUALIZATION\"}],\"ExpectedBarcodesCount\":1,\"LocalizationModes\":[{\"Mode\":\"LM_CONNECTED_BLOCKS\"}],\"ScaleUpModes\": [{\"Mode\": \"SUM_LINEAR_INTERPOLATION\",\"AcuteAngleWithXThreshold\": 0,\"ModuleSizeThreshold\": 4,\"TargetModuleSize\": 6}],\"ScaleDownThreshold\":10000,\"Timeout\":5000}}}", CM_OVERWRITE, errorBuf, 512);
-reader->DecodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```c
-int iRet = -1;
-char errorBuf[512];
-iRet = DBR_InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- printf("%s\n", errorBuf);
-}
-void* barcodeReader = DBR_CreateInstance();
-DBR_InitRuntimeSettingsWithString(barcodeReader, "{\"Version\":\"3.0\", \"ImageParameter\":{\"Name\":\"high-density-qr-tpl\",\"DeblurModes\":[{\"Mode\":\"DM_SHARPENING\"},{\"Mode\":\"DM_GRAY_EQUALIZATION\"}],\"ExpectedBarcodesCount\":1,\"LocalizationModes\":[{\"Mode\":\"LM_CONNECTED_BLOCKS\"}],\"ScaleUpModes\": [{\"Mode\": \"SUM_LINEAR_INTERPOLATION\",\"AcuteAngleWithXThreshold\": 0,\"ModuleSizeThreshold\": 4,\"TargetModuleSize\": 6}],\"ScaleDownThreshold\":10000,\"Timeout\":5000}}}", CM_OVERWRITE, errorBuf, 512);
-DBR_DecodeFile(barcodeReader, "YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
diff --git a/programming/features/read-images-with-lots-of-text-v10.5.2100.md b/programming/features/read-images-with-lots-of-text-v10.5.2100.md
deleted file mode 100644
index 90c55b5a..00000000
--- a/programming/features/read-images-with-lots-of-text-v10.5.2100.md
+++ /dev/null
@@ -1,69 +0,0 @@
----
-layout: default-layout
-description: This article introduces how to read barcodes from image with lots of text
-title: How to read barcodes from image with lots of text
-keywords: text filter
-needAutoGenerateSidebar: false
----
-
-# How to Read Barcodes from an Image With Lots of Text
-
-When trying to read an image where a barcode is surrounded by a large amount of irrelevant text, the presence of these characters may lead to incorrect positioning and slow down the execution speed. Dynamsoft Barcode Reader (DBR) provides parameter [`TextDetectionMode`]({{ site.dcvb_parameters_reference }}image-parameter/text-detection-mode.html) and [`IfEraseTextZone`]({{ site.dcvb_parameters_reference }}image-parameter/if-erase-text-zone.html) to control how to filter texts on an image.
-
-## Example
-
-Below is an example illustrating how to configure the parameters to control text filtering function.
-
-* Update parameters in your JSON template
-
- ```json
- {
- "CaptureVisionTemplates": [
- {
- "Name": "CV_0",
- "ImageROIProcessingNameArray": ["TA_0" ]
- }
- ],
- "TargetROIDefOptions" : [
- {
- "Name": "TA_0",
- "TaskSettingNameArray": [ "BR_0" ]
- }
- ],
- "BarcodeReaderTaskSettingOptions": [
- {
- "Name" : "BR_0",
- "SectionImageParameterArray": [
- {
- "Section": "ST_REGION_PREDETECTION",
- "ImageParameterName": "IP_0"
- },
- {
- "Section": "ST_BARCODE_LOCALIZATION",
- "ImageParameterName": "IP_0"
- },
- {
- "Section": "ST_BARCODE_DECODING",
- "ImageParameterName": "IP_0"
- }
- ]
- }
- ],
- "ImageParameterOptions": [
- {
- "Name": "IP_0",
- "TextDetectionMode":
- {
- "Mode": "TTDM_LINE",
- "Direction": "UNKNOWN",
- "CharHeightRange": [1, 100, 1],
- "MaxSpacingInALine": -1,
- "Sensitivity": 3
- },
- "IfEraseTextZone": 1
- }
- ]
- }
- ```
-
-* Apply the above settings following the article [Use Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html#json-template).
diff --git a/programming/features/read-images-with-lots-of-text-v9.6.42.md b/programming/features/read-images-with-lots-of-text-v9.6.42.md
deleted file mode 100644
index 85f3559b..00000000
--- a/programming/features/read-images-with-lots-of-text-v9.6.42.md
+++ /dev/null
@@ -1,140 +0,0 @@
----
-layout: default-layout
-description: This article introduces how to read barcodes from image with lots of text
-title: How to read barcodes from image with lots of text
-keywords: text filter
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# How to Read Barcodes from an Image With Lots of Text
-
-When trying to read an image where a barcode is surrounded by a large amount of irrelevant text, the presence of these characters may lead to incorrect positioning and slow down the execution speed. Dynamsoft Barcode Reader (DBR) provides a parameter, [`TextFilterModes`]({{ site.parameters_reference }}text-filter-modes.html#textfiltermodes), to control how to filter texts on an image.
-
-## Sample Code
-
-The following code snippet shows how to set the text filtering function through the RuntimeSettings.
-
-
- >- Javascript
- >- Android
- >- Objective-C
- >- Swift
- >- Python
- >- Java
- >- C#
- >- C++
- >- C
- >
->
-```javascript
-// Obtains the current runtime settings of DBR.
-let rs = await scanner.getRuntimeSettings();
-// Sets the text filter mode.
-rs.furtherModes.textFilterModes[0] = Dynamsoft.DBR.EnumTextFilterMode.TFM_GENERAL_CONTOUR;
-// Updates the settings.
-await scanner.updateRuntimeSettings(rs);
-await scanner.show();
-```
->
-```java
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.getRuntimeSettings(); //Get the current RuntimeSettings
-settings.furtherModes.textFilterModes[0] = EnumTextFilterMode.TFM_GENERAL_CONTOUR; // Set a TFM_GENERAL_CONTOUR mode to filter texts
-reader.updateRuntimeSettings(settings); // Update RuntimeSettings with above setting
-TextResult[] result = reader.decodeFile("YOUR-IMAGE-FILE-PATH"); // Start decoding
-// Add further process
-```
->
-```objc
-NSError *err = nil;
-DynamsoftBarcodeReader* reader = [[DynamsoftBarcodeReader alloc] init];
-//Get the current RuntimeSettings
-iPublicRuntimeSettings* settings = [reader getRuntimeSettings:&err];
-settings.furtherModes.textFilterModes[0] = EnumTextFilterModeGeneralContour; // Set a TFM_GENERAL_CONTOUR mode to filter texts
-[reader updateRuntimeSettings:settings error:&err]; // Update RuntimeSettings with above setting
-NSArray* result = [reader decodeFileWithName:@"YOUR-IMAGE-FILE-PATH" error:&err]; // Start decoding
-// Add further process
-```
->
-```swift
-let reader = DynamsoftBarcodeReader.init()
-//Get the current RuntimeSettings
-let settings = try? reader.getRuntimeSettings()
-settings.furtherModes.textFilterModes?[0] = EnumTextFilterMode.generalContour; // Set a TFM_GENERAL_CONTOUR mode to filter texts
-try? reader.updateRuntimeSettings(settings) // Update RuntimeSettings with above setting
-let result = try? reader.decodeFileWithName("YOUR-IMAGE-FILE-PATH") // Start decoding
-// Add further process
-```
->
-```python
-error = BarcodeReader.init_license("YOUR-LICENSE-KEY")
-if error[0] != EnumErrorCode.DBR_OK:
- print(error[1])
-dbr = BarcodeReader()
-settings = dbr.get_runtime_settings()
-settings.text_filter_modes[0] = EnumTextFilterMode.TFM_GENERAL_CONTOUR
-dbr.update_runtime_settings(settings)
-text_results = dbr.decode_file("YOUR-IMAGE-FILE-PATH")
-# Add further process
-```
->
-```java
-BarcodeReader.initLicense("YOUR-LICENSE-KEY");
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.getRuntimeSettings(); //Get the current RuntimeSettings
-settings.furtherModes.textFilterModes[0] = EnumTextFilterMode.TFM_GENERAL_CONTOUR; // Set a TFM_GENERAL_CONTOUR mode to filter texts
-reader.updateRuntimeSettings(settings); // Update RuntimeSettings with above setting
-TextResult[] result = reader.decodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```c#
-string errorMsg;
-EnumErrorCode iRet = BarcodeReader.InitLicense("YOUR-LICENSE-KEY", out errorMsg);
-if (iRet != EnumErrorCode.DBR_SUCCESS)
-{
- Console.WriteLine(errorMsg);
-}
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.GetRuntimeSettings(); //Get the current RuntimeSettings
-settings.FurtherModes.TextFilterModes[0] = EnumTextFilterMode.TFM_GENERAL_CONTOUR; // Set a TFM_GENERAL_CONTOUR mode to filter texts
-reader.UpdateRuntimeSettings(settings); // Update RuntimeSettings with above setting
-TextResult[] result = reader.DecodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```cpp
-char errorBuf[512];
-int iRet = -1;
-iRet = dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- cout << errorBuf << endl;
-}
-CBarcodeReader* reader = new CBarcodeReader();
-PublicRuntimeSettings* runtimeSettings = new PublicRuntimeSettings();
-reader->GetRuntimeSettings(runtimeSettings); //Get the current RuntimeSettings
-runtimeSettings->furtherModes.textFilterModes[0] = TFM_GENERAL_CONTOUR; // Set a TFM_GENERAL_CONTOUR mode to filter texts
-reader->UpdateRuntimeSettings(runtimeSettings, errorBuf, 512); // Update RuntimeSettings with above setting
-reader->DecodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```c
-int iRet = -1;
-char errorBuf[512];
-iRet = DBR_InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- printf("%s\n", errorBuf);
-}
-void* reader = DBR_CreateInstance();
-PublicRuntimeSettings runtimeSettings;
-DBR_GetRuntimeSettings(reader, &runtimeSettings); //Get the current RuntimeSettings
-runtimeSettings.furtherModes.textFilterModes[0] = TFM_GENERAL_CONTOUR; // Set a TFM_GENERAL_CONTOUR mode to filter texts
-DBR_UpdateRuntimeSettings(reader, &runtimeSettings, errorBuf, 512); // Update RuntimeSettings with above setting
-DBR_DecodeFile(reader, "YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
diff --git a/programming/features/read-images-with-texture-v10.5.2100.md b/programming/features/read-images-with-texture-v10.5.2100.md
deleted file mode 100644
index be855722..00000000
--- a/programming/features/read-images-with-texture-v10.5.2100.md
+++ /dev/null
@@ -1,85 +0,0 @@
----
-layout: default-layout
-title: Read images with texture - Dynamsoft Barcode Reader SDK
-description: This page describes how to read barcodes with texture in Dynamsoft Barcode Reader SDK.
-keywords: texture, barcode
-needAutoGenerateSidebar: false
----
-
-# How to Read Barcodes from Images with Textures
-
-In some scenes, the background of images may appear textured, such as a patterned background, screen stripes, etc. As shown below, the barcode background has an odd texture due to the computer screen it is being displayed on.
-
-
-
-
Figure 1 – Sample barcode image with texture
-
-
-This may extend the barcode localization time or even lead to localization errors. The texture detection feature of Dynamsoft Barcode Reader (DBR) works on images with textured backgrounds. The following two images demonstrate the binarized images used for localization without and with texture detection enabled:
-
-
-
-
Figure 2 – Binarized image without texture detection enabled
-
-
-
-
-
Figure 3 – Binarized image with texture detection enabled
-
-
-As we can see, the binarized image with texture detection enabled is much better. Now we will demonstrate how to configure the parameter [`TextureDetectionModes`]({{ site.dcvb_parameters_reference }}image-parameter/texture-detection-modes.html) to enable texture detection.
-
-## Example
-
-Below is an example illustrating how to configure the parameter `TextureDetectionModes`.
-
-* Update parameter `TextureDetectionModes` in your JSON template
-
- ```json
- {
- "CaptureVisionTemplates": [
- {
- "Name": "CV_0",
- "ImageROIProcessingNameArray": ["TA_0" ]
- }
- ],
- "TargetROIDefOptions" : [
- {
- "Name": "TA_0",
- "TaskSettingNameArray": [ "BR_0" ]
- }
- ],
- "BarcodeReaderTaskSettingOptions": [
- {
- "Name" : "BR_0",
- "SectionImageParameterArray": [
- {
- "Section": "ST_REGION_PREDETECTION",
- "ImageParameterName": "IP_0"
- },
- {
- "Section": "ST_BARCODE_LOCALIZATION",
- "ImageParameterName": "IP_0"
- },
- {
- "Section": "ST_BARCODE_DECODING",
- "ImageParameterName": "IP_0"
- }
- ]
- }
- ],
- "ImageParameterOptions": [
- {
- "Name": "IP_0",
- "TextureDetectionModes": [
- {
- "Mode": "TDM_GENERAL_WIDTH_CONCENTRATION",
- "Sensitivity": 5
- }
- ]
- }
- ]
- }
- ```
-
-* Apply the above settings following the article [Use Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html#json-template).
diff --git a/programming/features/read-images-with-texture-v9.6.42.md b/programming/features/read-images-with-texture-v9.6.42.md
deleted file mode 100644
index 58b029ec..00000000
--- a/programming/features/read-images-with-texture-v9.6.42.md
+++ /dev/null
@@ -1,166 +0,0 @@
----
-layout: default-layout
-title: Read images with texture - Dynamsoft Barcode Reader SDK
-description: This page describes how to read barcodes with texture in Dynamsoft Barcode Reader SDK.
-keywords: texture, barcode
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# How to Read Barcodes from Images with Different Textures
-
-In some scenes, the background of images may appear textured, such as a patterned background, screen stripes, etc. As shown below, the barcode background has an odd texture due to the computer screen it is being displayed on.
-
-
-
-
Figure 1 – Sample barcode image with texture
-
-
-This may extend the barcode localization time or even lead to localization errors. The texture detection feature of DBR works on images with textured backgrounds. The following two images demonstrate the binarized images used for localization without and with texture detection enabled:
-
-
-
-
Figure 2 – Binarized image without texture detection enabled
-
-
-
-
-
Figure 3 – Binarized image with texture detection enabled
-
-
-We can configure one or more [`TextureDetectionModes`]({{ site.parameters_reference }}texture-detection-modes.html) in `PublicRuntimeSettings.furtherModes.textureDetectionModes` to enable texture detection feature.
-
-
- >- JavaScript
- >- Android
- >- Objective-C
- >- Swift
- >- Python
- >- Java
- >- C#
- >- C++
- >- C
- >
->
-```javascript
-// Obtains the current runtime settings of DBR.
-let rs = await scanner.getRuntimeSettings();
-// Sets the text detection mode.
-rs.furtherModes.textureDetectionModes[0] = Dynamsoft.DBR.EnumTextureDetectionMode.TDM_GENERAL_WIDTH_CONCENTRATION;
-// Updates the settings.
-await scanner.updateRuntimeSettings(rs);
-// Fine-tunes `Sensitivity` of the first mode in `binarizationModes`
-scanner.setModeArgument("TextureDetectionModes", 0, "Sensitivity", "5");
-await scanner.show();
-```
->
-```java
-// Obtain current runtime settings of `reader` instance.
-PublicRuntimeSettings settings = reader.getRuntimeSettings();
-// Enable a texture detection mode
-settings.furtherModes.textureDetectionModes = new int[]{ EnumTextureDetectionMode.TDM_GENERAL_WIDTH_CONCENTRATION };
-// Update the settings.
-reader.updateRuntimeSettings(settings);
-// Fine-tune the `Sensitivity` parameter value of the first mode in `TextureDetectionModes`
-reader.setModeArgument("TextureDetectionModes", 0, "Sensitivity", "5");
-```
->
-```objc
-NSError* err = nil;
-// Obtain current runtime settings of `reader` instance.
-iPublicRuntimeSettings* settings = [reader getRuntimeSettings:&err];
-// Enable a texture detection mode
-settings.furtherModes.textureDetectionModes = @[@(EnumTextureDetectionModeGeneralWidthConcentration)];
-// Update the settings.
-[reader updateRuntimeSettings:settings error:&err];
-// Fine-tune the `Sensitivity` parameter value of the first mode in `TextureDetectionModes`
-[reader setModeArgument:@"TextureDetectionModes" index:0 argumentName:@"Sensitivity" argumentValue:@"5" error:nil];
-```
->
-```swift
-// Obtain current runtime settings of `reader` instance.
-let settings = try? reader.getRuntimeSettings()
-// Enable a texture detection mode
-settings?.furtherModes.textureDetectionModes = [EnumTextureDetectionMode.generalWidthConcentration]
-// Update the settings.
-try? reader.updateRuntimeSettings(settings!)
-// Fine-tune the `Sensitivity` parameter value of the first mode in `TextureDetectionModes`
-try? reader.setModeArgument("TextureDetectionModes", index: 0, argumentName: "Sensitivity", argumentValue: "5")
-```
->
-```python
-error = BarcodeReader.init_license("YOUR-LICENSE-KEY")
-if error[0] != EnumErrorCode.DBR_OK:
- print(error[1])
-dbr = BarcodeReader()
-settings = dbr.get_runtime_settings()
-settings.texture_detection_modes[0] = EnumTextureDetectionMode.TDM_GENERAL_WIDTH_CONCENTRATION
-dbr.update_runtime_settings(settings)
-dbr.set_mode_argument("TextureDetectionModes", 0, "Sensitivity", "5")
-text_results = dbr.decode_file("YOUR-IMAGE-FILE-PATH")
-# Add further process
-```
->
-```java
-BarcodeReader.initLicense("YOUR-LICENSE-KEY");
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.getRuntimeSettings(); //Get the current RuntimeSettings
-settings.furtherModes.colourConversionModes[0] = EnumTextureDetectionMode.TDM_GENERAL_WIDTH_CONCENTRATION;
-reader.updateRuntimeSettings(settings); // Update RuntimeSettings with above setting
-reader.setModeArgument("TextureDetectionModes", 0, "Sensitivity", "5");
-TextResult[] result = reader.decodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```csharp
-string errorMsg;
-EnumErrorCode iRet = BarcodeReader.InitLicense("YOUR-LICENSE-KEY", out errorMsg);
-if (iRet != EnumErrorCode.DBR_SUCCESS)
-{
- Console.WriteLine(errorMsg);
-}
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.GetRuntimeSettings(); //Get the current RuntimeSettings
-settings.FurtherModes.TextureDetectionModes[0] = EnumTextureDetectionMode.TDM_GENERAL_WIDTH_CONCENTRATION;
-reader.UpdateRuntimeSettings(settings); // Update RuntimeSettings with above setting
-reader.SetModeArgument("TextureDetectionModes", 0, "Sensitivity", "5", out errorMsg);
-TextResult[] result = reader.DecodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```cpp
-char errorBuf[512];
-int iRet = -1;
-iRet = dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- cout << errorBuf << endl;
-}
-CBarcodeReader* reader = new CBarcodeReader();
-PublicRuntimeSettings* runtimeSettings = new PublicRuntimeSettings();
-reader->GetRuntimeSettings(runtimeSettings); //Get the current RuntimeSettings
-runtimeSettings->furtherModes.colourConversionModes[0] = TDM_GENERAL_WIDTH_CONCENTRATION;
-reader->UpdateRuntimeSettings(runtimeSettings, errorBuf, 512); // Update RuntimeSettings with above setting
-reader->SetModeArgument("TextureDetectionModes", 0, "Sensitivity", "5", sError, 512);
-reader->DecodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```c
-int iRet = -1;
-char errorBuf[512];
-iRet = DBR_InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- printf("%s\n", errorBuf);
-}
-void* barcodeReader = DBR_CreateInstance();
-PublicRuntimeSettings runtimeSettings;
-DBR_GetRuntimeSettings(barcodeReader, &runtimeSettings); //Get the current RuntimeSettings
-runtimeSettings.furtherModes.colourConversionModes[0] = TDM_GENERAL_WIDTH_CONCENTRATION;
-DBR_UpdateRuntimeSettings(barcodeReader, &runtimeSettings, errorBuf, 512); // Update RuntimeSettings with above setting
-DBR_SetModeArgument(barcodeReader, "TextureDetectionModes", 0, "Sensitivity", "5", sError, 512);
-DBR_DecodeFile(barcodeReader, "YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
diff --git a/programming/features/read-incomplete-barcodes-v10.5.2100.md b/programming/features/read-incomplete-barcodes-v10.5.2100.md
deleted file mode 100644
index d9090092..00000000
--- a/programming/features/read-incomplete-barcodes-v10.5.2100.md
+++ /dev/null
@@ -1,58 +0,0 @@
----
-layout: default-layout
-title: Read Incomplete Barcodes - Dynamsoft Barcode Reader SDK
-description: This page describes how to read incomplete barcodes in Dynamsoft Barcode Reader SDK.
-keywords: Incomplete Barcodes
-needAutoGenerateSidebar: false
----
-
-# Read Incomplete Barcodes
-
-In some cases, barcodes may have incomplete sections due to typographical errors as shown below.
-
-
-
-
Incomplete Barcodes
-
-
-In this case, you can enable the barcode completion logic in Dynamsoft Barcode Reader (DBR) using [`BarcodeComplementModes`]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/barcode-complement-modes.html). After that, DBR will attempt to complete and correct the barcode according to the structural characteristics of the corresponding barcode type.
-
-> NOTE:
->
-> The barcode completion logic only supports QR code and Data Matrix at present.
->
-
-## Example
-
-Below is an example illustrating how to configure the parameter `BarcodeComplementModes`.
-
-* Update parameter `BarcodeComplementModes` in your JSON template
-
- ```json
- {
- "CaptureVisionTemplates": [
- {
- "Name": "CV_0",
- "ImageROIProcessingNameArray": ["TA_0" ]
- }
- ],
- "TargetROIDefOptions" : [
- {
- "Name": "TA_0",
- "TaskSettingNameArray": [ "BR_0" ]
- }
- ],
- "BarcodeReaderTaskSettingOptions": [
- {
- "Name" : "BR_0",
- "BarcodeComplementModes": [
- {
- "Mode": "BCM_GENERAL"
- }
- ]
- }
- ]
- }
- ```
-
-* Apply the above settings following the article [Use Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html#json-template).
diff --git a/programming/features/read-incomplete-barcodes-v9.6.42.md b/programming/features/read-incomplete-barcodes-v9.6.42.md
deleted file mode 100644
index 544f87b9..00000000
--- a/programming/features/read-incomplete-barcodes-v9.6.42.md
+++ /dev/null
@@ -1,115 +0,0 @@
----
-layout: default-layout
-title: Read Incomplete Barcodes - Dynamsoft Barcode Reader SDK
-description: This page describes how to read incomplete barcodes in Dynamsoft Barcode Reader SDK.
-keywords: Incomplete Barcodes
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# Read Incomplete Barcodes
-
-In some cases, barcodes may have incomplete sections due to typographical errors as shown below.
-
-
-
-
Incomplete Barcodes
-
-
-In this case, you can enable the barcode completion logic in DBR using [`BarcodeComplementModes`]({{ site.parameters_reference }}barcode-complement-modes.html). 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
- >
->```javascript
-// 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);
-```
->```java
-// 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);
-```
->```objc
-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];
-```
->```swift
-// 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!)
-```
->```c
-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);
-```
->```cpp
-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);
-```
->```c#
-// 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);
-```
->```java
-// 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);
-```
->```python
-# 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.
\ No newline at end of file
diff --git a/programming/features/read-inverted-barcodes-v10.5.2100.md b/programming/features/read-inverted-barcodes-v10.5.2100.md
deleted file mode 100644
index 315ebdc0..00000000
--- a/programming/features/read-inverted-barcodes-v10.5.2100.md
+++ /dev/null
@@ -1,79 +0,0 @@
----
-layout: default-layout
-title: Read Inverted Barcodes - Dynamsoft Barcode Reader SDK
-description: This page describes how to read inverted barcodes in Dynamsoft Barcode Reader SDK.
-keywords: Inverted Barcodes
-needAutoGenerateSidebar: false
----
-
-# Read Inverted Barcodes
-
-Typically, barcodes are dark on a light background. But in some cases, the barcodes are "inverted" -- light barcodes on a dark background, as shown in the image below.
-
-
-
-
Inverted Barcodes
-
-
-The feature to decode such inverted barcodes is not enabled by default. To control this feature, we must use the [`GrayscaleTransformationModes`]({{ site.dcvb_parameters_reference }}image-parameter/grayscale-transformation-modes.html). Now for a quick breakdown of each of the modes:
-
-- With only `GTM_ORIGINAL` enabled in `GrayscaleTransformationModes`, DBR scans only general black-on-white barcodes.
-- With only `GTM_INVERTED` enabled in `GrayscaleTransformationModes`, DBR scans only inverted barcodes.
-- When `GTM_ORIGINAL` is enabled as the first mode and `GTM_INVERTED` is enabled as the second mode in `GrayscaleTransformationModes`, DBR will try to decode general barcodes first. If the count of decoded barcodes does not reach the expected number, DBR will then try decoding the inverted barcodes.
-
-## Example
-
-Below is an example illustrating how to configure the parameter `GrayscaleTransformationModes`.
-
-* Update parameter `GrayscaleTransformationModes` in your JSON template
-
- ```json
- {
- "CaptureVisionTemplates": [
- {
- "Name": "CV_0",
- "ImageROIProcessingNameArray": ["TA_0" ]
- }
- ],
- "TargetROIDefOptions" : [
- {
- "Name": "TA_0",
- "TaskSettingNameArray": [ "BR_0" ]
- }
- ],
- "BarcodeReaderTaskSettingOptions": [
- {
- "Name" : "BR_0",
- "SectionImageParameterArray": [
- {
- "Section": "ST_REGION_PREDETECTION",
- "ImageParameterName": "IP_0"
- },
- {
- "Section": "ST_BARCODE_LOCALIZATION",
- "ImageParameterName": "IP_0"
- },
- {
- "Section": "ST_BARCODE_DECODING",
- "ImageParameterName": "IP_0"
- }
- ]
- }
- ],
- "ImageParameterOptions": [
- {
- "Name": "IP_0",
- "GrayscaleTransformationModes": [
- {
- "Mode": "GTM_ORIGINAL"
- },
- {
- "Mode": "GTM_INVERTED"
- }
- ]
- }
- ]
- }
- ```
-
-* Apply the above settings following the article [Use Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html#json-template).
diff --git a/programming/features/read-inverted-barcodes-v9.6.42.md b/programming/features/read-inverted-barcodes-v9.6.42.md
deleted file mode 100644
index 0fe11ee0..00000000
--- a/programming/features/read-inverted-barcodes-v9.6.42.md
+++ /dev/null
@@ -1,119 +0,0 @@
----
-layout: default-layout
-title: Read Inverted Barcodes - Dynamsoft Barcode Reader SDK
-description: This page describes how to read inverted barcodes in Dynamsoft Barcode Reader SDK.
-keywords: Inverted Barcodes
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# Read Inverted Barcodes
-
-Typically, barcodes are dark on a light background. But in some cases, the barcodes are "inverted" -- light barcodes on a dark background, as shown in the image below.
-
-
-
-
Inverted Barcodes
-
-
-The feature to decode such inverted barcodes is not enabled by default. To control this feature, we must use the [`GrayscaleTransformationModes`]({{ site.parameters_reference }}grayscale-transformation-modes.html). Now for a quick breakdown of each of the modes:
-
-- With only `GTM_ORIGINAL` enabled in `GrayscaleTransformationModes`, DBR scans only general black-on-white barcodes.
-- With only `GTM_INVERTED` enabled in `GrayscaleTransformationModes`, DBR scans only inverted barcodes.
-- When `GTM_ORIGINAL` is enabled as the first mode and `GTM_INVERTED` is enabled as the second mode in `GrayscaleTransformationModes`, DBR will try to decode general barcodes first. If the count of decoded barcodes does not reach the expected number, DBR will then try decoding the inverted barcodes.
-
-To allow for inverted barcodes, add the value `GTM_INVERTED` to `GrayscaleTransformationModes` as shown in the code snippet below:
-
-
- >- JavaScript
- >- Android
- >- Objective-C
- >- Swift
- >- C
- >- C++
- >- C#
- >- Java
- >- Python
- >
->```javascript
-// Obtains the current runtime settings of DBR.
-let settings = await scanner.getRuntimeSettings();
-// Adds GTM_INVERTED to grayscaleTransformationModes.
-settings.furtherModes.grayscaleTransformationModes = [Dynamsoft.DBR.EnumGrayscaleTransformationMode.GTM_ORIGINAL, Dynamsoft.DBR.EnumGrayscaleTransformationMode.GTM_INVERTED];
-// Updates the settings.
-await scanner.updateRuntimeSettings(settings);
-```
->```java
-// Obtain current runtime settings of `reader` instance.
-PublicRuntimeSettings settings = reader.getRuntimeSettings();
-// Add GTM_INVERTED to GrayscaleTransformationModes to decode inverted barcodes.
-settings.furtherModes.grayscaleTransformationModes = new int[]{EnumGrayscaleTransformationMode.GTM_ORIGINAL, EnumGrayscaleTransformationMode.GTM_INVERTED};
-// Update the settings.
-reader.updateRuntimeSettings(settings);
-```
->```objc
-NSError* err = nil;
-// Obtain current runtime settings of `reader` instance.
-iPublicRuntimeSettings* settings = [reader getRuntimeSettings:&err];
-// Add GTM_INVERTED to GrayscaleTransformationModes to decode inverted barcodes.
-settings.furtherModes.grayscaleTransformationModes = @[@(EnumGrayscaleTransformationModeOriginal),@(EnumGrayscaleTransformationModeInverted)];
-// Update the settings.
-[reader updateRuntimeSettings:settings error:&err];
-```
->```swift
-// Obtain current runtime settings of `barcodeReader` instance.
-let settings = try? barcodeReader.getRuntimeSettings()
-// Add GTM_INVERTED to GrayscaleTransformationModes to decode inverted barcodes.
-settings?.furtherModes.grayscaleTransformationModes = [EnumGrayscaleTransformationMode.original, EnumGrayscaleTransformationMode.inverted]
-// Update the settings.
-try? barcodeReader.updateRuntimeSettings(settings!)
-```
->```c
-PublicRuntimeSettings settings;
-char szErrorMsg[256] = {0};
-// Obtain current runtime settings of `reader` instance.
-DBR_GetRuntimeSettings(reader, &settings);
-// Add GTM_INVERTED to GrayscaleTransformationModes to decode inverted barcodes.
-settings.furtherModes.grayscaleTransformationModes[0] = GTM_ORIGINAL;
-settings.furtherModes.grayscaleTransformationModes[1] = GTM_INVERTED;
-// Update the settings.
-DBR_UpdateRuntimeSettings(reader, &settings, szErrorMsg, 256);
-```
->```cpp
-PublicRuntimeSettings settings;
-char szErrorMsg[256] = {0};
-// Obtain current runtime settings of `reader` instance.
-reader.GetRuntimeSettings(&settings);
-// Add GTM_INVERTED to GrayscaleTransformationModes to decode inverted barcodes.
-settings.furtherModes.grayscaleTransformationModes[0] = GTM_ORIGINAL;
-settings.furtherModes.grayscaleTransformationModes[1] = GTM_INVERTED;
-// Update the settings.
-reader.UpdateRuntimeSettings(&settings, szErrorMsg, 256);
-```
->```c#
-// Obtain current runtime settings of `reader` instance.
-PublicRuntimeSettings settings = reader.GetRuntimeSettings();
-// Add GTM_INVERTED to GrayscaleTransformationModes to decode inverted barcodes.
-settings.FurtherModes.GrayscaleTransformationModes[0] = GTM_ORIGINAL;
-settings.FurtherModes.GrayscaleTransformationModes[1] = GTM_INVERTED;
-// Update the settings.
-reader.UpdateRuntimeSettings(settings);
-```
->```java
-// Obtain current runtime settings of `reader` instance.
-PublicRuntimeSettings settings = reader.getRuntimeSettings();
-// Add GTM_INVERTED to GrayscaleTransformationModes to decode inverted barcodes.
-settings.furtherModes.grayscaleTransformationModes = new int[]{EnumGrayscaleTransformationMode.GTM_ORIGINAL, EnumGrayscaleTransformationMode.GTM_INVERTED};
-// Update the settings.
-reader.updateRuntimeSettings(settings);
-```
->```python
-# Obtain current runtime settings of `reader` instance.
-settings = reader.get_runtime_settings()
-# Add GTM_INVERTED to GrayscaleTransformationModes to decode inverted barcodes.
-settings.grayscale_transformation_modes[0] = EnumGrayscaleTransformationMode.GTM_ORIGINAL
-settings.grayscale_transformation_modes[1] = EnumGrayscaleTransformationMode.GTM_INVERTED
-# Update the settings.
-reader.update_runtime_settings(settings)
-```
diff --git a/programming/features/read-video-streaming-mobile-v9.6.42.md b/programming/features/read-video-streaming-mobile-v9.6.42.md
deleted file mode 100644
index 9ea71172..00000000
--- a/programming/features/read-video-streaming-mobile-v9.6.42.md
+++ /dev/null
@@ -1,222 +0,0 @@
----
-layout: default-layout
-title: Read Barcode from Video Streaming - Dynamsoft Barcode Reader SDK
-description: This page describes how to read barcodes from video streaming in Dynamsoft Barcode Reader SDK.
-keywords: Different Source
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# Read Barcode from Video Streaming
-
-## Configurations on the Camera
-
-Firstly, to decode from video streaming, you have to create a camera module using the Dynamsoft Camera Enhancer. The camera module is responsible for:
-
-- Capturing the video stream.
-- Displaying the video stream on the UI.
-- Transfer the captured data to the barcode reader for barcode decoding.
-
-
- >- Android
- >- Objective-C
- >- Swift
- >
->```java
-public class MainActivity extends AppCompatActivity {
- CameraEnhancer mCamera;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // You have to add camera view to your layout file in "res>layout>activity_main.xml".
- DCECameraView cameraView = findViewById(R.id.cameraView);
- // Create an instance of Dynamsoft Camera Enhancer for video streaming.
- mCamera = new CameraEnhancer(MainActivity.this);
- mCamera.setCameraView(cameraView);
- }
- @Override
- public void onResume() {
- try {
- // Open the camera when the app is resumed.
- mCamera.open();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- super.onResume();
- }
- @Override
- public void onPause() {
- try {
- // Close the camera when the app is resumed.
- mCamera.close();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- super.onPause();
- }
-}
-```
->```objc
-@property(nonatomic, strong) DynamsoftCameraEnhancer *camera;
-@property(nonatomic, strong) DCECameraView *cameraView;
-- (void)configurationDCE{
- // Initialize a camera view for previewing video.
- _cameraView = [DCECameraView cameraWithFrame:self.view.bounds];
- [self.view addSubview:_cameraView];
- // Initialize the Camera Enhancer with the camera view.
- _camera = [[DynamsoftCameraEnhancer alloc] initWithView:_cameraView];
- // Open the camera
- [_camera open];
-}
-```
->```swift
-class ViewController: UIViewController {
- var camera:DynamsoftCameraEnhancer! = nil
- var cameraView:DCECameraView! = nil
- func configurationDCE() {
- cameraView = DCECameraView.init(frame: self.view.bounds)
- self.view.addSubview(cameraView)
- // Initialize the Camera Enhancer with the camera view.
- camera = DynamsoftCameraEnhancer.init(view: cameraView)
- //Open the camera
- camera.open()
- }
-}
-```
-
-## Configure Barcode Reader
-
-### Bind the Camera to Receive Video Streaming
-
-Initialize Dynamsoft Barcode Reader and bind the Camera Enhancer to the Barcode Reader. The barcode reader will continuously receive video frames when the video barcode decoding thread is enabled.
-
-
- >- Android
- >- Objective-C
- >- Swift
- >
->```java
-public class MainActivity extends AppCompatActivity {
- BarcodeReader mBarcodeReader;
- CameraEnhancer mCamera;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- try {
- // Create an instance of Dynamsoft Barcode Reader.
- mBarcodeReader = new BarcodeReader();
- } catch (BarcodeReaderException e) {
- e.printStackTrace();
- }
- // Bind the instance of Camera to the BarcodeReader
- mBarcodeReader.setCameraEnhancer(mCamera);
- }
-}
-```
->```objc
-@property(nonatomic, strong) DynamsoftBarcodeReader *barcodeReader;
-@property(nonatomic, strong) DynamsoftCameraEnhancer *dce;
-...
-- (void)configurationDBR{
- // Add function configureDBR and add the following code.
- _barcodeReader = [[DynamsoftBarcodeReader alloc] init];
- // Bind the instance of Camera to the BarcodeReader
- [_barcodeReader setCameraEnhancer:_dce];
-}
-```
->```swift
-var barcodeReader:DynamsoftBarcodeReader! = nil
-...
-class ViewController: UIViewController {
- // Add function configureDBR and add the following code.
- func configurationDBR() {
- barcodeReader = DynamsoftBarcodeReader.init()
- // Bind the instance of Camera to the BarcodeReader
- barcodeReader.setCameraEnhancer(dce)
- }
-}
-```
-
-### Obtain Video Barcode Decoding Results
-
-Method `startScanning` is the main toggle for enabling video barcode decoding. If you have bound the instance of CameraEnhancer to the BarcodeReader, you can turn on the switch by triggering `startScanning`. To turn off the video barcode decoding, you can use `stopScanning`.
-
-`TextResultCallback` is the callback method that will be triggered each time when the BarcodeReader completed processing on a video frame. The following data will be transfered in the callback method:
-
-- `id`: The id of the video frame. It is defined by the CameraEnhancer when the video frame is captured.
-- `imageData`: The image data of the video frame. Users can obtain the image data even if there is no barcode result detected from the image.
-- `textResults`: A array of `TextResult` which contains information like the text, formats and locations of the detected barcodes.
-
-To obtain the barcode results, you have to configure the `TextResultCallback` and trigger the `startScanning` in your project.
-
-
- >- Android
- >- Objective-C
- >- Swift
- >
->```java
-public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- mBarcodeReader.setTextResultListener(new TextResultListener() {
- // Obtain the recognized barcode results and display.
- @Override
- public void textResultCallback(int id, ImageData imageData, TextResult[] textResults) {
- // Add code to execute when barcode textResult is received.
- }
- });
- }
- @Override
- public void onResume() {
- try {
- mCamera.open();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- // Start Scanning when app is resumed
- mBarcodeReader.startScanning();
- super.onResume();
- }
- @Override
- public void onPause() {
- try {
- mCamera.close();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- // Stop Scanning when app is paused
- mBarcodeReader.stopScanning();
- super.onPause();
- }
-}
-```
->```objc
-// Add DBRTextResultListener to the viewController
-@interface ViewController ()
-...
-// Add the following code in configurationDBR.
-- (void)configurationDBR{
- [_barcodeReader setDBRTextResultListener:self];
- [_barcodeReader startScanning];
-}
-- (void)textResultCallback:(NSInteger)frameId imageData:(iImageData *)imageData results:(NSArray *)results{
- // Add code to execute when barcode textResult is received.
-}
-```
->```swift
-var barcodeReader:DynamsoftBarcodeReader! = nil
-...
-// Add DBRTextResultListener to the viewController
-class ViewController: UIViewController, DBRTextResultListener {
- // Add the following code in configurationDBR.
- func configurationDBR() {
- ...
- barcodeReader.setDBRTextResultListener(self)
- barcodeReader.startScanning()
- }
- func textResultCallback(_ frameId: Int, imageData: iImageData, results: [iTextResult]?) {
- // Add code to execute when barcode textResult is received.
- }
-}
-```
diff --git a/programming/features/use-format-specific-configuration-v9.6.42.md b/programming/features/use-format-specific-configuration-v9.6.42.md
deleted file mode 100644
index 799d9fd3..00000000
--- a/programming/features/use-format-specific-configuration-v9.6.42.md
+++ /dev/null
@@ -1,327 +0,0 @@
----
-layout: default-layout
-description: This article describes how to configure the FormatSpecification parameter in a template to decode a particular barcode type
-title: Use Format Specific Configuration
-keywords: nonstandard barcode, specification, template
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# Use Format Specific Configuration
-
-`FormatSpecification` is part of the configuration template and allows you to configure settings that apply only to the specified barcode format. Note that in order to use this feature, you must use a template instead of `RuntimeSettings`. Read more on [`RuntimeSettings` and templates](use-runtimesettings-or-templates.md).
-
-This article covers the following parameters provided in a `FormatSpecification` object:
-
-- [Use Format Specific Configuration](#use-format-specific-configuration)
- - [BarcodeFormatIds, BarcodeFormatIds\_2](#barcodeformatids-barcodeformatids_2)
- - [MirrorMode](#mirrormode)
- - [RequireStartStopChars](#requirestartstopchars)
- - [AllModuleDeviation](#allmoduledeviation)
- - [HeadModuleRatio, TailModuleRatio](#headmoduleratio-tailmoduleratio)
- - [StandardFormat](#standardformat)
- - [AustralianPostEncodingTable](#australianpostencodingtable)
- - [MinQuietZoneWidth](#minquietzonewidth)
- - [ModuleSizeRangeArray](#modulesizerangearray)
-
-## BarcodeFormatIds, BarcodeFormatIds_2
-
-Specifies the barcode type for which the `FormatSpecification` object applies. This is essential to make any format specific configuration. Read on to see how it is used in actual templates.
-
-## MirrorMode
-
-This parameter specifies whether to decode mirror barcodes.
-
-Sometimes the image we get is a mirror image of the actual scene. For example, the following is a normal QR code
-
-![normal QR][1]
-
-and this is the same code when mirrored:
-
-![mirror QR][2]
-
-For 2D barcodes, mirroring may cause the decoding to fail. In this case, we can configure `MirrorMode` to handle it. The allowed values are
-
-| Enumeration | Value | Note |
-|-----------|--------|----------------------|
-| MM_NORMAL | 0x01 | Decode the original image. |
-| MM_MIRROR | 0x02 | Decode the mirror image. |
-| MM_BOTH | 0x04 | Try both the original and the mirror images. |
-
-The default value of `MirrorMode` is
-
-* `MM_BOTH` for `QRCode`, `DataMatrix`, `PDF417`, `AZTEC`, `Micro QR Code`, `Micro PDF417`, `DotCode`, `Pharmacode Two-Track`
-* `MM_NORMAL` for other barcode types.
-
-In most cases, the default value will work fine. But assuming that you work excusively with mirrored QR codes, you can configure DBR like this:
-
-```json
-{
- "ImageParameter": {
- "Name": "ImageParameter1",
- "Description": "Read mirror barcodes.",
- "FormatSpecificationNameArray": ["FP_1"]
- },
- "FormatSpecificationArray": [
- {
- "Name": "FP_1",
- "BarcodeFormatIds": ["BF_QR_CODE"],
- "MirrorMode":"MM_MIRROR"
- }
- ],
- "Version": "3.0"
-}
-```
-
-## RequireStartStopChars
-
-This parameter specifies whether decoding requires start and stop symbols.
-
-1D barcodes usually have fixed start and stop symbols. Normally, DBR can only decode a barcode properly if it finds the start and stop symbols. However, in some cases, the actual barcode symbol may be missing the start and/or stop symbols. `RequireStartStopChars` is designed to read these non-standard barcodes and is used to specify whether the start and stop symbols are required for decoding. The allowed values are
-
-* 0: start and stop symbols are optional
-* 1: start and stop symbols are required
-
-The figure below shows a standard Code39 with start and stop symbols:
-
-![standard-code39][3]
-
-This one shows the same barcode without start and stop symbols:
-
-![code39 without start and end pattern][4]
-
-The following template configures DBR to read Code39 barcodes that don't have start and/or stop symbols:
-
-```json
-{
- "ImageParameter": {
- "Name": "ImageParameter1",
- "Description": "Read barcodes without start or end symbols.",
- "FormatSpecificationNameArray": ["FP_1"]
- },
- "FormatSpecificationArray": [
- {
- "Name": "FP_1",
- "BarcodeFormatIds": ["BF_CODE_39"],
- "RequireStartStopChars":0
- }
- ],
- "Version": "3.0"
-}
-```
-
-## AllModuleDeviation
-
-This parameter specifies the deviation of the bar width from the standard bar width for 1D barcodes. The default value is 0.
-
-Occasionally, due to typographical errors, 1D barcodes may contain bars of non-standard widths. Such barcodes are considered invalid and ignored by DBR. If you want DBR to read these barcodes, you can use the parameter `AllModuleDeviation`.
-
-Note that "all" in the parameter name means it only works if all bars (black & white) of the barcode are off (have the same deviation). For example, if the width (in pixels) of bars for a standard barcode are [6, 2, 4, 2], a deviation of 2 would mean the widths become [8, 4, 6, 4], whereas the widths [12, 4, 8, 4] would be considered correctly enlarged.
-
-To utilize this parameter, you need to set the following parameters as well:
-
-1. `FormatSpecification.BarcodeFormatIds_2` should be set to `NON_STANDARD_BARCODE`, which indicates that the barcode to be read does not strictly follow any standard format.
-
-2. `FormatSpecification.StandardFormat` should be set to a standard 1D barcode format such as `BF_CODE128` on which DBR applies the deviation.
-
-3. `ImageParameter.BarcodeFormatIds_2` should be set to `NON_STANDARD_BARCODE`, which means non-standard barcodes are to be read.
-
-The following shows a standard Code128 barcode with a module size of 2px followed by a non-standard Code128 barcode which consists of bars with a deviation of 2px.
-
-![standard-code128][5]
-
-![code128-deviation][6]
-
-To read this non-standard barcode, we can set the deviation to 2 as shown in the following template:
-
-```json
-{
- "ImageParameter": {
- "Name": "ImageParameter1",
- "Description": "Read barcodes with width deviation.",
- "FormatSpecificationNameArray": ["FP_1"],
- "BarcodeFormatIds_2": ["BF2_NONSTANDARD_BARCODE"]
- },
- "FormatSpecificationArray": [
- {
- "Name": "FP_1",
- "BarcodeFormatIds_2": ["BF2_NONSTANDARD_BARCODE"],
- "StandardFormat": "BF_CODE_128",
- "AllModuleDeviation":2
-
- }
- ],
- "Version": "3.0"
-}
-```
-
-## HeadModuleRatio, TailModuleRatio
-
-These parameters specify the exception bars used as the start or stop symbols of a non-standard 1D barcode.
-
-The last parameter [`AllModuleDeviation`](#allmoduledeviation) handles barcodes consisting of all bars that deviate in the same way. If the bars that make up the start or stop symbol of a barcode have irregular deviations, `HeadModuleRatio` and `TailModuleRatio` can be used to specify them.
-
-Just like [`AllModuleDeviation`](#allmoduledeviation), you need to set the following parameters to utilize `HeadModuleRatio` and `TailModuleRatio`:
-
-1. `FormatSpecification.BarcodeFormatIds_2` should be set to `NON_STANDARD_BARCODE`, which indicates that the barcode to be read does not strictly follow any standard format.
-
-2. `FormatSpecification.StandardFormat` should be set to a standard 1D barcode format such as `BF_CODE128` on which DBR applies the deviation.
-
-3. `ImageParameter.BarcodeFormatIds_2` should be set to `NON_STANDARD_BARCODE`, which means non-standard barcodes are to be read.
-
-The image below is such a non-standard barcode: it has irregular start bars with a ratio of 2:1:1:3:3:1 and irregular stop bars with a ratio of 2:3:3:2:2:2:3.
-
-![nonstandard-start-end][7]
-
-If the barcode conforms to the standard (Code Set C), it should have start bars with a ratio of 2:1:1:2:3:2 and stop bars with a ratio of 2:3:3:1:1:1:2 like this:
-
-![standard-start-end][8]
-
-The following template demostrates how to use `HeadModuleRatio` and `TailModuleRatio` to tell DBR about the irregular start and stop symbols of the barcode:
-
-```json
-{
- "ImageParameter": {
- "Name": "ImageParameter1",
- "Description": "Read barcodes with irregular start and end symbols.",
- "FormatSpecificationNameArray": ["FP_1"],
- "BarcodeFormatIds_2": ["BF2_NONSTANDARD_BARCODE"]
- },
- "FormatSpecificationArray": [
- {
- "Name": "FP_1",
- "BarcodeFormatIds_2": [
- "BF2_NONSTANDARD_BARCODE"
- ],
- "StandardFormat":"BF_CODE_128",
- "HeadModuleRatio": "211331",
- "TailModuleRatio": "2332223",
- "Code128Subset": "C"
- }
- ],
- "Version": "3.0"
-}
-```
-
-## StandardFormat
-
-This parameter specifies a standard barcode format based on which a non-standard format is defined. See it in action with the parameters [`AllModuleDeviation`](#allmoduledeviation), [`HeadModuleRatio`](#headmoduleratio-tailmoduleratio) and [`TailModuleRatio`](#headmoduleratio-tailmoduleratio).
-
-## AustralianPostEncodingTable
-
-Australia Post Barcodes contain a segment of customer information that can be decoded using one of two standard-defined decoding tables (CTable, NTable). This parameter is used to specify which table should be used.
-
-|Name|Description|
-|---|---|
-|CTable|This table allows A..Z, a..z, 1..9, space and # sign.|
-|NTable|This table only allows digits.|
-
-This parameter can be set to "C" or "N" and the default value is "C".
-
-You also need to set `FormatSpecification.BarcodeFormatIds_2` to `BF2_AUSTRALIANPOST` as shown in the template below:
-
-```json
-{
- "ImageParameter": {
- "Name": "ImageParameter1",
- "Description": "Specify which table to use for interpreting customre information.",
- "FormatSpecificationNameArray": ["FP_1"],
- "BarcodeFormatIds_2": ["BF2_AUSTRALIANPOST"]
- },
- "FormatSpecificationArray": [
- {
- "Name": "FP_1",
- "BarcodeFormatIds_2": [
- "BF2_AUSTRALIANPOST"
- ],
- "AustralianPostEncodingTable": "C"
- }
- ],
- "Version": "3.0"
-}
-```
-
-## MinQuietZoneWidth
-
-Quiet zone is the blank margin on both sides of the barcode that tells the barcode reader where the barcode symbol starts and stops. Ideally, there should be enough space on both ends. However, real-life barcodes may have thinner margins than expected. To handle this, we can use `MinQuietZoneWidth` to specify the minimum width of the quiet zone.
-
-![barcode-quietzone-definition][9]
-
-Here is a sample image with a very narrow quiet zone:
-
-![barcode-narrow-wide-quietzone][10]
-
-In this case, we can set `MinQuietZoneWidth` to 1 or 0:
-
-```json
-{
- "ImageParameter": {
- "Name": "ImageParameter1",
- "Description": "Read barcodes with think quiet zone.",
- "FormatSpecificationNameArray":["FP_1"],
- "DeblurLevel": 1
- },
- "FormatSpecificationArray": [
- {
- "Name": "FP_1",
- "BarcodeFormatIds": ["BF_CODE_128"],
- "MinQuietZoneWidth":1
- }
- ],
- "Version": "3.0"
-}
-```
-
-## ModuleSizeRangeArray
-
-The module size is the width of the thinnest possible bar for 1D barcodes or the width of the smallest building block for a 2D barcode. By default, DBR will try to locate and decode barcodes with any module size. In some cases, you may only be interested in barcodes with certain module sizes. In this case, you can use `ModuleSizeRangeArray` to specify a range of different module sizes for DBR to use when reading barcodes.
-
-The allowed values range from 0 to 0x7fffffff in pixels.
-
-The template below limits the module size to 10 ~ 100.
-
-```json
-{
- "ImageParameter": {
- "Name": "ImageParameter1",
- "Description": "Limit the module size.",
- "FormatSpecificationNameArray":["FP_1"]
- },
- "FormatSpecificationArray": [
- {
- "Name": "FP_1",
- "BarcodeFormatIds": [
- "BF_CODE_39"
- ],
- "ModuleSizeRangeArray":[
- {
- "MaxValue":100,
- "MinValue":10
- }
- ]
- }
- ],
- "Version": "3.0"
-}
-```
-
-[1]:assets/format-specification/normal-qr.png
-
-[2]:assets/format-specification/mirror-qr.png
-
-[3]:assets/format-specification/standard-code39.png
-
-[4]:assets/format-specification/code39-without-start-end.png
-
-[5]:assets/format-specification/standard-code128.png
-
-[6]:assets/format-specification/code128-deviation.png
-
-[7]:assets/format-specification/nonstandard-start-end.png
-
-[8]:assets/format-specification/standard-start-end.png
-
-[9]:assets/format-specification/barcode-quietzone-definition.png
-
-[10]:assets/format-specification/barcode-with-narrow-quietzone.png
diff --git a/programming/features/use-intermidiate-results-v9.6.42.md b/programming/features/use-intermidiate-results-v9.6.42.md
deleted file mode 100644
index e687968e..00000000
--- a/programming/features/use-intermidiate-results-v9.6.42.md
+++ /dev/null
@@ -1,312 +0,0 @@
----
-layout: default-layout
-title: How to Use Intermediate Results
-description: This page shows how to use Intermediate Results.
-keywords: intermediate results, IntermediateResult, IntermediateResultType, how-to guides
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# How to Use Intermediate Results
-
-Apart from getting the results like barcode type, value, location, Dynamsoft Barcode Reader (DBR) also provides APIs for you to obtain the intermediate results like original image, transformed grayscale image, binarized image, text zone, and more for further analysis. See enum [`IntermediateResultType`]({{ site.enumerations }}result-enums.html#intermediateresulttype) for the full list of supported intermediate result types. All these results can be saved in memory or in the file system, which is controled by parameter [`IntermediateResultSavingMode`]({{ site.parameters_reference }}intermediate-result-saving-mode.html#intermediateresultsavingmode).
-
-**Note**: You will need a separate license for all the intermediate results except the original image.
-
-Here we will show how to save the binarized image to your file system and obtain the localized barcode zone in memory:
-
-
- >- JavaScript
- >- Android
- >- Objective-C
- >- Swift
- >- Python
- >- Java
- >- C#
- >- C++
- >- C
- >
->
-```javascript
-(async () => {
- let scanner = await Dynamsoft.DBR.BarcodeScanner.createInstance();
- let rs = await scanner.getRuntimeSettings();
- // Sets the intermediate results you want to check.
- rs.intermediateResultTypes = Dynamsoft.DBR.EnumIntermediateResultType.IRT_ORIGINAL_IMAGE | Dynamsoft.DBR.EnumIntermediateResultType.IRT_BINARIZED_IMAGE;
- await scanner.updateRuntimeSettings(rs);
- scanner.onUniqueRead = async (txt, result) => {
- try {
- // Gets the intermediate results and show them on the page.
- let cvss = await scanner.getIntermediateCanvas();
- for (let cvs of cvss) {
- document.body.appendChild(cvs);
- }
- } catch (ex) {
- console.error(ex);
- }
- };
- await scanner.show();
-})();
-```
->
-```java
-BarcodeReader.initLicense("YOUR-LICENSE-KEY");
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.getRuntimeSettings();
-// Set binarized image and localized barcode zone of the intermediate result types to be saved
-settings.intermediateResultTypes = EnumIntermediateResultType.IRT_BINARIZED_IMAGE | EnumIntermediateResultType.IRT_TYPED_BARCODE_ZONE;
-// Save intermediate result to both file system and memory
-settings.intermediateResultSavingMode = EnumIntermediateResultSavingMode.IRSM_BOTH;
-// Update RuntimeSettings with above settings
-reader.updateRuntimeSettings(settings);
-// Set the folder path which stores the intermediate result. Please make sure you have write permission to this folder.
-reader.setModeArgument("IntermediateResultSavingMode", 0, "FolderPath", "YOUR-SAVING-PATH");
-reader.decodeFile("YOUR-IMAGE-FILE-PATH");
-// After decoding, the binarized image can be found at "YOUR-SAVING-PATH"
-// Here we will get the localized barcode zone in memory
-IntermediateResult[] intermediateResults = reader.getIntermediateResults(); // Get all the intermediate results
-int iCount = intermediateResults.length;
-for (int i = 0; i < iCount; i++) //Loop all intermediate results
-{
- IntermediateResult ir =intermediateResults[i];
- // Here we only process the localized barcode zone
- if (ir.dataType == EnumIMResultDataType.IMRESULT_LOCALIZATIONRESULT)
- {
- LocalizationResult localization = (LocalizationResult)ir.results[0];
- Log.i("confidence: " + localization.confidence);
- // Use more information in localization
- }
-}
-// Add further process
-```
->
-```objc
-NSError *err = nil;
-DynamsoftBarcodeReader* reader = [[DynamsoftBarcodeReader alloc] init];
-// Get the current RuntimeSettings
-iPublicRuntimeSettings* settings = [reader getRuntimeSettings:&err];
-// Set binarized image and localized barcode zone of the intermediate result types to be saved
-settings.intermediateResultTypes = EnumIntermediateResultTypeBinarizedImage | EnumIntermediateResultTypeTypedBarcodeZone;
-// Save intermediate result to both file system and memory
-settings.intermediateResultSavingMode = EnumIntermediateResultSavingModeBoth;
-// Update RuntimeSettings with above settings
-[reader updateRuntimeSettings:settings error:&err];
-// Set the folder path which stores the intermediate result. Please make sure you have write permission to this folder.
-[reader setModeArgument:@"IntermediateResultSavingMode" index:0 argumentName:@"FolderPath" argumentValue:@"YOUR-SAVING-PATH" error:&err];
-[reader decodeFileWithName:@"YOUR-IMAGE-FILE-PATH" error:&err];
-// After decoding, the binarized image can be found at "YOUR-SAVING-PATH"
-// Here we will get the localized barcode zone in memory
-// The method returns an array of intermediate result.
-NSArray* intermediateResultArray = [reader getIntermediateResults:&err]; // Get all the intermediate results
-for (iIntermediateResult* intermediateResult in intermediateResultArray) //Loop all intermediate results
-{
- // Here we only process the localized barcode zone
- if (intermediateResult.dataType == EnumIMResultDataTypeLocalizationResult)
- {
- NSArray* localizationResultArray = (NSArray*) intermediateResult.results;
- for localizationResult in localizationResultArray{
- // Now you can get each iLocalizationResult from the iIntermediateResult.
- }
- // Use more information in localization
- }
-}
-// Add further process
-```
->
-```swift
-let reader = DynamsoftBarcodeReader.init()
-let settings = try? reader.getRuntimeSettings() //Get the current RuntimeSettings
-// Set binarized image and localized barcode zone of the intermediate result types to be saved
-settings?.intermediateResultTypes = EnumIntermediateResultType.binarizedImage.rawValue | EnumIntermediateResultType.typedBarcodeZone.rawValue
-// Save intermediate result to both file system and memory
-settings?.intermediateResultSavingMode = .both
-// Update RuntimeSettings with above settings
-try? reader.updateRuntimeSettings(settings) // Update RuntimeSettings with above setting
-// Set the folder path which stores the intermediate result. Please make sure you have write permission to this folder.
-try? reader.setModeArgument("IntermediateResultSavingMode", index:0, argumentName:"FolderPath", argumentValue:"YOUR-SAVING-PATH")
-try? reader.decodeFileWithName("YOUR-IMAGE-FILE-PATH")
-// After decoding, the binarized image can be found at "YOUR-SAVING-PATH".
-// Here we will get the localized barcode zone in memory.
-// The method returns an array of intermediate result.
-let intermediateResultArray = try? reader.getIntermediateResults()
-for intermediateResult in intermediateResultArray! {
- // Here we only process the localized barcode zone
- if intermediateResult.dataType == .localizationResult {
- // Get an array of localization from a single intermediateResult
- let localizationResultArray = intermediateResult.results as! [iLocalizationResult]
- for localizationResult in localizationResultArray{
- // Now you can get each iLocalizationResult from the iIntermediateResult.
- }
- }
-}
-// Add further process
-```
->
-```python
-error = BarcodeReader.init_license("YOUR-LICENSE-KEY")
-if error[0] != EnumErrorCode.DBR_OK:
- print(error[1])
-dbr = BarcodeReader()
-settings = dbr.get_runtime_settings()
-# Set binarized image and localized barcode zone of the intermediate result types to be saved
-settings.intermediate_result_types = EnumIntermediateResultType.IRT_BINARIZED_IMAGE | EnumIntermediateResultType.IRT_TYPED_BARCODE_ZONE
-# Save intermediate result to both file system and memory
-settings.intermediate_result_saving_mode = EnumIntermediateResultSavingMode.IRSM_BOTH
-dbr.update_runtime_settings(settings)
-# Set the folder path which stores the intermediate result. Please make sure you have write permission to this folder.
-dbr.set_mode_argument("IntermediateResultSavingMode", 0, "FolderPath", "YOUR-SAVING-PATH")
-dbr.decode_file("YOUR-IMAGE-FILE-PATH")
-# After decoding, the binarized image can be found at "YOUR-SAVING-PATH"
-# Here we will get the localized barcode zone in memory
-intermediateResults = dbr.get_all_intermediate_results()
-for intermediateResult in intermediateResults:
- # Here we only process the localized barcode zone
- if intermediateResult.data_type == EnumIMResultDataType.IMRDT_LOCALIZATIONRESULT:
- localization = intermediateResult.results[0]
- print("confidence: ")
- print(localization.confidence)
- # Use more information in localization
-# Add further process
-```
->
-```java
-BarcodeReader.initLicense("YOUR-LICENSE-KEY");
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.getRuntimeSettings();
-// Set binarized image and localized barcode zone of the intermediate result types to be saved
-settings.intermediateResultTypes = EnumIntermediateResultType.IRT_BINARIZED_IMAGE | EnumIntermediateResultType.IRT_TYPED_BARCODE_ZONE;
-// Save intermediate result to both file system and memory
-settings.intermediateResultSavingMode = EnumIntermediateResultSavingMode.IRSM_BOTH;
-// Update RuntimeSettings with above settings
-reader.updateRuntimeSettings(settings);
-// Set the folder path which stores the intermediate result. Please make sure you have write permission to this folder.
-reader.setModeArgument("IntermediateResultSavingMode", 0, "FolderPath", "YOUR-SAVING-PATH");
-reader.decodeFile("YOUR-IMAGE-FILE-PATH", "");
-// After decoding, the binarized image can be found at "YOUR-SAVING-PATH"
-// Here we will get the localized barcode zone in memory
-IntermediateResult[] intermediateResults = reader.getIntermediateResults(); // Get all the intermediate results
-int iCount = intermediateResults.length;
-for (int i = 0; i < iCount; i++) //Loop all intermediate results
-{
- IntermediateResult ir =intermediateResults[i];
- // Here we only process the localized barcode zone
- if (ir.dataType == EnumIMResultDataType.IMRESULT_LOCALIZATIONRESULT)
- {
- LocalizationResult localization = (LocalizationResult)ir.results[0];
- System.out.println("confidence: " + localization.confidence);
- // Use more information in localization
- }
-}
-// Add further process
-```
->
-```csharp
-string errorMsg;
-EnumErrorCode iRet = BarcodeReader.InitLicense("YOUR-LICENSE-KEY", out errorMsg);
-if (iRet != EnumErrorCode.DBR_SUCCESS)
-{
- Console.WriteLine(errorMsg);
-}
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.GetRuntimeSettings();
-// Set binarized image and localized barcode zone of the intermediate result types to be saved
-settings.IntermediateResultTypes = (int)(EnumIntermediateResultType.IRT_BINARIZED_IMAGE | EnumIntermediateResultType.IRT_TYPED_BARCODE_ZONE);
-// Save intermediate result to both file system and memory
-settings.IntermediateResultSavingMode = EnumIntermediateResultSavingMode.IRSM_BOTH;
-// Update RuntimeSettings with above settings
-reader.UpdateRuntimeSettings(settings);
-// Set the folder path which stores the intermediate result. Please make sure you have write permission to this folder.
-reader.SetModeArgument("IntermediateResultSavingMode", 0, "FolderPath", "YOUR-SAVING-PATH", out errorMsg);
-reader.DecodeFile("YOUR-IMAGE-FILE-PATH", "");
-// After decoding, the binarized image can be found at "YOUR-SAVING-PATH"
-// Here we will get the localized barcode zone in memory
-IntermediateResult[] intermediateResults = reader.GetIntermediateResults(); // Get all the intermediate results
-foreach (IntermediateResult ir in intermediateResults) //Loop all intermediate results
-{
- // Here we only process the localized barcode zone
- if (ir.DataType == EnumIMResultDataType.IMRDT_LOCALIZATIONRESULT)
- {
- LocalizationResult localization = (LocalizationResult)ir.Results[0];
- Console.WriteLine("confidence: " + localization.Confidence);
- // Use more information in localization
- }
-}
-// Add further process
-```
->
-```cpp
-char errorBuf[512];
-int iRet = -1;
-iRet = dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- cout << errorBuf << endl;
-}
-CBarcodeReader* reader = new CBarcodeReader();
-PublicRuntimeSettings runtimeSettings;
-reader->GetRuntimeSettings(&runtimeSettings);
-// Set binarized image and localized barcode zone of the intermediate result types to be saved
-runtimeSettings.intermediateResultTypes = IRT_BINARIZED_IMAGE | IRT_TYPED_BARCODE_ZONE;
-// Save intermediate result to both file system and memory
-runtimeSettings.intermediateResultSavingMode = IRSM_BOTH;
-// Update RuntimeSettings with above settings
-reader->UpdateRuntimeSettings(&runtimeSettings, errorBuf, 512);
-// Set the folder path which stores the intermediate result. Please make sure you have write permission to this folder.
-reader->SetModeArgument("IntermediateResultSavingMode", 0, "FolderPath", "YOUR-SAVING-PATH", errorBuf, 512);
-reader->DecodeFile("YOUR-IMAGE-FILE-PATH", "");
-// After decoding, the binarized image can be found at "YOUR-SAVING-PATH"
-// Here we will get the localized barcode zone in memory
-IntermediateResultArray* pResults = NULL;
-reader->GetIntermediateResults(&pResults); // Get all the intermediate results
-int iCount = pResults->resultsCount;
-for (int i = 0; i < iCount; i++) //Loop all intermediate results
-{
- // Here we only process the localized barcode zone
- if (pResults->results[i]->dataType == IMRDT_LOCALIZATIONRESULT)
- {
- LocalizationResult* localization = (LocalizationResult*)pResults->results[i]->results[0];
- cout << "confidence: " << localization->confidence << endl;
- // Use more information in localization
- }
-}
-// Add further process
-```
->
-```c
-int iRet = -1;
-char errorBuf[512];
-iRet = DBR_InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- printf("%s\n", errorBuf);
-}
-void* reader = DBR_CreateInstance();
-PublicRuntimeSettings runtimeSettings;
-DBR_GetRuntimeSettings(reader, &runtimeSettings);
-// Set binarized image and localized barcode zone of the intermediate result types to be saved
-runtimeSettings.intermediateResultTypes = IRT_BINARIZED_IMAGE | IRT_TYPED_BARCODE_ZONE;
-// Save intermediate result to both file system and memory
-runtimeSettings.intermediateResultSavingMode = IRSM_BOTH;
-// Update RuntimeSettings with above settings
-DBR_UpdateRuntimeSettings(reader, &runtimeSettings, errorBuf, 512);
-// Set the folder path which stores the intermediate result. Please make sure you have write permission to this folder.
-DBR_SetModeArgument(reader, "IntermediateResultSavingMode", 0, "FolderPath", "YOUR-SAVING-PATH", errorBuf, 512);
-DBR_DecodeFile(reader, "YOUR-IMAGE-FILE-PATH", "");
-// After decoding, the binarized image can be found at "YOUR-SAVING-PATH"
-// Here we will get the localized barcode zone in memory
-IntermediateResultArray* pResults = NULL;
-DBR_GetIntermediateResults(reader, &pResults); // Get all the intermediate results
-int iCount = pResults->resultsCount;
-for (int i = 0; i < iCount; i++) //Loop all intermediate results
-{
- // Here we only process the localized barcode zone
- if (pResults->results[i]->dataType == IMRDT_LOCALIZATIONRESULT)
- {
- LocalizationResult* localization = (LocalizationResult*)pResults->results[i]->results[0];
- printf("confidence: %d\n", localization->confidence);
- // Use more information in localization
- }
-}
-// Add further process
-```
diff --git a/programming/features/use-region-predetection-v10.5.2100.md b/programming/features/use-region-predetection-v10.5.2100.md
deleted file mode 100644
index b74c7e1c..00000000
--- a/programming/features/use-region-predetection-v10.5.2100.md
+++ /dev/null
@@ -1,206 +0,0 @@
----
-layout: default-layout
-description: This article describes how to configure the region predetection mode for different scenario and automatically detect ROI.
-title: Use Region Predetection
-keywords: region predetection, ROI, region of interest
-needAutoGenerateSidebar: false
----
-
-# How To Use Region Predetection
-
-Dynamsoft Barcode Reader (DBR) can automatically detect Region of Interest (ROI) from image. A ROI is a sub area of the image where the barcodes may exist. Enabling ROI detection helps speed up the process since the decoding will only be applied on these ROIs instead of the entire image. For example, in the case of a small barcode in a large image, the time to process the entire image is relatively slow. If the background of the image itself is not very complicated and the barcode is clear, you can enable ROI detection by configuring the parameter [`RegionPredetectionModes`]({{ site.dcvb_parameters_reference }}image-parameter/region-predetection-modes.html), the time to process the small barcode area is much more faster. DBR currently supports three ROI detection modes and supports setting multiple modes at the same time.
-
-## Black & White or Gray Barcode on a Colored Background
-
-If the image is a color image, but the code is black & white or gray, you can use `RPM_GENERAL_RGB_CONTRAST` mode for region detection. As shown in the figure below, there is a small barcode in the lower right corner of the picture. If region detection is turned on, the approximate position of the barcode (the area marked by the red frame) will be detected first. DBR will recognize the barcode in the detection area, not in the entire image, which greatly shortens the recognition time.
-
-![region-predetection-rgb][1]
-
-JSON Template:
-
-```json
-{
- "CaptureVisionTemplates": [
- {
- "Name": "CV_0",
- "ImageROIProcessingNameArray": ["TA_0" ]
- }
- ],
- "TargetROIDefOptions" : [
- {
- "Name": "TA_0",
- "TaskSettingNameArray": [ "BR_0" ]
- }
- ],
- "BarcodeReaderTaskSettingOptions": [
- {
- "Name" : "BR_0",
- "SectionImageParameterArray": [
- {
- "Section": "ST_REGION_PREDETECTION",
- "ImageParameterName": "IP_0"
- }
- ]
- }
- ],
- "ImageParameterOptions": [
- {
- "Name": "IP_0",
- "RegionPredetectionModes": [
- {
- "Mode": "RPM_GENERAL_RGB_CONTRAST"
- }
- ]
- }
- ]
-}
-```
-
-## Grayscale
-
-If the image is a grayscale image, `RPM_GENERAL_GRAY_CONTRAST` mode is used for region detection. The JSON template of this mode is as follows:
-
-```json
-{
- "CaptureVisionTemplates": [
- {
- "Name": "CV_0",
- "ImageROIProcessingNameArray": ["TA_0" ]
- }
- ],
- "TargetROIDefOptions" : [
- {
- "Name": "TA_0",
- "TaskSettingNameArray": [ "BR_0" ]
- }
- ],
- "BarcodeReaderTaskSettingOptions": [
- {
- "Name" : "BR_0",
- "SectionImageParameterArray": [
- {
- "Section": "ST_REGION_PREDETECTION",
- "ImageParameterName": "IP_0"
- }
- ]
- }
- ],
- "ImageParameterOptions": [
- {
- "Name": "IP_0",
- "RegionPredetectionModes": [
- {
- "Mode": "RPM_GENERAL_GRAY_CONTRAST"
- }
- ]
- }
- ]
-}
-```
-
-## Colored Barcode on a Colored Background
-
-If the image is a color image and the barcode itself is also colored, `RPM_GENERAL_HSV_CONTRAST` can be used for region detection. At this time, the foreground, background color and fault tolerance rate of the barcode must be specified. The color value is Hue in the HSV space. The value range is [0, 360]. As shown in the figure below, the code in the middle of the picture is colored, the foreground and background colors are yellow and green. If the foreground color of the specified barcode is 46, the background color is 100, and the fault tolerance rate is 28 (at this time, only the foreground color is in the range [46-28 , 46+28], the background color is in the range [100-28, 100+28]), then the region detection can detect the approximate position of the barcode (the area marked by the red frame).
-
-![region-predetection-hsv][2]
-
-JSON Template:
-
-```json
-{
- "CaptureVisionTemplates": [
- {
- "Name": "CV_0",
- "ImageROIProcessingNameArray": ["TA_0" ]
- }
- ],
- "TargetROIDefOptions" : [
- {
- "Name": "TA_0",
- "TaskSettingNameArray": [ "BR_0" ]
- }
- ],
- "BarcodeReaderTaskSettingOptions": [
- {
- "Name" : "BR_0",
- "SectionImageParameterArray": [
- {
- "Section": "ST_REGION_PREDETECTION",
- "ImageParameterName": "IP_0"
- }
- ]
- }
- ],
- "ImageParameterOptions": [
- {
- "Name": "IP_0",
- "RegionPredetectionModes": [
- {
- "Mode": "RPM_GENERAL_HSV_CONTRAST",
- "MinImageDimension": 16384,
- "ForeAndBackgroundColours":"[46, 100, 28]"
- }
- ]
- }
- ]
-}
-```
-
-## Other color characteristic regions in the image
-
-For some special images, the code area has no obvious features to be detected directly, but there are some other regions with color features on the image. At this time, `RPM_GENERAL_HSV_CONTRAST` mode can also be used to detect these areas with color features. If the position of the barcode is fixed relative to the position of these areas, the position of the barcode can be deduced from the position of these areas, thereby realizing a quick barcode recognition.
-As shown in the figure below, there is a clear yellow label area. If the background color is set to yellow 54 and the fault tolerance is 28, the exact position of the label can be detected (the area marked by the red frame), and then use `RelativeRegions` parameter to get the relative position of the barcode region (the area marked by the green frame).
-
-
-![region-predetection-label][3]
-
-JSON Template:
-
-```json
-{
- "CaptureVisionTemplates": [
- {
- "Name": "CV_0",
- "ImageROIProcessingNameArray": ["TA_0" ]
- }
- ],
- "TargetROIDefOptions" : [
- {
- "Name": "TA_0",
- "TaskSettingNameArray": [ "BR_0" ]
- }
- ],
- "BarcodeReaderTaskSettingOptions": [
- {
- "Name" : "BR_0",
- "SectionImageParameterArray": [
- {
- "Section": "ST_REGION_PREDETECTION",
- "ImageParameterName": "IP_0"
- }
- ]
- }
- ],
- "ImageParameterOptions": [
- {
- "Name": "IP_0",
- "RegionPredetectionModes": [
- {
- "Mode": "RPM_GENERAL_HSV_CONTRAST",
- "MinImageDimension": 16384,
- "ForeAndBackgroundColours":"[-1, 54, 28]",
- "RelativeRegions":"[35, 130, 88, 170, -1]"
- }
- ]
- }
- ]
-}
-```
-
-[1]:assets/use-region-predetection/region-predetection-rgb.png
-[2]:assets/use-region-predetection/region-predetection-hsv.png
-[3]:assets/use-region-predetection/region-predetection-label.png
-
-## Related Articles
-
-- [Use Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html#json-template)
diff --git a/programming/features/use-region-predetection-v9.6.42.md b/programming/features/use-region-predetection-v9.6.42.md
deleted file mode 100644
index 59434707..00000000
--- a/programming/features/use-region-predetection-v9.6.42.md
+++ /dev/null
@@ -1,111 +0,0 @@
----
-layout: default-layout
-description: This article describes how to configure the region predetection mode for different scenario and automatically detect ROI.
-title: Use Region Predetection
-keywords: region predetection, ROI, region of interest
-needAutoGenerateSidebar: false
----
-
-# How To Use Region Predetection
-
-Dynamsoft Barcode Reader (DBR) can automatically detect Region of Interest (ROI) from image. A ROI is a sub area of the image where the barcodes may exist. Enabling ROI detection helps speed up the process since the decoding will only be applied on these ROIs instead of the entire image. For example, in the case of a small barcode in a large image, the time to process the entire image is relatively slow. If the background of the image itself is not very complicated and the barcode is clear, you can enable ROI detection by configuring the parameter [`RegionPredetectionModes`]({{ site.parameters_reference }}region-predetection-modes.html#regionpredetectionmodes), the time to process the small barcode area is much more faster. DBR currently supports three ROI detection modes and supports setting multiple modes at the same time.
-
-
-## Black & White or Gray Barcode on a Colored Background
-
-If the image is a color image, but the code is black & white or gray, you can use RPM_GENERAL_RGB_CONTRAST mode for region detection. As shown in the figure below, there is a small barcode in the lower right corner of the picture. If region detection is turned on, the approximate position of the barcode (the area marked by the red frame) will be detected first. DBR will recognize the barcode in the detection area, not in the entire image, which greatly shortens the recognition time. You can observe the location of the detected area through the intermediate result IRT_PREDETECTED_REGION.
-
-![region-predetection-rgb][1]
-
-JSON Template:
-
-```json
-{
- "ImageParameter": {
- "BarcodeFormatIds": ["BF_ALL"],
- "RegionPredetectionModes":[
- {
- "Mode":"RPM_GENERAL_RGB_CONTRAST"
- }
- ]
- },
- "Version": "3.0"
-}
-```
-
-## Grayscale
-
-If the image is a grayscale image, RPM_GENERAL_GRAY_CONTRAST mode is used for region detection. The JSON template of this mode is as follows:
-
-```json
-{
- "ImageParameter": {
- "BarcodeFormatIds": ["BF_ALL"],
- "RegionPredetectionModes":[
- {
- "Mode":"RPM_GENERAL_GRAY_CONTRAST"
- }
- ]
- },
- "Version": "3.0"
-}
-```
-
-## Colored Barcode on a Colored Background
-
-If the image is a color image and the barcode itself is also colored, RPM_GENERAL_HSV_CONTRAST can be used for region detection. At this time, the foreground, background color and fault tolerance rate of the barcode must be specified. The color value is Hue in the HSV space. The value range is [0, 360). As shown in the figure below, the code in the middle of the picture is colored, the foreground and background colors are yellow and green. If the foreground color of the specified barcode is 46, the background color is 100, and the fault tolerance rate is 28 (at this time, only the foreground color is in the range [46-28 , 46+28], the background color is in the range [100-28, 100+28]), then the region detection can detect the approximate position of the barcode (the area marked by the red frame). You can observe the location of the detected region through the intermediate result IRT_PREDETECTED_REGION.
-
-![region-predetection-hsv][2]
-
-JSON Template:
-
-```json
-{
- "ImageParameter": {
- "BarcodeFormatIds": ["BF_ALL"],
- "RegionPredetectionModes":[
- {
- "Mode":"RPM_GENERAL_HSV_CONTRAST",
- "MinImageDimension":16384,
- "ForeAndBackgroundColours":"[46, 100, 28]"
- }
- ]
- },
- "Version": "3.0"
-}
-```
-
-## Other color characteristic regions in the image
-
-For some special images, the code area has no obvious features to be detected directly, but there are some other regions with color features on the image. At this time, RPM_GENERAL_HSV_CONTRAST mode can also be used to detect these areas with color features. If the position of the barcode is fixed relative to the position of these areas, the position of the barcode can be deduced from the position of these areas, thereby realizing a quick barcode recognition.
-As shown in the figure below, there is a clear yellow label area. If the background color is set to yellow 54 and the fault tolerance is 28, the exact position of the label can be detected (the area marked by the red frame, can be observed through the intermediate result IRT_PREDETECTED_QUADRILATERAL), and then use RelativeBarcodeRegions parameter to get the relative position of the barcode region (the area marked by the green frame).
-
-
-![region-predetection-label][3]
-
-JSON Template:
-
-```json
-{
- "ImageParameter": {
- "BarcodeFormatIds": ["BF_ALL"],
- "RegionPredetectionModes":[
- {
- "Mode":"RPM_GENERAL_HSV_CONTRAST",
- "MinImageDimension":16384,
- "ForeAndBackgroundColours":"[-1, 54, 28]",
- "RelativeBarcodeRegions":"[35, 130, 88, 170, -1]"
- }
- ]
- },
- "Version": "3.0"
-}
-```
-
-[1]:assets/use-region-predetection/region-predetection-rgb.png
-[2]:assets/use-region-predetection/region-predetection-hsv.png
-[3]:assets/use-region-predetection/region-predetection-label.png
-
-## Related Articles
-
-- [Use Templates for Configuring Parameters]({{ site.features }}use-runtimesettings-or-templates.html#json-template)
diff --git a/programming/features/use-runtimesettings-or-templates-v9.6.42.md b/programming/features/use-runtimesettings-or-templates-v9.6.42.md
deleted file mode 100644
index 9939f142..00000000
--- a/programming/features/use-runtimesettings-or-templates-v9.6.42.md
+++ /dev/null
@@ -1,303 +0,0 @@
----
-layout: default-layout
-description: This article introduces two ways to configure DBR, RuntimeSettings and Json template, and their syntax rules.
-title: Use RuntimeSettings or Templates
-keywords: DBR RuntimeSettings Json Template ImageParameter FormatSpecification
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# Use RuntimeSettings or Templates
-
-DBR provides two ways for configuring the settings: via `RuntimeSettings` or via a JSON template.
-
-* [RuntimeSettings](#runtimesettings)
-
- `RuntimeSettings` is an object that manages various parameters during runtime. If you need to *dynamically* configure the reading process, use `RuntimeSettings`.
-
- However, bear in mind that `RuntimeSettings` doesn't provide all the available configuration options of the SDK.
-
-* [JSON Templates](#json-template)
-
- With a JSON template, you can make use of all the configuration options that DBR offers.
-
- However, compared with `RuntimeSettings`, a template is static and can't be changed. If you need to use different settings for different scenarios, you can define a few templates and specify the proper one to use at runtime.
-
-## RuntimeSettings
-
-`RuntimeSettings` is an object that manages various runtime settings of the DBR SDK which dictate the performance of the barcode reader.
-
-Basic steps:
-
-1. Get the current value of the `RuntimeSettings` object
-2. Change one or more settings
-3. Update the `RuntimeSettings` object with the changed copy for the changes to take effect
-
-The following code snippet demonstrates how to specify barcode formats via `RuntimeSettings`.
-
-
- >- Javascript
- >- Android
- >- Objective-C
- >- Swift
- >- Python
- >- Java
- >- C#
- >- C++
- >- C
- >
->
-```javascript
-// Specifies a license.
-Dynamsoft.DBR.BarcodeScanner.license = 'YOUR-LICENSE-KEY';
-// Creates a BarcodeScanner instance.
-let scanner = await Dynamsoft.DBR.BarcodeScanner.createInstance();
-// Obtains the current runtime settings.
-let rs = await scanner.getRuntimeSettings();
-// Sets the barcode format(s).
-rs.barcodeFormatIds = Dynamsoft.DBR.EnumBarcodeFormat.BF_QR_CODE;
-// Updates the settings.
-await scanner.updateRuntimeSettings(rs);
-```
->
-```java
-// Creates a BarcodeReader instance.
-BarcodeReader reader = new BarcodeReader();
-// Obtains the current runtime settings.
-PublicRuntimeSettings rs = reader.getRuntimeSettings();
-// Sets the barcode format(s).
-rs.barcodeFormatIds = EnumBarcodeFormat.BF_QR_CODE;
-// Updates the settings.
-reader.updateRuntimeSettings(rs);
-```
->
-```objc
-NSError* err = nil;
-// Creates a BarcodeReader instance.
-DynamsoftBarcodeReader* reader = [[DynamsoftBarcodeReader alloc] init];
-// Obtains the current runtime settings.
-iPublicRuntimeSettings* rs = [reader getRuntimeSettings:&err];
-// Sets the barcode format(s).
-rs.barcodeFormatIds = EnumBarcodeFormatQRCODE;
-// Updates the settings.
-[reader updateRuntimeSettings:rs error:&err];
-```
->
-```swift
-// Creates a BarcodeReader instance.
-let reader = DynamsoftBarcodeReader.init()
-// Obtains the current runtime settings.
-let rs = try? reader.getRuntimeSettings()
-// Sets the barcode format(s).
-rs?.barcodeFormatIds = EnumBarcodeFormat.QRCODE.rawValue
-// Updates the settings.
-try? reader.updateRuntimeSettings(rs)
-```
->
-```python
-error = BarcodeReader.init_license("YOUR-LICENSE-KEY")
-if error[0] != EnumErrorCode.DBR_OK:
- print(error[1])
-dbr = BarcodeReader()
-settings = dbr.get_runtime_settings()
-settings.barcode_format_ids = EnumBarcodeFormat.BF_QR_CODE
-settings.barcode_format_ids_2 = EnumBarcodeFormat_2.BF2_POSTALCODE
-dbr.update_runtime_settings(settings)
-text_results = dbr.decode_file("YOUR-IMAGE-FILE-PATH")
-# Add further process
-```
->
-```java
-BarcodeReader.initLicense("YOUR-LICENSE-KEY");
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.getRuntimeSettings(); //Get the current RuntimeSettings
-settings.barcodeFormatIds = EnumBarcodeFormat.BF_QR_CODE;
-settings.barcodeFormatIds_2 = EnumBarcodeFormat_2.BF2_POSTALCODE;
-reader.updateRuntimeSettings(settings); // Update RuntimeSettings with above setting
-TextResult[] result = reader.decodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```csharp
-string errorMsg;
-EnumErrorCode iRet = BarcodeReader.InitLicense("YOUR-LICENSE-KEY", out errorMsg);
-if (iRet != EnumErrorCode.DBR_SUCCESS)
-{
- Console.WriteLine(errorMsg);
-}
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.GetRuntimeSettings(); //Get the current RuntimeSettings
-settings.BarcodeFormatIds = (int)EnumBarcodeFormat.BF_QR_CODE;
-settings.BarcodeFormatIds_2 = (int)EnumBarcodeFormat_2.BF2_POSTALCODE;
-reader.UpdateRuntimeSettings(settings); // Update RuntimeSettings with above setting
-TextResult[] result = reader.DecodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```cpp
-char errorBuf[512];
-int iRet = -1;
-iRet = dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- cout << errorBuf << endl;
-}
-CBarcodeReader* reader = new CBarcodeReader();
-PublicRuntimeSettings* runtimeSettings = new PublicRuntimeSettings();
-reader->GetRuntimeSettings(runtimeSettings); //Get the current RuntimeSettings
-runtimeSettings->barcodeFormatIds = BF_QR_CODE;
-runtimeSettings->barcodeFormatIds_2 = BF2_POSTALCODE;
-reader->UpdateRuntimeSettings(runtimeSettings, errorBuf, 512); // Update RuntimeSettings with above setting
-reader->DecodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```c
-int iRet = -1;
-char errorBuf[512];
-iRet = DBR_InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- printf("%s\n", errorBuf);
-}
-void* barcodeReader = DBR_CreateInstance();
-PublicRuntimeSettings runtimeSettings;
-DBR_GetRuntimeSettings(barcodeReader, &runtimeSettings); //Get the current RuntimeSettings
-runtimeSettings.barcodeFormatIds = BF_QR_CODE;
-runtimeSettings.barcodeFormatIds_2 = BF2_POSTALCODE;
-DBR_UpdateRuntimeSettings(barcodeReader, &runtimeSettings, errorBuf, 512); // Update RuntimeSettings with above setting
-DBR_DecodeFile(barcodeReader, "YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
-
-## JSON Templates
-
-With a JSON template, you can make use of all the configuration options that DBR offers. A JSON template consists of three parts:
-
-* `ImageParameter`: Defines the global configurations used for the entire image.
-* `FormatSpecification`: Defines the configurations used for a particular barcode format.
-* `RegionDefinition`: Defines the configurations for a specific area of the image.
-
-> Read [Parameter Template Structure]({{ site.parameters }}structure-and-interfaces-of-parameters.html) to learn more about the structure of templates.
-
-> To easily create your own template, please use DBR's [online demo](https://demo.dynamsoft.com/barcode-reader/) settings menu on the left-hand side. When you toggle the "Advanced Settings" part of the menu and scroll to the bottom, you will find the full list of settings as a struct and more importantly, a JSON template that you can simply copy and paste.
-
-To use a template, you can either use `InitRuntimeSettingsWithFile` to load a JSON file, or use `InitRuntimeSettingsWithString`/`initRuntimeSettingsWithString` to load a JSON string.
-
-> Notes about the JavaScript edition
->
-> 1. It only supports importing a JSON string and not a file
-> 2. It only allows one fixed template, in other words, the template itself should contain only one `ImageParameter` object
-> 3. Importing a JSON string is usually slower than using the `RuntimeSettings` interface so we recommend going with the `RuntimeSettings` method if you are not using a completely customized settings template.
-
-The following code snippet demonstrates how to make use of a template.
-
-
- >- Javascript
- >- Android
- >- Objective-C
- >- Swift
- >- Python
- >- Java
- >- C#
- >- C++
- >- C
- >
->
-```javascript
-// Specifies a license.
-Dynamsoft.DBR.BarcodeScanner.license = 'YOUR-LICENSE-KEY';
-// Creates a BarcodeScanner instance.
-let scanner = await Dynamsoft.DBR.BarcodeScanner.createInstance();
-// Stringify a template into a string if it is not yet a string.
-let template = {ImageParameter:{}, version:3.0}; // An example of a template object, a real template would be much more complicated.
-let templateString = JSON.stringify(jsonTemplate);
-// Updates the settings with the string.
-await scanner.initRuntimeSettingsWithString(templateString);
-```
->
-```java
-// Creates a BarcodeReader instance.
-BarcodeReader reader = new BarcodeReader();
-// Updates the settings with the string.
-reader.initRuntimeSettingsWithString("A-JSON-Template");
-```
->
-```objc
-NSError* err = nil;
-// Creates a BarcodeReader instance.
-DynamsoftBarcodeReader* reader = [[DynamsoftBarcodeReader alloc] init];
-// Updates the settings with the string.
-[reader initRuntimeSettingsWithString:@"A-JSON-Template" error:&err];
-```
->
-```swift
-// Creates a BarcodeReader instance.
-let reader = DynamsoftBarcodeReader.init()
-// Updates the settings with the string.
-try? reader.initRuntimeSettingsWithString("A-JSON-Template")
-```
->
-```python
-error = BarcodeReader.init_license("YOUR-LICENSE-KEY")
-if error[0] != EnumErrorCode.DBR_OK:
- print(error[1])
-dbr = BarcodeReader()
-dbr.init_runtime_settings_with_string('{"Version":"3.0", "ImageParameter":{"Name":"IP1","ImagePreprocessingModes": [{"Mode": "IPM_GRAY_EQUALIZE","Sensitivity": 9},{"Mode": "IPM_GRAY_SMOOTH","SmoothBlockSizeX": 10,"SmoothBlockSizeY": 10},{"Mode": "IPM_SHARPEN_SMOOTH","SharpenBlockSizeX": 5,"SharpenBlockSizeY": 5},{"Mode": "IPM_MORPHOLOGY","MorphOperation": "Close","MorphOperationKernelSizeX": 7,"MorphOperationKernelSizeY": 7}]}}')
-text_results = dbr.decode_file("YOUR-IMAGE-FILE-PATH")
-# Add further process
-```
->
-```java
-BarcodeReader.initLicense("YOUR-LICENSE-KEY");
-BarcodeReader reader = new BarcodeReader();
-reader.initRuntimeSettingsWithString("{\"Version\":\"3.0\", \"ImageParameter\":{\"Name\":\"IP1\",\"ImagePreprocessingModes\": [{\"Mode\": \"IPM_GRAY_EQUALIZE\",\"Sensitivity\": 9},{\"Mode\": \"IPM_GRAY_SMOOTH\",\"SmoothBlockSizeX\": 10,\"SmoothBlockSizeY\": 10},{\"Mode\": \"IPM_SHARPEN_SMOOTH\",\"SharpenBlockSizeX\": 5,\"SharpenBlockSizeY\": 5},{\"Mode\": \"IPM_MORPHOLOGY\",\"MorphOperation\": \"Close\",\"MorphOperationKernelSizeX\": 7,\"MorphOperationKernelSizeY\": 7}]}}", EnumConflictMode.CM_OVERWRITE);
-TextResult[] result = reader.decodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```csharp
-string errorMsg;
-EnumErrorCode iRet = BarcodeReader.InitLicense("YOUR-LICENSE-KEY", out errorMsg);
-if (iRet != EnumErrorCode.DBR_SUCCESS)
-{
- Console.WriteLine(errorMsg);
-}
-BarcodeReader reader = new BarcodeReader();
-reader.InitRuntimeSettingsWithString("{\"Version\":\"3.0\", \"ImageParameter\":{\"Name\":\"IP1\",\"ImagePreprocessingModes\": [{\"Mode\": \"IPM_GRAY_EQUALIZE\",\"Sensitivity\": 9},{\"Mode\": \"IPM_GRAY_SMOOTH\",\"SmoothBlockSizeX\": 10,\"SmoothBlockSizeY\": 10},{\"Mode\": \"IPM_SHARPEN_SMOOTH\",\"SharpenBlockSizeX\": 5,\"SharpenBlockSizeY\": 5},{\"Mode\": \"IPM_MORPHOLOGY\",\"MorphOperation\": \"Close\",\"MorphOperationKernelSizeX\": 7,\"MorphOperationKernelSizeY\": 7}]}}", EnumConflictMode.CM_OVERWRITE, out errorMsg);
-TextResult[] result = reader.DecodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```cpp
-char errorBuf[512];
-int iRet = -1;
-iRet = dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- cout << errorBuf << endl;
-}
-CBarcodeReader* reader = new CBarcodeReader();
-reader->InitRuntimeSettingsWithString("{\"Version\":\"3.0\", \"ImageParameter\":{\"Name\":\"IP1\",\"ImagePreprocessingModes\": [{\"Mode\": \"IPM_GRAY_EQUALIZE\",\"Sensitivity\": 9},{\"Mode\": \"IPM_GRAY_SMOOTH\",\"SmoothBlockSizeX\": 10,\"SmoothBlockSizeY\": 10},{\"Mode\": \"IPM_SHARPEN_SMOOTH\",\"SharpenBlockSizeX\": 5,\"SharpenBlockSizeY\": 5},{\"Mode\": \"IPM_MORPHOLOGY\",\"MorphOperation\": \"Close\",\"MorphOperationKernelSizeX\": 7,\"MorphOperationKernelSizeY\": 7}]}}", CM_OVERWRITE, errorBuf, 512);
-reader->DecodeFile("YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
->
-```c
-int iRet = -1;
-char errorBuf[512];
-iRet = DBR_InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- printf("%s\n", errorBuf);
-}
-void* barcodeReader = DBR_CreateInstance();
-DBR_InitRuntimeSettingsWithString(barcodeReader, "{\"Version\":\"3.0\", \"ImageParameter\":{\"Name\":\"IP1\",\"ImagePreprocessingModes\": [{\"Mode\": \"IPM_GRAY_EQUALIZE\",\"Sensitivity\": 9},{\"Mode\": \"IPM_GRAY_SMOOTH\",\"SmoothBlockSizeX\": 10,\"SmoothBlockSizeY\": 10},{\"Mode\": \"IPM_SHARPEN_SMOOTH\",\"SharpenBlockSizeX\": 5,\"SharpenBlockSizeY\": 5},{\"Mode\": \"IPM_MORPHOLOGY\",\"MorphOperation\": \"Close\",\"MorphOperationKernelSizeX\": 7,\"MorphOperationKernelSizeY\": 7}]}}", CM_OVERWRITE, errorBuf, 512);
-DBR_DecodeFile(barcodeReader, "YOUR-IMAGE-FILE-PATH", ""); // Start decoding
-// Add further process
-```
-
-## Mixed Usage
-
-It's also possible to use a template along with `RuntimeSettings`. Typically, you initialize the SDK with a template, the settings in which will be reflected in `RuntimeSettings`, then you can further fine-tune `RuntimeSettings` to apply to the actual reading process.
diff --git a/programming/usecases/read-dpm-codes-v9.6.42.md b/programming/usecases/read-dpm-codes-v9.6.42.md
deleted file mode 100644
index 09650bc6..00000000
--- a/programming/usecases/read-dpm-codes-v9.6.42.md
+++ /dev/null
@@ -1,149 +0,0 @@
----
-layout: default-layout
-description: This article introduces how to read DPM codes.
-title: Read DPM Codes
-keywords: DPM, Direct Part Marking
----
-
-# How to Read DPM Codes
-
-## What is DPM (Direct Part Marking)?
-
-It is the process of creating permanent markings on the surface of a part to help identify it. DPM Codes are used widely in industrial part tracking, from electronics manufacturing to automotive assembly. Atypical from general scenarios, DPM Codes present more challenges, including light reflection interference from the surface the code is printed on, low contrast, and complex background texture. For reference, here are two sample images of DPM codes:
-
-![DPM sample image1][1]
-![DPM sample image2][2]
-
-## Particular Settings Required
-
-Dynamsoft Barcode Reader (DBR) provides a parameter, [`DPMCodeReadingModes`]({{ site.parameters_reference }}dpm-code-reading-modes.html#dpmcodereadingmodes), to control how to decode DPM codes. To enable the DPM feature, simply set a `DPMCRM_GENERAL` mode to this parameter.
-
-## Sample Code
-
-The following code snippet shows how to set the parameter via RuntimeSettings to read DPM code.
-
-
->- JavaScript
->- C
->- C++
->- C#
->- Java
->- Android
->- Objective-C
->- Swift
->- Python
->
->
-```javascript
-const scanner = scanner || await Dynamsoft.DBR.BarcodeScanner.createInstance();
-let settings = await scanner.getRuntimeSettings();
-// Sets dpmCodeReadingModes to support DPM reading.
-settings.furtherModes.dpmCodeReadingModes[0] = Dynamsoft.DBR.EnumDPMCodeReadingMode.DPMCRM_GENERAL;
-await scanner.updateRuntimeSettings(settings);
-scanner.onUniqueRead = (txt, result) => {
- alert(txt);
-};
-await scanner.show();
-```
->
-```c
-int iRet = -1;
-char errorBuf[512];
-iRet = DBR_InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- printf("%s\n", errorBuf);
-}
-void* barcodeReader = DBR_CreateInstance();
-PublicRuntimeSettings runtimeSettings;
-DBR_GetRuntimeSettings(barcodeReader, &runtimeSettings); //Get the current RuntimeSettings
-runtimeSettings.furtherModes.dpmCodeReadingModes[0] = DPMCRM_GENERAL; // Set a DPMCRM_GENERAL mode to read DPM codes
-DBR_UpdateRuntimeSettings(barcodeReader, &runtimeSettings, errorBuf, 512); // Update RuntimeSettings with above setting
-DBR_DecodeFile(barcodeReader, "YOUR-IMAGE-FILE-WITH-DPM-CODES", ""); // Start decoding
-// Add further process
-```
->
-```cpp
-char errorBuf[512];
-int iRet = -1;
-iRet = dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- cout << errorBuf << endl;
-}
-CBarcodeReader* reader = new CBarcodeReader();
-PublicRuntimeSettings* runtimeSettings = new PublicRuntimeSettings();
-reader->GetRuntimeSettings(runtimeSettings); //Get the current RuntimeSettings
-runtimeSettings->furtherModes.dpmCodeReadingModes[0] = DPMCRM_GENERAL; // Set a DPMCRM_GENERAL mode to read DPM codes
-reader->UpdateRuntimeSettings(runtimeSettings, errorBuf, 512); // Update RuntimeSettings with above setting
-reader->DecodeFile("YOUR-IMAGE-FILE-WITH-DPM-CODES", ""); // Start decoding
-// Add further process
-```
->
-```csharp
-string errorMsg;
-EnumErrorCode iRet = BarcodeReader.InitLicense("YOUR-LICENSE-KEY", out errorMsg);
-if (iRet != EnumErrorCode.DBR_SUCCESS)
-{
- Console.WriteLine(errorMsg);
-}
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.GetRuntimeSettings(); //Get the current RuntimeSettings
-settings.FurtherModes.DPMCodeReadingModes[0] = EnumDPMCodeReadingMode.DPMCRM_GENERAL; // Set a DPMCRM_GENERAL mode to read DPM codes
-reader.UpdateRuntimeSettings(settings); // Update RuntimeSettings with above setting
-TextResult[] result = reader.DecodeFile("YOUR-IMAGE-FILE-WITH-DPM-CODES", ""); // Start decoding
-// Add further process
-```
->
-```java
-BarcodeReader.initLicense("YOUR-LICENSE-KEY");
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.getRuntimeSettings(); //Get the current RuntimeSettings
-settings.furtherModes.dpmCodeReadingModes[0] = EnumDPMCodeReadingMode.DPMCRM_GENERAL; // Set a DPMCRM_GENERAL mode to read DPM codes
-reader.updateRuntimeSettings(settings); // Update RuntimeSettings with above setting
-TextResult[] result = reader.decodeFile("YOUR-IMAGE-FILE-WITH-DPM-CODES", ""); // Start decoding
-// Add further process
-```
->
-```java
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.getRuntimeSettings(); //Get the current RuntimeSettings
-settings.furtherModes.dpmCodeReadingModes[0] = EnumDPMCodeReadingMode.DPMCRM_GENERAL; // Set a DPMCRM_GENERAL mode to read DPM codes
-reader.updateRuntimeSettings(settings); // Update RuntimeSettings with above setting
-TextResult[] result = reader.decodeFile("YOUR-IMAGE-FILE-WITH-DPM-CODES"); // Start decoding
-// Add further process
-```
->
-```objc
-NSError* err = nil;
-DynamsoftBarcodeReader* reader = [[DynamsoftBarcodeReader alloc] init];
-iPublicRuntimeSettings* settings = [reader getRuntimeSettings:&err]; //Get the current RuntimeSettings
-settings.furtherModes.dpmCodeReadingModes[0] = EnumDPMCodeReadingModeGeneral; // Set a DPMCRM_GENERAL mode to read DPM codes
-[reader updateRuntimeSettings:settings error:&err]; // Update RuntimeSettings with above setting
-NSArray* result = [reader decodeFileWithName:@"YOUR-IMAGE-FILE-WITH-DPM-CODES" error:&err]; // Start decoding
-// Add further process
-```
->
-```swift
-let reader = DynamsoftBarcodeReader()
-let settings = try? reader.getRuntimeSettings() //Get the current RuntimeSettings
-settings?.furtherModes.dpmCodeReadingModes[0] = EnumDPMCodeReadingMode.general; // Set a DPMCRM_GENERAL mode to read DPM codes
-try? reader.updateRuntimeSettings(settings) // Update RuntimeSettings with above setting
-let result = try? reader.decodeFileWithName("YOUR-IMAGE-FILE-WITH-DPM-CODES") // Start decoding
-// Add further process
-```
->
-```python
-error = BarcodeReader.init_license("YOUR-LICENSE-KEY")
-if error[0] != EnumErrorCode.DBR_OK:
- print(error[1])
-dbr = BarcodeReader()
-settings = dbr.get_runtime_settings()
-settings.dpm_code_reading_modes[0] = EnumDPMCodeReadingMode.DPMCRM_GENERAL
-dbr.update_runtime_settings(settings)
-text_results = dbr.decode_file("YOUR-IMAGE-FILE-WITH-DPM-CODES")
-# Add further process
-```
-
-[1]:assets\read-dpm-codes\DPM-sample1.png
-[2]:assets\read-dpm-codes\DPM-sample2.png
diff --git a/programming/usecases/read-postal-codes-v9.6.42.md b/programming/usecases/read-postal-codes-v9.6.42.md
deleted file mode 100644
index c2a7320d..00000000
--- a/programming/usecases/read-postal-codes-v9.6.42.md
+++ /dev/null
@@ -1,147 +0,0 @@
----
-layout: default-layout
-description: This article introduces how to read Postal codes.
-title: How to read Postal codes
-keywords: Postal code, Direct Part Marking
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# How to read Postal codes
-
-## Sample Code
-
-The following code snippet shows how to set the parameter via RuntimeSettings to read Postal code.
-
-
->- JavaScript
->- C
->- C++
->- C#
->- Java
->- Android
->- Objective-C
->- Swift
->- Python
->
->
-```javascript
-const scanner = scanner || await Dynamsoft.DBR.BarcodeScanner.createInstance();
-let settings = await scanner.getRuntimeSettings();
-// Sets barcode formats to read Postal Code.
-settings.barcodeFormatIds = Dynamsoft.DBR.EnumBarcodeFormat.BF_NULL;
-settings.barcodeFormatIds_2 = Dynamsoft.DBR.EnumBarcodeFormat_2.BF2_POSTALCODE;
-await scanner.updateRuntimeSettings(settings);
-scanner.onUniqueRead = (txt, result) => {
- rawString = txt;
-};
-await scanner.show();
-```
->
-```c
-int iRet = -1;
-char errorBuf[512];
-iRet = DBR_InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- printf("%s\n", errorBuf);
-}
-void* barcodeReader = DBR_CreateInstance();
-PublicRuntimeSettings runtimeSettings;
-DBR_GetRuntimeSettings(barcodeReader, &runtimeSettings); //Get the current RuntimeSettings
-runtimeSettings.barcodeFormatIds = BF_NULL;
-runtimeSettings.barcodeFormatIds_2 = BF2_POSTALCODE;
-DBR_UpdateRuntimeSettings(barcodeReader, &runtimeSettings, errorBuf, 512); // Update RuntimeSettings with above setting
-DBR_DecodeFile(barcodeReader, "YOUR-IMAGE-FILE-WITH-POSTAL-CODES", ""); // Start decoding
-// Add further process
-```
->
-```cpp
-char errorBuf[512];
-int iRet = -1;
-iRet = dynamsoft::dbr::CBarcodeReader::InitLicense("YOUR-LICENSE-KEY", errorBuf, 512);
-if (iRet != DBR_OK)
-{
- cout << errorBuf << endl;
-}
-CBarcodeReader* reader = new CBarcodeReader();
-PublicRuntimeSettings* runtimeSettings = new PublicRuntimeSettings();
-reader->GetRuntimeSettings(runtimeSettings); //Get the current RuntimeSettings
-runtimeSettings->barcodeFormatIds = BF_NULL;
-runtimeSettings->barcodeFormatIds_2 = BF2_POSTALCODE;
-reader->UpdateRuntimeSettings(runtimeSettings, errorBuf, 512); // Update RuntimeSettings with above setting
-reader->DecodeFile("YOUR-IMAGE-FILE-WITH-POSTAL-CODES", ""); // Start decoding
-// Add further process
-```
->
-```csharp
-string errorMsg;
-EnumErrorCode iRet = BarcodeReader.InitLicense("YOUR-LICENSE-KEY", out errorMsg);
-if (iRet != EnumErrorCode.DBR_SUCCESS)
-{
- Console.WriteLine(errorMsg);
-}
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.GetRuntimeSettings(); //Get the current RuntimeSettings
-settings.BarcodeFormatIds = (int)EnumBarcodeFormat.BF_NULL;
-settings.BarcodeFormatIds_2 = (int)EnumBarcodeFormat_2.BF2_POSTALCODE;
-reader.UpdateRuntimeSettings(settings); // Update RuntimeSettings with above setting
-TextResult[] result = reader.DecodeFile("YOUR-IMAGE-FILE-WITH-POSTAL-CODES", ""); // Start decoding
-// Add further process
-```
->
-```java
-BarcodeReader.initLicense("YOUR-LICENSE-KEY");
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.getRuntimeSettings(); //Get the current RuntimeSettings
-settings.barcodeFormatIds = EnumBarcodeFormat.BF_NULL;
-settings.barcodeFormatIds_2 = EnumBarcodeFormat_2.BF2_POSTALCODE;
-reader.updateRuntimeSettings(settings); // Update RuntimeSettings with above setting
-TextResult[] result = reader.decodeFile("YOUR-IMAGE-FILE-WITH-POSTAL-CODES", ""); // Start decoding
-// Add further process
-```
->
-```java
-BarcodeReader reader = new BarcodeReader();
-PublicRuntimeSettings settings = reader.getRuntimeSettings(); //Get the current RuntimeSettings
-settings.barcodeFormatIds = EnumBarcodeFormat.BF_NULL;
-settings.barcodeFormatIds_2 = EnumBarcodeFormat_2.BF2_POSTALCODE;
-reader.updateRuntimeSettings(settings); // Update RuntimeSettings with above setting
-TextResult[] result = reader.decodeFile("YOUR-IMAGE-FILE-WITH-POSTAL-CODES"); // Start decoding
-// Add further process
-```
->
-```objc
-NSError* err = nil;
-DynamsoftBarcodeReader *reader = [[DynamsoftBarcodeReader alloc] init];
-iPublicRuntimeSettings *settings = [reader getRuntimeSettings:&err]; //Get the current RuntimeSettings
-settings.barcodeFormatIds = EnumBarcodeFormatNULL;
-settings.barcodeFormatIds_2 = EnumBarcodeFormat2POSTALCODE;
-[reader updateRuntimeSettings:settings error:&err]; // Update RuntimeSettings with above setting
-NSArray* result = [reader decodeFileWithName:@"YOUR-IMAGE-FILE-WITH-POSTAL-CODES" error:&err]; // Start decoding
-// Add further process
-```
->
-```swift
-let reader = DynamsoftBarcodeReader()
-let settings = try? reader.getRuntimeSettings() //Get the current RuntimeSettings
-settings?.barcodeFormatIds = EnumBarcodeFormat.NULL
-settings?.barcodeFormatIds_2 = EnumBarcodeFormat2.POSTALCODE
-try? reader.updateRuntimeSettings(settings) // Update RuntimeSettings with above setting
-let result = try? reader.decodeFileWithName("YOUR-IMAGE-FILE-WITH-POSTAL-CODES") // Start decoding
-// Add further process
-```
->
-```python
-error = BarcodeReader.init_license("YOUR-LICENSE-KEY")
-if error[0] != EnumErrorCode.DBR_OK:
- print(error[1])
-dbr = BarcodeReader()
-settings = dbr.get_runtime_settings()
-settings.barcode_format_ids = EnumBarcodeFormat.BF_NULL
-settings.barcode_format_ids_2 = EnumBarcodeFormat_2.BF2_POSTALCODE
-dbr.update_runtime_settings(settings)
-text_results = dbr.decode_file("YOUR-IMAGE-FILE-WITH-POSTAL-CODES")
-# Add further process
-```
diff --git a/release-notes/dbr-rn-10.md b/release-notes/dbr-rn-10.md
deleted file mode 100644
index 0b025568..00000000
--- a/release-notes/dbr-rn-10.md
+++ /dev/null
@@ -1,71 +0,0 @@
----
-layout: default-layout
-title: Release Notes v10.x - Dynamsoft Barcode Reader
-description: This note features the latest updates in Barcode Reader SDK version 10.x. New features were added along with various APIs deprecated, removed, and removed.
-keywords: release notes, dynamsoft barcode reader
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-noTitleIndex: true
----
-
-# Release Notes for Dynamsoft Barcode Reader - 10.x
-
-## 10.4
-
- > First released: 07-23-2024
-
-### Highlights
-
-- Improved the read rate and speed of the following barcode formats:
- - EAN-13
- - DotCode
-- Added support for decoding add-on codes (also known as Extension Codes) for UPC-A, UPC-E, EAN-8 and EAN-13 codes.
-
-
-
-
-
-| Versions | Available Editions |
-| -------- | --------------------------------------------------------------------------------------- |
-| 10.5.3000 | [JavaScript]({{ site.js_release_notes }}js-10.html#1053000-04242025){:target="_blank"} |
-| 10.5.2100 | [Python]({{ site.python_release_notes}}python-10.html#1052100-12052024){:target="_blank"} |
-| 10.4.3100 | [JavaScript]({{ site.js_release_notes }}js-10.html#1043100-01032025){:target="_blank"} |
-| 10.4.3002 | [Android]({{ site.android_release_notes}}android-10.html#1043002-03072025){:target="_blank"} / [iOS]({{ site.oc_release_notes }}ios-10.html#1043002-03072025){:target="_blank"} |
-| 10.4.3001 | [Android]({{ site.android_release_notes}}android-10.html#1043001-02112025){:target="_blank"} / [iOS]({{ site.oc_release_notes }}ios-10.html#1043001-02112025){:target="_blank"} |
-| 10.4.3000 | [Android]({{ site.android_release_notes}}android-10.html#1043000-01232025){:target="_blank"} / [iOS]({{ site.oc_release_notes }}ios-10.html#1043000-01232025){:target="_blank"} |
-| 10.4.2100 | [Python]({{ site.python_release_notes}}python-10.html#1042100-11072024){:target="_blank"} |
-| 10.4.2003 | [Android]({{ site.android_release_notes}}android-10.html#1042003-12262024){:target="_blank"} / [iOS]({{ site.oc_release_notes }}ios-10.html#1042003-12262024){:target="_blank"} |
-| 10.4.2002 | [Android]({{ site.android_release_notes}}android-10.html#1042002-12162024){:target="_blank"} / [iOS]({{ site.oc_release_notes }}ios-10.html#1042002-12162024){:target="_blank"} |
-| 10.4.2001 | [Android]({{ site.android_release_notes}}android-10.html#1042001-11132024){:target="_blank"} / [iOS]({{ site.oc_release_notes }}ios-10.html#1042001-11132024){:target="_blank"} |
-| 10.4.2000 | [JavaScript]({{ site.js_release_notes }}js-10.html#1042000-10102024){:target="_blank"} / [Android]({{ site.android_release_notes }}android-10.html#1042000-10112024){:target="_blank"} / [iOS]({{ site.oc_release_notes }}ios-10.html#1042000-10112024){:target="_blank"} / [Python]({{ site.python_release_notes}}python-10.html#1042000-10102024){:target="_blank"} / [.NET]({{ site.dotnet_release_notes }}dotnet-10.html#1042000-10102024){:target="_blank"} / [C++]({{ site.cpp_release_notes}}cpp-10.html#1042000-10102024){:target="_blank"} |
-| 10.4.10 | [C++]({{ site.cpp_release_notes}}cpp-10.html#10410-07232024){:target="_blank"} |
-
-## 10.2
-
-> First released: 01-16-2024
-
-### Highlights
-
-{%- include release-notes/product-highlight-10.2.0.md -%}
-
-| Versions | Available Editions |
-| -------- | ------------------ |
-| 10.2.12 | [.NET]({{ site.dotnet_release_notes }}dotnet-10.html#10212-06192024){:target="_blank"} |
-| 10.2.11 | [Android]({{ site.android_release_notes}}android-10.html#10211-05152024){:target="_blank"} / [iOS]({{ site.oc_release_notes }}ios-10.html#10211-05152024){:target="_blank"} / [.NET]({{ site.dotnet_release_notes }}dotnet-10.html#10211-06122024){:target="_blank"} |
-| 10.2.10 | [C++]({{ site.cpp_release_notes}}cpp-10.html#10210-03012024){:target="_blank"} / [.NET]({{ site.dotnet_release_notes }}dotnet-10.html#10210-05302024){:target="_blank"} / [JavaScript]({{ site.js_release_notes }}js-10.html#10210-04032024){:target="_blank"} / [Android]({{ site.android_release_notes }}android-10.html#10210-04162024){:target="_blank"} / [iOS]({{ site.oc_release_notes }}ios-10.html#10210-04162024){:target="_blank"} |
-| 10.2.0 | [C++]({{ site.cpp_release_notes}}cpp-10.html#1020-01162024){:target="_blank"} |
-
-## 10.0
-
-> First released: 07-04-2023
-
-### Highlights
-
-{%- include release-notes/product-highlight-10.0.0.md -%}
-
-| Versions | Available Editions |
-| -------- | ------------------ |
-| 10.0.21 | [Android]({{ site.android_release_notes }}android-10.html#10021-12122023){:target="_blank"} / [iOS]({{ site.oc_release_notes }}ios-10.html#10021-12122023){:target="_blank"} / [JavaScript]({{ site.js_release_notes }}js-10.html#10021-02052024){:target="_blank"} |
-| 10.0.20 | [C++]({{ site.cpp_release_notes}}cpp-10.html#10020-10262023){:target="_blank"} / [Android]({{ site.android_release_notes }}android-10.html#10020-10262023){:target="_blank"} / [iOS]({{ site.oc_release_notes }}ios-10.html#10020-10262023){:target="_blank"} / [JavaScript]({{ site.js_release_notes }}js-10.html#10020-01292024){:target="_blank"} |
-| 10.0.10 | [C++]({{ site.cpp_release_notes}}cpp-10.html#10010-08082023){:target="_blank"} |
-| 10.0.0 | [C++]({{ site.cpp_release_notes}}cpp-10.html#1000-07042023){:target="_blank"} |
diff --git a/release-notes/dbr-rn-11.md b/release-notes/dbr-rn-11.md
index 46b8c573..f45b18b1 100644
--- a/release-notes/dbr-rn-11.md
+++ b/release-notes/dbr-rn-11.md
@@ -38,6 +38,6 @@ noTitleIndex: true
| 11.0.6100 | [Java]({{ site.java_release_notes}}java-11.html#1106100-08192025){:target="_blank"} |
| 11.0.6000 | [C++]({{ site.cpp_release_notes}}cpp-11.html#1106000-08062025){:target="_blank"} / [.NET]({{ site.dotnet_release_notes }}dotnet-11.html#1106000-08062025){:target="_blank"} / [Python]({{ site.python_release_notes}}python-11.html#1106000-08062025){:target="_blank"} / [Java]({{ site.java_release_notes}}java-11.html#1106000-08062025){:target="_blank"} |
| 11.0.4000 | [C++]({{ site.cpp_release_notes}}cpp-11.html#1104000-07152025){:target="_blank"} / [.NET]({{ site.dotnet_release_notes }}dotnet-11.html#1104000-07152025){:target="_blank"} / [Python]({{ site.python_release_notes}}python-11.html#1104000-07152025){:target="_blank"} |
-| 11.0.3000 | [JavaScript]({{ site.js_release_notes }}js-11.html#1103000-07092025){:target="_blank"} / [C++]({{ site.cpp_release_notes}}cpp-11.html#1103000-05132025){:target="_blank"} / [.NET]({{ site.dotnet_release_notes }}dotnet-11.html#1103000-05132025){:target="_blank"} / [Python]({{ site.python_release_notes}}python-11.html#1103000-05152025){:target="_blank"} / [Android]({{ site.android_release_notes}}android-11.html#1103000-05152025){:target="_blank"} / [iOS]({{ site.oc_release_notes }}ios-11.html#1103000-05152025){:target="_blank"} |
+| 11.0.3000 | [C++]({{ site.cpp_release_notes}}cpp-11.html#1103000-05132025){:target="_blank"} / [.NET]({{ site.dotnet_release_notes }}dotnet-11.html#1103000-05132025){:target="_blank"} / [Python]({{ site.python_release_notes}}python-11.html#1103000-05152025){:target="_blank"} / [Android]({{ site.android_release_notes}}android-11.html#1103000-05152025){:target="_blank"} / [iOS]({{ site.oc_release_notes }}ios-11.html#1103000-05152025){:target="_blank"} |
| 11.0.2000 | [Python]({{ site.python_release_notes}}python-11.html#1102000-04092025){:target="_blank"} |
| 11.0.1000 | [C++]({{ site.cpp_release_notes}}cpp-11.html#1101000-03042025){:target="_blank"} |
diff --git a/release-notes/dbr-rn-7-.md b/release-notes/dbr-rn-7-.md
deleted file mode 100644
index 9723e574..00000000
--- a/release-notes/dbr-rn-7-.md
+++ /dev/null
@@ -1,564 +0,0 @@
----
-layout: default-layout
-title: Release Notes 1.x ~ 7.x - Dynamsoft Barcode Reader
-description: This is the release notes page of Dynamsoft Barcode Reader 1.x ~ 7.x
-keywords: release notes, dynamsoft barcode reader
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-noTitleIndex: true
----
-
-# Release Notes for Dynamsoft Barcode Reader 1.x ~ 7.x
-
-## 7.x Versions
-
-> First released: 07-11-2019
-
-### 7.6.0
-
-#### NEW
-
-- Added a new member rpmColourArgumentIndex in the struct IntermediateResult. The rpmColourArgumentIndex is the index of ForeAndBackgroundColour argument used for RegionPredetectionMode.
-
-#### IMPROVED
-
-- Improved the decoding speed for when ScanDirectly mode is enabled for localization.
-- Improved the decoding speed by utilizing SIMD (single instruction, multiple data).
-- Improved the deblurring algorithm for linear barcodes.
-
-#### FIXED
-
-- Fixed a bug where the coordinates of barcodes are calculated incorrectly under some situations.
-- Fixed a crash issue which occurs under some situations.
-
-### 7.5.0
-
-#### NEW
-
-- Added support for QR Code Model 1 (an older version of the QR Code specification). It can be enabled by setting FormatSpecification.EnableQRCodeModel1 in the JSON template file.
-- Added a new localization mode LM_CENTRE to localize barcodes from the centre, which can improve the localization speed if the barcode is in the centre of the image. It can be enabled by setting the struct PublicRuntimeSettings -> LocalizationModes -> LM_CENTRE.
-- Added a new binarization mode BM_THRESHOLD to set the BinarizationThreshold value which is used to convert the grayscale image to binary image.
-- Added startPatternRange, middlePatternRange and endPatternRange properties to the struct OneDCodeDetails for UPC_A, UPC_E, EAN_8 and EAN_13 codes.
-- Added the following new arguments for RegionPredetectionMode.RPM_GENERAL_RGB_CONTRAST and RegionPredetectionMode.RPM_GENERAL_GRAY_CONTRAST:
- - RelativeBarcodeRegions: Sets the barcode regions relative to the pre-detected region.
- - ForeAndBackgroundColours: Specifies a set (or multiple sets) of the foreground and background colours used for region pre-detection algorithm.
- - AspectRatioRange: Sets the height range of the bounding rectangle of the pre-detected region.
- - HeightRange: Sets the width range of the bounding rectangle of the pre-detected region.
- - WidthRange: Sets the aspect ratio range of the bounding rectangle of the pre-detected region.
-
-#### IMPROVED
-
-- Optimized the binarization process for 1D barcode zones.
-- Improved the decoding accuracy for 1D barcodes.
-- Improved the decoding speed by 5%-20%.
-- Improved the decoding accuracy for Data Matrix code with broken finder pattern.
-
-#### FIXED
-
-- Fixed a bug where the coordinates of barcodes are calculated incorrectly under some situations.
-
-### 7.4.0.1
-
-[JavaScript]({{ site.js }}release-notes/js-7.html#7401-05182020)
-
-### 7.4.0
-
-#### NEW
-
-- Added new barcode format support for DotCode.
-- Added relative ROI (Region of Interest) detection to optimize the localization results in the high colour contrasted scenarios.
-- Added a new type of output IRT_PREDETECTED_QUADRILATERAL, to identify regions with user-define HSV colour space.
-- Implemented a feature for recognizing distorted DataMatrix barcodes. It can be enabled by turning on the struct PublicRuntimeSettings -> furtherMode -> DeformationResistingModes.
-- Added an optimized decoding method for linear barcodes in vector PDF files. The vector PDF file can be decoded without rasterizing, increase decoding efficiency.
-- Added two Enumerations for FrameDecodingParameters: ClarityCalculationMethod and ClarityFilterMode, to improve input image quality.
-- Added a new image pre-processing mode IPM_MORPHOLOGY for barcodes with wide data bar or data cell gaps.
-
-#### IMPROVED
-
-- Enhanced QR Code deformation, resistance, to improve the success rate of decoding the QR code with square symbol at the center.
-- Optimized the algorithm for decoding large and dense QR and DataMatrix codes.
-- Optimized deblurring algorithm for linear barcodes.
-- Improved a character display issue on some platforms where BarcodeText returns an extra "\uFEFF" if the barcode is encoded in UTF-8 with BOM (Byte Order Mark).
-- Simplified the process to enable DPM, DotCode and Postal Codes. Now the library will automatically turn on the corresponding localization mode while following settings are applied:
- - DPMCRM_GENEARL
- - BF2_DOTCODE
- - BF2_POSTALCODE
-
-#### FIXED
-
-- Fixed a bug where the BinarizationModes settings do not work in the DPM mode.
-- Fixed a bug where the barcode location returns incorrect when the barcode is close to the border of the scanning region.
-- Fixed a bug in the calculation of deblur confidence.
-- Fixed a bug where the ColourConversionModes RGB weights setting does not work when CICM_GENERAL is enabled.
-- Other small fixes and tweaks.
-
-### 7.3.0.4
-
-[JavaScript]({{ site.js }}release-notes/js-7.html#730-v4-7304-04022020)
-
-### 7.3.0.2
-
-[JavaScript]({{ site.js }}release-notes/js-7.html#730-v2-7302-02142020)
-
-### 7.3.0.1
-
-[JavaScript]({{ site.js }}release-notes/js-7.html#730-v1-7301-01202020)
-
-### 7.3.0
-
-#### NEW
-
-- Added a new barcode type Postal codes including USPS Intelligent Mail, Postnet, Planet, Australia Post barcode, RM4SCC.
-- Added a new localization mode LM_STATISTICS_POSTAL_CODE in the struct PublicRuntimeSettings -> LocalizationModes to recognize Postal codes.
-- Added the capability to obtain accompanying texts at the top or bottom of a linear barcode. It can be enabled by turning on the struct PublicRuntimeSettings -> FurtherModes -> AccompanyingTextRecognitionModes.
-- Implemented the feature of recognizing distorted QR barcode. It can be enabled by turning on the struct PublicRuntimeSettings -> FurtherModes -> DeformationResistingModes.
-- Implemented the feature of complementing missing parts of QR Code & DataMatrix barcodes. It can be enabled by turning on the struct PublicRuntimeSettings -> FurtherModes -> BarcodeComplementModes.
-- Added a new setting AutoFilter to set whether to filter frames automatically in the struct FrameDecodingParameters.
-- Added a new setting ScaleUpModes to set the scale-up mode for linear barcodes with small module size. It can be enabled by turning on the struct PublicRuntimeSettings -> ScaleUpModes.
-
-#### IMPROVED
-
-- Improved the decoding accuracy for DataMatrix that has a narrow quiet zone.
-- Improved the decoding accuracy for 1D barcode that has a small module size.
-
-### 7.2.2
-
-#### FIXED
-
-- Fixed a bug where BarcodeBytes was null when DPM mode was enabled.
-
-### 7.2.1
-
-#### NEW
-
-- Added support for GS1-128 barcode.
-- Added a new argument "RecordsetSizeOfLatestImages" for "IntermediateResultSavingMode" to specify how many sets of intermediate results are kept in the library.
-
-#### IMPROVED
-
-- Improved the decoding capability of PDF417 by identifying the start and stop patterns of PDF417.
-- Improved the deblurring performance for wide 1D barcodes, which lowers the possibility of fake results.
-- Improved video decoding by optimizing frame filtering.
-- Optimized the automatic classification for Code 39 and Code 39 Extended.
-- Optimized the implementation of region pre-detection mode "RPM_GENERAL_GRAY_CONTRAST".
-- Enhanced the recognition of barcodes with small module sizes.
-- Changed ExtendedBarcodeFormatIds to BarcodeFormat_2 to support more barcode formats in the future.
-- Improved the setting template inside every sample. For consistency, now every sample uses one of templates of "Best Coverage", "Balance" and "Best Speed".
-
-#### FIXED
-
-- Fixed a bug in the barcode zone type identification during general statistical localization.
-- Fixed minor bugs in result outputs.
-- Fixed a bug where OneDCodeDetails doesn't work.
-
-### 7.2.0
-
-#### NEW
-
-- Added more barcode formats:
- - GS1 Databar (Omnidirectional, Truncated, Stacked, Stacked Omnidirectional, Limited, Expanded, Expanded Stacked)
- - PatchCode
- - Maxicode (mode 2-5)
- - Micro PDF417
- - Micro QR
- - GS1 COMPOSITE (combination of OneD and PDF417/Micro PDF 417)
- - Non-standard Barcode
-- Added the capability of reading DPM code. It can be enabled by turning on the struct PublicRuntimeSettings->furtherMode-> DPMCodeReadingModes and adding LM_STATISTICS_MARKS to the PublicRuntimeSettings->localizationModes.
-- Licensing is required to obtain the intermediate results, except the original image in the intermediate results.
-- Added a parameter, clarity in the struct ExtendedResult, to show the clarity of the decoded-barcode zone.
-- Added a method, DBR_GetModeArgument()/GetModeArgument(), to get the argument value of the mode parameters.
-
-#### IMPROVED
-
-- Improved the decoding speed for PDF417.
-- Improved the capability of decoding QR and Data Matrix with cylinder-like deformation.
-
-#### FIXED
-
-- Fixed minor bugs
-
-### 7.1.0
-
-#### NEW
-
-- Added automatic blurry frame filtering for the video frame decoding, reducing incorrect barcode recognition.
-- Added three arguments for the CICM_GENERAL of ColourConversionModes to set the weights for the color conversion, providing more flexibility to deal with various kinds of backgrounds by using different weights of three colors: red, green and blue.
-- Added a new struct FrameDecodingParameters, added methods DBR_InitFrameDecodingParameters()/InitFrameDecodingParameters(), and DBR_StartFrameDecodingEx()/StartFrameDecodingEx() to start a new thread to decode barcodes.
-
-#### IMPROVED
-
-- The output of intermediate results can be saved either directly to a folder or to memory or both, by introducing a new parameter, intermediateResultSavingMode, to the struct PublicRuntimeSettings.
-
-#### FIXED
-
-- Updated PDF component to v10.3.2.0806
-- Fixed a bug that the deblur function might malfunction in some rare cases.
-- Fixed a bug that the coordinates of barcodes may be calculated incorrectly under some situations.
-- Fixed a bug that the parameter, RequireStartStopChars, might malfunction in some rare cases.
-- Fixed a bug that the angle of barcodes might not be calculated correctly sometimes.
-
-### 7.0.0
-
-#### NEW
-
-- Refactored most modules to provide a flexible barcode reading framework that allows for parameter customization suited for a variety of barcode scenarios.
-- Enabled access to intermediate results (grayscale image, binarized image, text zone, etc) during the decoding process.
-- Added new interfaces to support video decoding, and frame decoding to improve interactive sensitivity.
-- Provided methods to terminate the decoding process at different phases such as during binarization, localization or barcode type identification.
-- Added a new barcode localization method, Scan Directly, to reduce decoding time significantly for high-quality images.
-
-#### IMPROVED
-
-- Enhanced error messages related to the license initiation failure.
-- Improved detailed results for decoded barcodes, including more barcode format specification.
-- Improved results output to enable outputting barcode results in the order of confidence level, barcode position or format.
-
-#### FIXED
-
-- Fixed an issue where the barcode could be calculated incorrectly in some occasions.
-
-
-
-
-
-## 6.x Versions
-
-
-
-> First released: 03-30-2018
-
-### 6.5.3
-
-#### FIXED
-
-- Updated the license verification process for development license and desktop runtime license. The old license verification process may lead to license error on some computers.
-- Small fixes and tweaks.
-
-### 6.5.2
-
-#### IMPROVED
-
-- Optimized barcode reading workflow for QRCode/DataMatrix/Aztec code recognition. A QRCode/DataMatrix/Aztec barcode zone will be submitted to the deblurring process when its decoding results vary with different binarization arguments.
-- Reduced the error rate of 1D barcode recognition. Giving more chances for confirmation of a 1D barcode decoding result whose confidence isn't extreme high.
-- Reduced the possibility of conflicts with neighbour barcodes. This improved the precision of the zone to be deleted when a barcode is recognized successfully.
-
-#### FIXED
-
-- Enhanced the robustness of the image processing algorithm. This resolved segmentation faults when a 0-size image is passed to our SDK or there are a few small-size barcode zones which need to do spatial transformation.
-
-### 6.5.1
-
-#### IMPROVED
-
-- Improved deblur algorithm for OneD, enhancing the recognition rate for blurry/out-of-focus barcodes.
-- Improved the accuracy of border location and symbol segmentation for AZTEC.
-- Optimized line scanning algorithm for OneD, decreasing the computation load for character recognition.
-- DecodeBuffer now supports 48-bit and 64-bit image data.
-
-#### FIXED
-
-- Small fixes and tweaks.
-
-### 6.5.0
-
-#### IMPROVED
-
-- Improved average reading speed by 5-10%.
-- Greatly improved the image-processing performance for blurry PDF417 codes.
-- Improved decoding performance for blurry 1D, QRCode and DataMatrix codes.
-- Decreased error recognition rate for Aztec codes.
-
-#### FIXED
-
-- Small fixes and tweaks.
-
-### 6.4.1
-
-#### IMPROVED
-
-- Improved the decoding performance for Aztec, increasing the recognition rate.
-- Improved the decoding performance for OneD, decreasing the error recognition rate.
-- Added further check points for Timeouts, enhancing the timeout control on large scale images for decoding.
-
-#### FIXED
-
-- Small fixes and tweaks.
-
-### 6.4.0
-
-#### NEW
-
-- Added a BatchDecode tool which helps developers evaluate the recognition performance and speed of the Dynamsoft Barcode Reader SDK.
-- Added a new sample demonstrates how to use Dynamsoft Barcode Reader in multiple threads.
-
-#### IMPROVED
-
-- Improved barcode reading speed by 10%, especially for small-sized images.
-- Reorganized API documentation to help you find content more easily.
-- Simplified Developer's Guide to guide you through creating a HelloWorld project more quickly.
-
-#### FIXED
-
-- Small fixes and tweaks.
-
-### 6.3.0
-
-#### NEW
-
-- Added the support for Aztec codes.
-- New developer's guide (.pdf) to cover common use cases,and re-worked existing PDF content to improve its usability.
-- New API documentation (.chm) to help you find content more easily.
-- Added GetRuntimeSettings and UpdateRuntimeSettings to help you adjust runtime barcode reading settings.
-- Added ResetRuntimeSettings to reset runtime barcode reading settings to default values.
-- Added InitRuntimeSettingsWithString and InitRuntimeSettingsWithFile to initialize barcode reading settings at runtime.
-- Added OutputSettingsToString and OutputSettingsToFile to review runtime barcode reading settings.
-- Added AppendTplStringToRuntimeSettings and AppendTplFileToRuntimeSettings to append a new template string/file to the current runtime settings.
-
-#### IMPROVED
-
-- Improved the logic for ExpectedBarcodesCount. Previously the barcodes it returned may be greater than the given value of ExpectedBarcodesCount. Now as long as the expected barcodes found, it will stop continue searching and decoding barcodes.
-
-#### FIXED
-
-- Small fixes and tweaks.
-
-### 6.2.0
-
-#### IMPROVED
-
-- Decreased misreading rate for 1D barcodes.
-- Enhanced performance for reading multiple barcodes from an image.
-- Greatly improved recognition rate for QR Code and DataMatrix on complicated backgrounds.
-- Greatly improved recognition rate for barcodes on grid background.
-- Optimized localization for PDF417 without enough quiet zone.
-
-#### NEW RESOURCES
-
-- New console samples – Decode Single Barcode, Decode Multi-Barcodes, Read Barcode from Region, Trigger Event after Decoding - are now available in the installer.
-
-#### FIXED
-
-- Small fixes and tweaks.
-
-### 6.1.0
-
-#### NEW
-
-- Added GetTemplateSettings and SetTemplateSettings methods which allow you to review and adjust barcode reading settings at runtime.
-
-#### IMPROVED
-
-- Improved localization algorithm for barcodes rotated in a degree or with poor perspective.
-- Faster read speed for QR, Data Matrix and PDF417 barcodes.
-
-### 6.0.0
-
-#### NEW
-
-- Easy and flexible to create a custom barcode reading template for your specific use case.
-
-#### IMPROVED
-
-- Improved average reading speed by 50% in a four-core CPU environment.
-- Improved the reading accuracy and speed for blurred QRCode and DataMatrix.
-- Improved the speed for reading barcodes directly from a computer/phone screen.
-- Improved reading speed for small barcodes in high-resolution images.
-
-#### FIXED
-
-- Small fixes and tweaks.
-
-
-
-
-
-
-
-## 5.x Versions
-
-
-
-> First released: 03-07-2017
-
-### 5.2.0
-
-#### IMPROVED
-
-- Improved the localization and recognition algorithms for PDF417 barcodes.
-- Optimized the de-blur algorithm for 1D barcodes to improve the recognition accuracy.
-- Optimized the timeout support. Now it is possible to stop barcode recognition by timeout.
-- Increased QR Code and DataMatrix barcode recognition speed for B&W images.
-
-#### FIXED
-
-- Small fixes and tweaks.
-
-### 5.1.0
-
-#### FIXED
-
-- Fixed a bug that caused incorrect result points if de-blur algorithm is used when reading 1D barcodes.
-- Other small fixes and tweaks.
-
-### 5.0.0
-
-#### NEW
-
-- New de-blur algorithm for 1D barcodes to improve the accuracy when scanning linear barcodes from out-of-focus, blurred images.
-- New multi-thread processing to improve the scanning accuracy and speed of 1D and PDF417 barcodes.
-- Added new APIs that enable you to specify page numbers, barcode regions, barcode width, barcode height, barcode module size and barcode angles for barcode detection. These greatly improve the decoding workflow and barcode reading efficiency.
-- Added ImageCaptureDevice API to set the capture device (scanner, camera or fax) being used to scan barcode images. When set, it will use a better and more appropriate image processing technique to the images captured from that device.
-- Added TimeoutPerPage API to set the maximum amount of time for reading barcodes on one page.
-- Added BarcodeColorMode API to set the ink color for barcodes searching.
-- Added BarcodeTextEncoding API to set barcode text encoding mode so that you can display special characters properly.
-- Added ReturnUnrecognizedBarcode API to set whether to return unrecognized barcodes.
-- Added LoadSetting API so that you can now load the settings to be used in recognizing barcodes from a JSON string.
-- Added Angle API to set the angle ranges of barcodes for scanning.
-- Added Angle property to return the rotation angle of a detected barcode.
-
-#### IMPROVED
-
-- Combined C and C++ header files into one to simplify the reference of the header file.
-
-#### FIXED
-
-- Fixed an issue where the DLL crashes when reading DataMatrix in multiple threads.
-- Other small fixes and tweaks.
-
-
-
-
-
-
-
-## 4.x Versions
-
-
-
-> First released: 11-03-2015
-
-### 4.3.0
-
-#### NEW
-
-- New localization algorithm was implemented for 1D barcode scanning to improve barcode reading speed.
-- New multi-thread processing was implemented for 2D barcode reading to improve decoding accuracy.
-
-#### IMPROVED
-
-- Improved recognition for perspective QR Codes.
-- Optimized decoding performance for large size, special angle and multiple 1D barcodes.
-- Improved sample applications to support Visual Studio 2015.
-- Other small fixes and tweaks.
-
-#### NEW RESOURCES
-
-- New samples are now available in the Code Gallery:
-- RESTful Web Service - implements server-side RESTful web service in C# for barcode reading.
-
-### 4.2.0
-
-#### IMPROVED
-
-- Changed 1D barcode decoding module to improve recognition accuracy.
-- Improved ResultPoints Property to adjust the sequence of barcode corner points. Now the top-left corner of the barcode is the starting point (x1, y1). The results are returned in the clockwise direction.
-- Improved ResultPoints Property to adjust the sequence of barcode corner points.
-
-### 4.1.0
-
-#### NEW
-
-- Added new APIs DecodeStream, DecodeStreamRect, DecodeBase64String and DecodeBase64StringRect for C, C++ DLL.
-- Added Error Code -10022: "PDF Rasterizer DLL Missing".
-
-#### IMPROVED
-
-- Improved positioning algorithm to better identify and localize DataMatrix barcodes.
-
-### 4.0.0
-
-#### NEW
-
-- Added support for reading PDF417 and DataMatrix.
-- Added reading barcode from all types of PDF file.
-- A user-friendly demo guide program – "Dynamsoft Barcode Reader SDK" - is now available. You can run it from the shortcut icon on the desktop and have an overall view of all demos & sample code.
-- An out-of-box application - "Process documents with barcode" - is now available. It can rename, split or classify documents via barcodes on images and we provide overall view of all demos & sample code.
-
-
-
-
-
-
-
-## 3.x Versions
-
-
-
-> First released: 08-13-2015
-
-### 3.0.0
-
-#### NEW
-
-- Added 2D Barcode Reader to support reading QR Code.
-- Added new APIs DBR_GetVersion and DBR_GetErrorString for the Windows Edition's C/C++ DLL.
-
-#### IMPROVED
-
-- Improved 1D Barcode Reader to support reading Industrial 2 of 5.
-
-
-
-
-
-
-
-## 2.x Versions
-
-
-
-> First released: 05-12-2015
-
-### 2.1.0
-
-#### NEW
-
-- Reading image format of GIF is supported.
-
-#### IMPROVED
-
-- Improved CODE128 decoding
-- Improved recognition of CODE39, CODE93, etc.
-- Improved the ASP.NET sample's user interface.
-
-### 2.0.0
-
-#### NEW
-
-- Dynamsoft Barcode Reader is now made available as a standalone product, in addition to working as an add-on for Dynamic Web TWAIN and Dynamic .NET TWAIN SDKs.
-- Windows Edition: provides C, C++, ActiveX / COM and .NET APIs
-- Supported barcode types now include:
- Code39, Code128, Code93, Codabar, ITF, EAN13, EAN8, UPCA and UPCE
-- Supported image formats include BMP, JPG, PNG, (single or multi-page) TIFF, Windows DIB and .NET Bitmap
-- Various code samples (in C/C++/C#/Java/VB/VB.NET) are available.
-
-
-
-
-
-
-
-## 1.x Versions
-
-
-
-> First released: 01-20-2015
-
-### 1.0.0
-
-#### NEW
-
-- Dynamsoft's barcode recognition engine has been in existence since April 2012. It works as an add-on to our Dynamic Web TWAIN and Dynamic .NET TWAIN SDKs. In this new release, we are changing the product name to Dynamic Barcode Reader and the version to 1.0.
-- Updates in this version include 1D barcode improvements in accuracy and performance for Code 39 and Code128 recognition. Also, image preprocessing is improved. For Code 128, the recognition ratio and speed have jumped up by as much as 30 percent.
-
-
diff --git a/release-notes/dbr-rn-8.md b/release-notes/dbr-rn-8.md
deleted file mode 100644
index d49de9d9..00000000
--- a/release-notes/dbr-rn-8.md
+++ /dev/null
@@ -1,141 +0,0 @@
----
-layout: default-layout
-title: Release Notes v8.x - Dynamsoft Barcode Reader
-description: Dynamsoft Barcode Reader SDK version 8.x. Have a close look at the recent updates with various bugs fixed and new attributes added.
-keywords: release notes, dynamsoft barcode reader
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-noTitleIndex: true
----
-
-# Release Notes for Dynamsoft Barcode Reader - 8.x
-
-## 8.9
-
-> First released: 12-16-2021
-
-### Highlights
-
-{%- include release-notes/product-highlight-8.9.0.md -%}
-
-| Versions | Available Editions |
-| -------- | ------------------ |
-| 8.9.3 | [Android]({{ site.android }}release-notes/android-8.html#893-03022022) / [iOS]({{ site.oc }}release-notes/ios-8.html#893-03022022) |
-| 8.9.1 | [Android]({{ site.android }}release-notes/android-8.html#891-12282021) / [iOS]({{ site.oc }}release-notes/ios-8.html#891-12282021) |
-| 8.9.0 | [Android]({{ site.android }}release-notes/android-8.html#890-12162021) / [iOS]({{ site.oc }}release-notes/ios-8.html#890-12162021) |
-
-## 8.8
-
-> First released: 10-12-2021
-
-### Highlights
-
-{%- include release-notes/product-highlight-8.8.0.md -%}
-
-| Versions | Available Editions |
-| -------- | ------------------ |
-| 8.8.7 | [JavaScript]({{ site.js }}release-notes/js-8.html#887-01262022) |
-| 8.8.5 | [JavaScript]({{ site.js }}release-notes/js-8.html#885-01262022) |
-| 8.8.3 | [JavaScript]({{ site.js }}release-notes/js-8.html#883-10292021) |
-| 8.8.0 | [JavaScript]({{ site.js }}release-notes/js-8.html#880-10282021) / [C]({{ site.c}}release-notes/c-8.html#880-10122021) / [C++]({{ site.cpp}}release-notes/cpp-8.html#880-10122021) / [DotNet]({{ site.dotnet }}release-notes/dotnet-8.html#880-10122021) / [Python]({{ site.python_release_notes }}python-8.html#880-10222021) / [Java]({{ site.java }}release-notes/java-8.html#880-10122021) / [Android]({{ site.android }}release-notes/android-8.html#880-10192021) / [iOS]({{ site.oc }}release-notes/ios-8.html#880-10192021) |
-
-## 8.6
-
-> First released: 07-15-2021
-
-### Highlights
-
-{%- include release-notes/product-highlight-8.6.0.md -%}
-
-| Versions | Available Editions |
-| -------- | ------------------ |
-| 8.6.3 | [JavaScript]({{ site.js }}release-notes/js-8.html#863-09302021) |
-| 8.6.1 | [JavaScript]({{ site.js }}release-notes/js-8.html#861-09012021) |
-| 8.6.0 | [JavaScript]({{ site.js }}release-notes/js-8.html#860-08312021) / [C]({{ site.c}}release-notes/c-8.html#860-07152021) / [C++]({{ site.cpp}}release-notes/cpp-8.html#860-07152021) / [DotNet]({{ site.dotnet }}release-notes/dotnet-8.html#860-07152021) / [Python]({{ site.python_release_notes }}python-8.html#860-07202021) / [Java]({{ site.java }}release-notes/java-8.html#860-07152021) / [Android]({{ site.android }}release-notes/android-8.html#860-07152021) / [iOS]({{ site.oc }}release-notes/ios-8.html#860-07152021) |
-
-## 8.4
-
-> First released: 06-08-2021
-
-### Highlights
-
-- Added a new method [`GetIdleInstancesCount`]({{site.c_methods}}license.html#dbr_getidleinstancescount) to return the number of available instances when using the 'per concurrent instance' licensing model.
-- Added the [`organizationID`]({{site.structs}}DMLTSConnectionParameters.html#organizationid) property for license authentication.
-- Added new attributes [`isMirrored`]({{site.structs}}TextResult.html#ismirrored) to the `TextResult` class. `IsMirrored` returns whether the barcode is mirrored.
-- Added a new argument, `ThresholdCompensation`, to the `BinarizationModes` mode arguments.
-- Faster recognition speeds when detecting dense QR Codes.
-- Improved the performance of boundary identification for DataMatrix codes.
-- `ThreshValueCoefficient` is now deprecated. It still works in this version but could be removed in the near future. We recommend using ThresholdCompensation instead.
-- Fixed an issue that happens when calling initLicenseFromLTS if [`handShakeCode`]({{site.structs}}DMLTSConnectionParameters.html#handshakecode) is not set.
-
-| Versions | Available Editions |
-| -------- | ------------------ |
-| 8.4.0 | [JavaScript]({{ site.js }}release-notes/js-8.html#840-06292021) / [C]({{ site.c}}release-notes/c-8.html#840-06082021) / [C++]({{ site.cpp}}release-notes/cpp-8.html#840-06082021) / [DotNet]({{ site.dotnet }}release-notes/dotnet-8.html#840-06082021) / [Python]({{ site.python_release_notes }}python-8.html#840-06102021) / [Java]({{ site.java }}release-notes/java-8.html#840-06082021) / [Android]({{ site.android }}release-notes/android-8.html#840-06082021) / [iOS]({{ site.oc }}release-notes/ios-8.html#840-06082021) |
-
-## 8.2
-
-> First released: 03-17-2021
-
-### Highlights
-
-- Added a new mode argument, `FindAccurateBoundary`, to [`RegionPredetectionModes`]({{ site.parameters_reference }}region-predetection-modes.html#regionpredetectionmodes) that determines if the SDK attempts to find an accurate boundary when RegionPredetectionModes is set to `RPM_GENERAL_HSV_CONTRAST`.
-- Improved both the localization and decoding algorithms for Postal Codes.
-- LocalizationMode `LM_STATISTICS_POSTAL_CODE` will not be added automatically when enabling Postal Code in your runtime settings. Instead, users must manually add it to the LocalizationMode array if it is required.
-- Resolved a bug that infrequently causes the application to crash when decoding a MicroPDF417 barcode.
-
-| Versions | Available Editions |
-| -------- | ------------------ |
-| 8.2.5 | [JavaScript]({{ site.js }}release-notes/js-8.html#825-05182021) |
-| 8.2.3 | [JavaScript]({{ site.js }}release-notes/js-8.html#823-04152021) |
-| 8.2.1 | [JavaScript]({{ site.js }}release-notes/js-8.html#821-03292021) / [Android]({{ site.android }}release-notes/android-8.html#821-05272021) / [iOS]({{ site.oc }}release-notes/ios-8.html#821-05272021) |
-| 8.2.0 | [JavaScript]({{ site.js }}release-notes/js-8.html#820-03172021) / [C]({{ site.c}}release-notes/c-8.html#820-03172021) / [C++]({{ site.cpp}}release-notes/cpp-8.html#820-03172021) / [DotNet]({{ site.dotnet }}release-notes/dotnet-8.html#820-03172021) / [Python]({{ site.python_release_notes }}python-8.html#820-03172021) / [Java]({{ site.java }}release-notes/java-8.html#820-03172021) / [Android]({{ site.android }}release-notes/android-8.html#820-03172021) / [iOS]({{ site.oc }}release-notes/ios-8.html#820-03172021) |
-
-## 8.1
-
-> First released: 01-22-2021
-
-### Highlights
-
-- Added support for MSI Code (Modified Plessey).
-- Added a new member `barcodeZoneMinDistanceToImageBorders` in the `PublicRuntimeSettings` struct to set the minimum distance (in pixels) between barcode zone and image borders. Previously, it is only available in the JSON template. It can be now configured by setting the struct `PublicRuntimeSettings` -> `barcodeZoneMinDistanceToImageBorders`.
-- Added exception error message to `TextResult` when license initialization fails or decoding authorization fails.
-- Improved the localization robustness for QR Code.
-- Improved the localization for low-quality 1D barcodes.
-- Improved the deblurring performance and recognition rate for DataMatrix.
-- Improved the recognition rate for Aztec.
-- Fixed a bug where Micro PDF417 may not be localized in multiple-barcode scenarios.
-- Fixed a bug where the `ExpectedBarcodesCount` and `BarcodeFormat` parameters do not work in the `RegionDefinition`.
-
-| Versions | Available Editions |
-| -------- | ------------------ |
-| 8.1.3 | [JavaScript]({{ site.js }}release-notes/js-8.html#813-03042021) |
-| 8.1.2 | [JavaScript]({{ site.js }}release-notes/js-8.html#812-01222021) / [C]({{ site.c}}release-notes/c-8.html#812-01222021) / [C++]({{ site.cpp}}release-notes/cpp-8.html#812-01222021) / [DotNet]({{ site.dotnet }}release-notes/dotnet-8.html#812-01222021) / [Python]({{ site.python_release_notes }}python-8.html#812-01222021) / [Java]({{ site.java }}release-notes/java-8.html#812-01222021) / [Android]({{ site.android }}release-notes/android-8.html#812-01222021) / [iOS]({{ site.oc }}release-notes/ios-8.html#812-01222021) |
-| 8.1.0 | [JavaScript]({{ site.js }}release-notes/js-8.html#810-01192021) / [C]({{ site.c}}release-notes/c-8.html#810-01122021) / [C++]({{ site.cpp}}release-notes/cpp-8.html#810-01122021) / [DotNet]({{ site.dotnet }}release-notes/dotnet-8.html#810-01122021) / [Python]({{ site.python_release_notes }}python-8.html#810-01192021) / [Java]({{ site.java }}release-notes/java-8.html#810-01122021) / [Android]({{ site.android }}release-notes/android-8.html#810-01122021) / [iOS]({{ site.oc }}release-notes/ios-8.html#810-01122021) |
-
-## 8.0
-
-> First released: 11-17-2020
-
-### Highlights
-
-- Implemented the mechanism of loading libraries dynamically at runtime when [Parameter Mode Enumerations]({{ site.enumerations }}parameter-mode-enums.html) are used (except *_AUTO and *_SKIP). Use LibraryFileName and LibraryParameters to configure.
-- (For IntermediateResult Advanced Module) Added support for decoding IntermediateResult. For example, users with a binarized image could use this function to skip some image preprocessing steps.
-- Implemented a new licensing tracking mechanism, License 2.0, which makes it easier for users to track license usage.
-- Added a new format control parameter, BarcodeZoneMinDistanceToImageBorders, to set the minimum distance (in pixels) between the barcode zone and image borders.
-- Added a new format control parameter, MinRatioOfBarcodeZoneWidthToHeight, to set the minimum ratio (width/height) of the barcode zone.
-- Added a new format control parameter, BarcodeZoneBarCountRangeArray, to set the barcode zone's range of bar count for barcode search.
-- Added a new argument, SpatialIndexBlockSize, for RPM_GENERAL_RGB_CONTRAST, RPM_GENERAL_GRAY_CONTRAST and RPM_GENERAL_HSV_CONTRAST.
-- Added a new parameter, DeblurModes, so users can use different deblur algorithms for different scenarios. DeblurModes has the following enum types: DirectBinarization, ThresholdBinarization, GrayEqulization, Smoothing, Morphing, DeepAnalysis and Sharpening.
-- Improved the localization speed for the ScanDirectly mode.
-- Improved the localization accuracy for DataMatrix codes with a narrow quiet zone.
-- Fixed a crash issue that could happen when conflicts occur on Linux.
-- `DeblurLevel` is now deprecated. It still works in this version but could be removed in the near future. We recommend using DeblurModes instead.
-
-| Versions | Available Editions |
-| -------- | ------------------ |
-| 8.0.0.1 | [Python]({{ site.python_release_notes }}python-8.html#8001-01062021) |
-| 8.0.0 | [JavaScript]({{ site.js }}release-notes/js-8.html#800-11252020) / [C]({{ site.c}}release-notes/c-8.html#800-11172020) / [C++]({{ site.cpp}}release-notes/cpp-8.html#800-11172020) / [DotNet]({{ site.dotnet }}release-notes/dotnet-8.html#800-11172020) / [Python]({{ site.python_release_notes }}python-8.html#800-11262020) / [Java]({{ site.java }}release-notes/java-8.html#800-11172020) / [Android]({{ site.android }}release-notes/android-8.html#800-11172020) / [iOS]({{ site.oc }}release-notes/ios-8.html#800-11172020) |
-
-
-
-
diff --git a/release-notes/dbr-rn-9.md b/release-notes/dbr-rn-9.md
deleted file mode 100644
index 9180c38a..00000000
--- a/release-notes/dbr-rn-9.md
+++ /dev/null
@@ -1,79 +0,0 @@
----
-layout: default-layout
-title: Release Notes v9.x - Dynamsoft Barcode Reader
-description: This note features the latest updates in Barcode Reader SDK version 9.x. New features were added along with various APIs deprecated, removed, and removed.
-keywords: release notes, dynamsoft barcode reader
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-noTitleIndex: true
----
-
-# Release Notes for Dynamsoft Barcode Reader - 9.x
-
-## 9.6
-
-> First released: 11-29-2022
-
-### Highlights
-
-{%- include release-notes/product-highlight-9.6.0.md -%}
-
-| Versions | Available Editions |
-| -------- | ------------------ |
-| 9.6.42 | [JavaScript]({{ site.js }}release-notes/js-9.html#9642-04292024){:target="_blank"} |
-| 9.6.40 | [JavaScript]({{ site.js }}release-notes/js-9.html#9640-03182024){:target="_blank"} / [C]({{ site.c_release_notes}}c-9.html#9640-03142024){:target="_blank"} / [C++]({{ site.cpp_release_notes}}cpp-9.html#9640-03142024){:target="_blank"} / [DotNet]({{ site.dotnet_release_notes }}dotnet-9.html#9640-03142024){:target="_blank"} / [Java]({{ site.java_release_notes }}java-9.html#9640-03142024){:target="_blank"} / [Python]({{ site.python_release_notes }}python-9.html#9640-03142024){:target="_blank"} / [Android]({{ site.android_release_notes }}android-9.html#9640-03212024){:target="_blank"} / [iOS]({{ site.oc_release_notes }}ios-9.html#9640-03212024){:target="_blank"} |
-| 9.6.33 | [JavaScript]({{ site.js }}release-notes/js-9.html#9633-02052024) |
-| 9.6.32 | [JavaScript]({{ site.js }}release-notes/js-9.html#9632-12072023) |
-| 9.6.31 | [JavaScript]({{ site.js }}release-notes/js-9.html#9631-10122023) |
-| 9.6.30 | [C]({{ site.c_release_notes}}c-9.html#9630-08292023) / [C++]({{ site.cpp_release_notes}}cpp-9.html#9630-08292023) / [DotNet]({{ site.dotnet_release_notes }}dotnet-9.html#9630-08292023) / [Java]({{ site.java_release_notes }}java-9.html#9630-08292023) / [Python]({{ site.python_release_notes }}python-9.html#9630-08292023) |
-| 9.6.21 | [iOS]({{ site.oc_release_notes }}ios-9.html#9621-03272023) /[JavaScript]({{ site.js }}release-notes/js-9.html#9621-08032023) |
-| 9.6.20 | [JavaScript]({{ site.js }}release-notes/js-9.html#9620-04182023) /[C]({{ site.c_release_notes}}c-9.html#9620-03162023) / [C++]({{ site.cpp_release_notes}}cpp-9.html#9620-03162023) / [DotNet]({{ site.dotnet_release_notes }}dotnet-9.html#9620-03162023) / [Java]({{ site.java_release_notes }}java-9.html#9620-03162023) / [Python]({{ site.python_release_notes }}python-9.html#9620-03162023) / [Android]({{ site.android_release_notes }}android-9.html#9620-03162023) / [iOS]({{ site.oc_release_notes }}ios-9.html#9620-03162023) |
-| 9.6.11 | [JavaScript]({{ site.js }}release-notes/js-9.html#9611-03132023) /[Android]({{ site.android_release_notes }}android-9.html#9611-01162023) |
-| 9.6.10 | [JavaScript]({{ site.js }}release-notes/js-9.html#9610-02212023) /[C]({{ site.c_release_notes}}c-9.html#9610-01102023) / [C++]({{ site.cpp_release_notes}}cpp-9.html#9610-01102023) / [DotNet]({{ site.dotnet_release_notes }}dotnet-9.html#9610-01102023) / [Java]({{ site.java_release_notes }}java-9.html#9610-01102023) / [Python]({{ site.python_release_notes }}python-9.html#9610-01102023) / [Android]({{ site.android_release_notes }}android-9.html#9610-01102023) / [iOS]({{ site.oc_release_notes }}ios-9.html#9610-01102023) |
-| 9.6.2 | [JavaScript]({{ site.js }}release-notes/js-9.html#962-01162023) |
-| 9.6.1 | [JavaScript]({{ site.js }}release-notes/js-9.html#961-12192022) |
-| 9.6.0 | [JavaScript]({{ site.js }}release-notes/js-9.html#960-12132022) / [C]({{ site.c_release_notes}}c-9.html#960-11292022) / [C++]({{ site.cpp_release_notes}}cpp-9.html#960-11292022) / [DotNet]({{ site.dotnet_release_notes }}dotnet-9.html#960-11292022) / [Java]({{ site.java_release_notes }}java-9.html#960-11292022) / [Python]({{ site.python_release_notes }}python-9.html#960-11292022) / [Android]({{ site.android_release_notes }}android-9.html#960-12132022) / [iOS]({{ site.oc_release_notes }}ios-9.html#960-12132022) |
-
-## 9.4
-
-> First released: 08-30-2022
-
-### Highlights
-
-{%- include release-notes/product-highlight-9.4.0.md -%}
-
-| Versions | Available Editions |
-| -------- | ------------------ |
-| 9.4.0 | [C]({{ site.c_release_notes}}c-9.html#940-08302022) / [C++]({{ site.cpp_release_notes}}cpp-9.html#940-08302022) / [DotNet]({{ site.dotnet_release_notes }}dotnet-9.html#940-08302022) / [Java]({{ site.java_release_notes }}java-9.html#940-08302022) / [Python]({{ site.python_release_notes }}python-9.html#940-08302022) / [Android]({{ site.android_release_notes }}android-9.html#940-11042022) / [iOS]({{ site.oc_release_notes }}ios-9.html#940-11042022) |
-
-## 9.2
-
-> First released: 06-07-2022
-
-### Highlights
-
-{%- include release-notes/product-highlight-9.2.0.md -%}
-
-| Versions | Available Editions |
-| -------- | ------------------ |
-| 9.3.1 | [JavaScript]({{ site.js }}release-notes/js-9.html#931-10102022) |
-| 9.3.0 | [JavaScript]({{ site.js }}release-notes/js-9.html#930-09272022) |
-| 9.2.13 | [JavaScript]({{ site.js }}release-notes/js-9.html#9213-08112022) |
-| 9.2.12 | [JavaScript]({{ site.js }}release-notes/js-9.html#9212-08042022) /[iOS]({{ site.oc_release_notes }}ios-9.html#9212-08022022) |
-| 9.2.11 | [JavaScript]({{ site.js }}release-notes/js-9.html#9211-07282022) /[iOS]({{ site.oc_release_notes }}ios-9.html#9211-07112022) |
-| 9.2.10 | [Android]({{ site.android_release_notes }}android-9.html#9210-06282022) / [iOS]({{ site.oc_release_notes }}ios-9.html#9210-06282022) |
-| 9.2.0 | [C]({{ site.c_release_notes}}c-9.html#920-06072022) / [C++]({{ site.cpp_release_notes}}cpp-9.html#920-06072022) / [DotNet]({{ site.dotnet_release_notes }}dotnet-9.html#920-06072022) / [Java]({{ site.java_release_notes }}java-9.html#920-06072022) / [Python]({{ site.python_release_notes }}python-9.html#920-06212022) |
-
-## 9.0
-
-> First released: 03-15-2022
-
-### Highlights
-
-{%- include release-notes/product-highlight-9.0.0.md -%}
-
-| Versions | Available Editions |
-| -------- | ------------------ |
-| 9.0.2 | [JavaScript]({{ site.js }}release-notes/js-9.html#902-05062022) |
-| 9.0.1 | [JavaScript]({{ site.js }}release-notes/js-9.html#901-04252022) / [Android]({{ site.android }}release-notes/android-9.html#901-04202022) / [iOS]({{ site.oc }}release-notes/ios-9.html#901-04202022) |
-| 9.0.0 | [JavaScript]({{ site.js }}release-notes/js-9.html#900-03242022) / [C]({{ site.c}}release-notes/c-9.html#900-03152022) / [C++]({{ site.cpp}}release-notes/cpp-9.html#900-03152022) / [DotNet]({{ site.dotnet }}release-notes/dotnet-9.html#900-03152022) / [Python]({{ site.python_release_notes }}python-9.html#900-03312022) / [Java]({{ site.java }}release-notes/java-9.html#900-03152022) / [Android]({{ site.android }}release-notes/android-9.html#900-03222022) / [iOS]({{ site.oc }}release-notes/ios-9.html#900-03222022) |
diff --git a/release-notes/index.md b/release-notes/index.md
index 6c5bd06e..e4f73206 100644
--- a/release-notes/index.md
+++ b/release-notes/index.md
@@ -9,25 +9,25 @@ permalink: /release-notes/index.html
# Dynamsoft Barcode Reader SDK - Release Notes
-- [Version 11.0 (03-04-2025)](dbr-rn-11.md#110)
-- [Version 10.4 (07-23-2024)](dbr-rn-10.md#104)
-- [Version 10.2 (01-16-2024)](dbr-rn-10.md#102)
-- [Version 10.0 (07-04-2023)](dbr-rn-10.md#100)
-- [Version 9.6 (11-29-2022)](dbr-rn-9.md#96)
-- [Version 9.4 (08-30-2022)](dbr-rn-9.md#94)
-- [Version 9.2 (06-07-2022)](dbr-rn-9.md#92)
-- [Version 9.0 (03-15-2022)](dbr-rn-9.md#90)
-- [Version 8.9 (12-16-2021)](dbr-rn-8.md#89)
-- [Version 8.8 (10-12-2021)](dbr-rn-8.md#88)
-- [Version 8.6 (07-15-2021)](dbr-rn-8.md#86)
-- [Version 8.4 (06-08-2021)](dbr-rn-8.md#84)
-- [Version 8.2 (03-17-2021)](dbr-rn-8.md#82)
-- [Version 8.1 (01-22-2021)](dbr-rn-8.md#81)
-- [Version 8.0 (11-17-2020)](dbr-rn-8.md#80)
-- [Version 7.x (07-11-2019)](dbr-rn-7-.md#7x-versions)
-- [Version 6.x (03-30-2018)](dbr-rn-7-.md#6x-versions)
-- [Version 5.x (03-07-2017)](dbr-rn-7-.md#5x-versions)
-- [Version 4.x (11-03-2015)](dbr-rn-7-.md#4x-versions)
-- [Version 3.x (08-13-2015)](dbr-rn-7-.md#3x-versions)
-- [Version 2.x (05-12-2015)](dbr-rn-7-.md#2x-versions)
-- [Version 1.x (01-20-2015)](dbr-rn-7-.md#1x-versions)
\ No newline at end of file
+- [Version 11.0 (03-04-2025)]({{ site.release_notes }}dbr-rn-11.html#110)
+- [Version 10.4 (07-23-2024)]({{ site.release_notes_v10 }}dbr-rn-10.html#104)
+- [Version 10.2 (01-16-2024)]({{ site.release_notes_v10 }}dbr-rn-10.html#102)
+- [Version 10.0 (07-04-2023)]({{ site.release_notes_v10 }}dbr-rn-10.html#100)
+- [Version 9.6 (11-29-2022)]({{ site.release_notes_v9 }}dbr-rn-9.html#96)
+- [Version 9.4 (08-30-2022)]({{ site.release_notes_v9 }}dbr-rn-9.html#94)
+- [Version 9.2 (06-07-2022)]({{ site.release_notes_v9 }}dbr-rn-9.html#92)
+- [Version 9.0 (03-15-2022)]({{ site.release_notes_v9 }}dbr-rn-9.html#90)
+- [Version 8.9 (12-16-2021)]({{ site.release_notes_v9 }}dbr-rn-8.html#89)
+- [Version 8.8 (10-12-2021)]({{ site.release_notes_v9 }}dbr-rn-8.html#88)
+- [Version 8.6 (07-15-2021)]({{ site.release_notes_v9 }}dbr-rn-8.html#86)
+- [Version 8.4 (06-08-2021)]({{ site.release_notes_v9 }}dbr-rn-8.html#84)
+- [Version 8.2 (03-17-2021)]({{ site.release_notes_v9 }}dbr-rn-8.html#82)
+- [Version 8.1 (01-22-2021)]({{ site.release_notes_v9 }}dbr-rn-8.html#81)
+- [Version 8.0 (11-17-2020)]({{ site.release_notes_v9 }}dbr-rn-8.html#80)
+- [Version 7.x (07-11-2019)]({{ site.release_notes_v9 }}dbr-rn-7-.html#7x-versions)
+- [Version 6.x (03-30-2018)]({{ site.release_notes_v9 }}dbr-rn-7-.html#6x-versions)
+- [Version 5.x (03-07-2017)]({{ site.release_notes_v9 }}dbr-rn-7-.html#5x-versions)
+- [Version 4.x (11-03-2015)]({{ site.release_notes_v9 }}dbr-rn-7-.html#4x-versions)
+- [Version 3.x (08-13-2015)]({{ site.release_notes_v9 }}dbr-rn-7-.html#3x-versions)
+- [Version 2.x (05-12-2015)]({{ site.release_notes_v9 }}dbr-rn-7-.html#2x-versions)
+- [Version 1.x (01-20-2015)]({{ site.release_notes_v9 }}dbr-rn-7-.html#1x-versions)
\ No newline at end of file