diff --git a/_config.yml b/_config.yml
index b1b19f54..62658689 100644
--- a/_config.yml
+++ b/_config.yml
@@ -45,9 +45,11 @@ xamarin-guide: /capture-vision/docs/mobile/programming/xamarin/user-guide/
dcv_android: /capture-vision/docs/mobile/programming/android/
dcv_android_api: /capture-vision/docs/mobile/programming/android/api-reference/
+dcv_android_v2: /capture-vision/docs/v2/mobile/programming/android/
dcv_ios: /capture-vision/docs/mobile/programming/ios/
dcv_ios_api: /capture-vision/docs/mobile/programming/ios/api-reference/
+dcv_ios_v2: /capture-vision/docs/v2/mobile/programming/ios/
ddn_android_api: /document-normalizer/docs/mobile/programming/android/api-reference/
ddn_android: /document-normalizer/docs/mobile/programming/android/
@@ -90,6 +92,7 @@ ddn_maui: /document-normalizer/docs/mobile/programming/maui/
ddn_maui_api: /document-normalizer/docs/mobile/programming/maui/api-reference/
dcv_maui: /capture-vision/docs/mobile/programming/maui/
dcv_maui_api: /capture-vision/docs/mobile/programming/maui/api-reference/
+dcv_maui_v2: /capture-vision/docs/v2/mobile/programming/maui/
dce_maui: /camera-enhancer/docs/mobile/programming/maui/
dce_maui_api: /camera-enhancer/docs/mobile/programming/maui/api-reference/
dcp_maui: /code-parser/docs/mobile/programming/maui/
@@ -108,6 +111,7 @@ dnt_icon: /capture-vision/docs/mobile/assets/img-icon/icon-dnt.svg
download: /capture-vision/downloads/1000024-confirmation/
useVersionTree: true
+useJSVersionV3: true
baseurl: "/capture-vision/docs/mobile/"
plugins:
diff --git a/_data/full_tree.yml b/_data/full_tree.yml
index 9def6a96..bc7926bb 100644
--- a/_data/full_tree.yml
+++ b/_data/full_tree.yml
@@ -1,13 +1,5 @@
tree_file_list:
- sidelist-full-tree.html
- - sidelist-programming/programming-react-native.html
- - sidelist-programming/programming-flutter.html
- - sidelist-programming/programming-xamarin.html
- - sidelist-programming/programming-cordova.html
- sidelist-programming/programming-android.html
- - sidelist-programming/programming-android-v2.2.3000.html
- - sidelist-programming/programming-android-v2.4.2000.html
- sidelist-programming/programming-ios.html
- - sidelist-programming/programming-ios-v2.2.3000.html
- - sidelist-programming/programming-ios-v2.4.2000.html
- sidelist-programming/programming-maui.html
diff --git a/_data/product_version.yml b/_data/product_version.yml
index 0ea19d3d..73aa9a9c 100644
--- a/_data/product_version.yml
+++ b/_data/product_version.yml
@@ -6,17 +6,3 @@ useGroupedVersion: true
version_info_list_mobile:
- value: latest version
- value: 2.x
- child:
- - 2.6.1004_ios
- - 2.6.1003_android
- - 2.6.1003_ios
- - 2.6.1002_android
- - 2.6.1002_ios
- - 2.6.1001_android
- - 2.6.1001_ios
- - 2.6.1000_android
- - 2.6.1000_ios
- - 2.4.2000_android
- - 2.4.2000_ios
- - 2.2.3000_android
- - 2.2.3000_ios
\ No newline at end of file
diff --git a/_includes/sidelist-full-tree.html b/_includes/sidelist-full-tree.html
index eff7689c..7776c7a4 100644
--- a/_includes/sidelist-full-tree.html
+++ b/_includes/sidelist-full-tree.html
@@ -1,19 +1,3 @@
-
- Flutter Edition Introduction
-
-{%- include liquid_searchVersionTreeFile.html ver=include.ver curPath=include.curPath targetRelativePath="sidelist-programming/programming-flutter.html" -%}
-
- React Native Edition Introduction
-
-{%- include liquid_searchVersionTreeFile.html ver=include.ver curPath=include.curPath targetRelativePath="sidelist-programming/programming-react-native.html" -%}
-
- Cordova Edition Introduction
-
-{%- include liquid_searchVersionTreeFile.html ver=include.ver curPath=include.curPath targetRelativePath="sidelist-programming/programming-cordova.html" -%}
-
- Xamarin.Forms Edition Introduction
-
-{%- include liquid_searchVersionTreeFile.html ver=include.ver curPath=include.curPath targetRelativePath="sidelist-programming/programming-xamarin.html" -%}
Android Edition Introduction
diff --git a/_includes/sidelist-programming/programming-android-v2.2.3000.html b/_includes/sidelist-programming/programming-android-v2.2.3000.html
deleted file mode 100644
index 49369fb8..00000000
--- a/_includes/sidelist-programming/programming-android-v2.2.3000.html
+++ /dev/null
@@ -1,569 +0,0 @@
-DEVELOPMENT
-
-User Guide
-
-
-Demo & Samples
-API Reference
-
-
-UNDERSTANDING DCV
-Overview of DCV
-Architecture
-
-
-
-Parameter Organization
-
-
-Parameter Reference
-
-
-USEFUL RESOURCES
-
-FAQs
-
-
-Release Notes
-
-
diff --git a/_includes/sidelist-programming/programming-android-v2.4.2000.html b/_includes/sidelist-programming/programming-android-v2.4.2000.html
deleted file mode 100644
index 0118407d..00000000
--- a/_includes/sidelist-programming/programming-android-v2.4.2000.html
+++ /dev/null
@@ -1,585 +0,0 @@
-DEVELOPMENT
-
-User Guide
-
-
-Demo & Samples
-API Reference
-
-
-UNDERSTANDING DCV
-Overview of DCV
-Architecture
-
-
-
-Parameter Organization
-
-
-Parameter Reference
-
-
-USEFUL RESOURCES
-License Initialization
-
-FAQs
-
-
-Release Notes
-
-
diff --git a/_includes/sidelist-programming/programming-android-v2.6.1003.html b/_includes/sidelist-programming/programming-android-v2.6.1003.html
deleted file mode 100644
index 850a98d0..00000000
--- a/_includes/sidelist-programming/programming-android-v2.6.1003.html
+++ /dev/null
@@ -1,588 +0,0 @@
-DEVELOPMENT
-
-User Guide
-
-
-Demo & Samples
-API Reference
-
-
-UNDERSTANDING DCV
-Overview of DCV
-Architecture
-
-
-
-Parameter Organization
-
-
-Parameter Reference
-
-
-USEFUL RESOURCES
-License Initialization
-
-FAQs
-
-
-Release Notes
-
-
diff --git a/_includes/sidelist-programming/programming-android.html b/_includes/sidelist-programming/programming-android.html
index 7f1a5535..45ff7632 100644
--- a/_includes/sidelist-programming/programming-android.html
+++ b/_includes/sidelist-programming/programming-android.html
@@ -888,6 +888,6 @@
Release Notes
diff --git a/_includes/sidelist-programming/programming-cordova.html b/_includes/sidelist-programming/programming-cordova.html
deleted file mode 100644
index 62db4c7b..00000000
--- a/_includes/sidelist-programming/programming-cordova.html
+++ /dev/null
@@ -1,35 +0,0 @@
-DEVELOPMENT
-
-User Guide
-API references
-
-
-USEFUL RESOURCES
-Release Notes
-
-
diff --git a/_includes/sidelist-programming/programming-flutter.html b/_includes/sidelist-programming/programming-flutter.html
deleted file mode 100644
index e2c32c8e..00000000
--- a/_includes/sidelist-programming/programming-flutter.html
+++ /dev/null
@@ -1,52 +0,0 @@
-DEVELOPMENT
-User Guide
-API references
-
-
-USEFUL RESOURCES
-Release Notes
-
-
diff --git a/_includes/sidelist-programming/programming-ios-v2.2.3000.html b/_includes/sidelist-programming/programming-ios-v2.2.3000.html
deleted file mode 100644
index 9dcc30f1..00000000
--- a/_includes/sidelist-programming/programming-ios-v2.2.3000.html
+++ /dev/null
@@ -1,566 +0,0 @@
-DEVELOPMENT
-
-User Guide
-
-
-Demo & Samples
-API Reference
-
-
-UNDERSTANDING DCV
-Overview of DCV
-Architecture
-
-
-Parameter Organization
-
-
-Parameter Reference
-
-
-USEFUL RESOURCES
-
- FAQs
-
-
-Release Notes
-
-
diff --git a/_includes/sidelist-programming/programming-ios-v2.4.2000.html b/_includes/sidelist-programming/programming-ios-v2.4.2000.html
deleted file mode 100644
index 3f5cc6b9..00000000
--- a/_includes/sidelist-programming/programming-ios-v2.4.2000.html
+++ /dev/null
@@ -1,588 +0,0 @@
-DEVELOPMENT
-
-User Guide
-
-
-Demo & Samples
-API Reference
-
-
-UNDERSTANDING DCV
-Overview of DCV
-Architecture
-
-
-Parameter Organization
-
-
-Parameter Reference
-
-
-USEFUL RESOURCES
-License Initialization
-
- FAQs
-
-
-Release Notes
-
-
diff --git a/_includes/sidelist-programming/programming-ios-v2.6.1004.html b/_includes/sidelist-programming/programming-ios-v2.6.1004.html
deleted file mode 100644
index 0dcc5e9d..00000000
--- a/_includes/sidelist-programming/programming-ios-v2.6.1004.html
+++ /dev/null
@@ -1,590 +0,0 @@
-DEVELOPMENT
-
-User Guide
-
-
-Demo & Samples
-API Reference
-
-
-UNDERSTANDING DCV
-Overview of DCV
-Architecture
-
-
-Parameter Organization
-
-
-Parameter Reference
-
-
-USEFUL RESOURCES
-License Initialization
-
- FAQs
-
-
-Release Notes
-
-
diff --git a/_includes/sidelist-programming/programming-ios.html b/_includes/sidelist-programming/programming-ios.html
index 264553a7..1672a607 100644
--- a/_includes/sidelist-programming/programming-ios.html
+++ b/_includes/sidelist-programming/programming-ios.html
@@ -893,6 +893,6 @@
Release Notes
diff --git a/_includes/sidelist-programming/programming-maui-v2.4.2000.html b/_includes/sidelist-programming/programming-maui-v2.4.2000.html
deleted file mode 100644
index a68f512e..00000000
--- a/_includes/sidelist-programming/programming-maui-v2.4.2000.html
+++ /dev/null
@@ -1,461 +0,0 @@
-DEVELOPMENT
-
-User Guide
-
-
-Demo & Samples
-API Reference
-
-
-
-UNDERSTANDING DCV
-Overview of DCV
-Architecture
-
-
-
-Parameter Organization
-
-
-Parameter Reference
-
-
-USEFUL RESOURCES
-Release Notes
-
-
-DBR - Migrate from Xamarin to MAUI
-DDN - Migrate from Xamarin to MAUI
diff --git a/_includes/sidelist-programming/programming-maui-v2.6.1001.html b/_includes/sidelist-programming/programming-maui-v2.6.1001.html
deleted file mode 100644
index 071c9427..00000000
--- a/_includes/sidelist-programming/programming-maui-v2.6.1001.html
+++ /dev/null
@@ -1,434 +0,0 @@
-DEVELOPMENT
-
-User Guide
-
-
-Demo & Samples
-API Reference
-
-
-
-UNDERSTANDING DCV
-Overview of DCV
-Architecture
-
-
-Parameters
-
-
-USEFUL RESOURCES
-Release Notes
-
-
-DBR - Migrate from Xamarin to MAUI
-DDN - Migrate from Xamarin to MAUI
diff --git a/_includes/sidelist-programming/programming-maui.html b/_includes/sidelist-programming/programming-maui.html
index 52d42536..ad04300c 100644
--- a/_includes/sidelist-programming/programming-maui.html
+++ b/_includes/sidelist-programming/programming-maui.html
@@ -751,7 +751,7 @@
Release Notes
DBR - Migrate from Xamarin to MAUI
diff --git a/_includes/sidelist-programming/programming-react-native.html b/_includes/sidelist-programming/programming-react-native.html
deleted file mode 100644
index cab47f4a..00000000
--- a/_includes/sidelist-programming/programming-react-native.html
+++ /dev/null
@@ -1,40 +0,0 @@
-DEVELOPMENT
-
-User Guide
-
-API references
-
-
-
-USEFUL RESOURCES
-Release Notes
-
-
diff --git a/_includes/sidelist-programming/programming-xamarin.html b/_includes/sidelist-programming/programming-xamarin.html
deleted file mode 100644
index 7c3c7736..00000000
--- a/_includes/sidelist-programming/programming-xamarin.html
+++ /dev/null
@@ -1,55 +0,0 @@
-DEVELOPMENT
-
-User Guide
-API References
-
-
-USEFUL RESOURCES
-Release Notes
-
-
diff --git a/assets/js/dcvMobileVersionSearch.json b/assets/js/dcvMobileVersionSearch.json
deleted file mode 100644
index 81e74cd8..00000000
--- a/assets/js/dcvMobileVersionSearch.json
+++ /dev/null
@@ -1,58 +0,0 @@
-[
- {
- "version": "3.0.3100",
- "matchVersion": {
- "android": "11.0.3100",
- "maui": "11.0.3100"
- }
- },{
- "version": "3.0.3000",
- "matchVersion": {
- "android": "11.0.3000",
- "ios": "11.0.3000"
- }
- },{
- "version": "2.6.1003",
- "matchVersion": {
- "android": "10.4.3001",
- "ios": "10.4.3001",
- "maui": "10.4.3000"
- }
- },{
- "version": "2.6.1002",
- "matchVersion": {
- "android": "10.4.3001",
- "ios": "10.4.3001",
- "maui": "10.4.3000"
- }
- },{
- "version": "2.6.1001",
- "matchVersion": {
- "android": "10.4.3001",
- "ios": "10.4.3001",
- "maui": "10.4.3000"
- }
- },{
- "version": "2.6.1000",
- "matchVersion": {
- "android": "10.4.3000",
- "ios": "10.4.3000",
- "maui": "10.4.3000"
- }
- },{
- "version": "2.4.2000",
- "matchVersion": {
- "android": "10.4.2000",
- "ios": "10.4.2000",
- "maui": "10.4.2000"
- }
- },{
- "version": "2.2.3000",
- "matchVersion": {
- "android": "10.2.1100",
- "ios": "10.2.1100",
- "maui": "10.2.1100"
- }
- }
-]
-
\ No newline at end of file
diff --git a/programming/android/api-reference/capture-vision-router/auxiliary-classes/captured-result-filter-v2.6.1003.md b/programming/android/api-reference/capture-vision-router/auxiliary-classes/captured-result-filter-v2.6.1003.md
deleted file mode 100644
index 14cf58e0..00000000
--- a/programming/android/api-reference/capture-vision-router/auxiliary-classes/captured-result-filter-v2.6.1003.md
+++ /dev/null
@@ -1,106 +0,0 @@
----
-layout: default-layout
-title: CapturedResultFilter - Dynamsoft Core Module Android Edition API Reference
-description: The interface CapturedResultFilter of Dynamsoft Core Module represents a captured result filter, which is responsible for filtering different types of captured results, including original image, decoded barcodes, recognized text lines, detected quads, normalized images, and parsed results.
-keywords: captured result filter, Java, Kotlin
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# CapturedResultFilter
-
-The `CapturedResultFilter` interface represents a captured result filter, which is responsible for filtering different types of captured results, including original image, decoded barcodes, recognized text lines, detected quads, normalized images, and parsed results.
-
-## Definition
-
-*Namespace:* com.dynamsoft.cvr
-
-*Assembly:* DynamsoftCaptureVisionRouter.aar
-
-```java
-interface CapturedResultFilter
-```
-
-## Methods
-
-| Method | Description |
-| ------ | ----------- |
-| [`onOriginalImageResultReceived`](#onoriginalimageresultreceived) | The method for monitoring the output of `OriginalImageResultItem`. |
-| [`onDecodedBarcodesReceived`](#ondecodedbarcodesreceived) | The method for monitoring the output of `DecodedBarcodesResult`. |
-| [`onRecognizedTextLinesReceived`](#onrecognizedtextlinesreceived) | The method for monitoring the output of `RecognizedTextLinesResult`. |
-| [`onDetectedQuadsReceived`](#ondetectedquadsreceived) | The method for monitoring the output of `DetectedQuadsResult`. |
-| [`onNormalizedImagesReceived`](#onnormalizedimagesreceived) | The method for monitoring the output of `NormalizedImagesResult`. |
-| [`onParsedResultsReceived`](#onparsedresultsreceived) | The method for monitoring the output of `ParsedResult`. |
-
-### onOriginalImageResultReceived
-
-The method for monitoring the output of [`OriginalImageResultItem`]({{ site.dcv_android_api }}core/basic-structures/original-image-result-item.html).
-
-```java
-void onOriginalImageResultReceived(OriginalImageResultItem result);
-```
-
-**Parameters**
-
-`[in] result`: A [`OriginalImageResultItem`]({{ site.dcv_android_api }}core/basic-structures/original-image-result-item.html) object as a original image result.
-
-### onDecodedBarcodesReceived
-
-The method for monitoring the output of DecodedBarcodesResult.
-
-```java
-void onDecodedBarcodesReceived(DecodedBarcodesResult result);
-```
-
-**Parameters**
-
-`[in] result`: A `DecodedBarcodesResult` object as a decoded barcode result.
-
-### onRecognizedTextLinesReceived
-
-The method for monitoring the output of RecognizedTextLinesResult.
-
-```java
-void onRecognizedTextLinesReceived(RecognizedTextLinesResult result);
-```
-
-**Parameters**
-
-`[in] result`: A `RecognizedTextLinesResult` object as a recognized text line result.
-
-### onDetectedQuadsReceived
-
-The method for monitoring the output of [`DetectedQuadsResult`]({{site.ddn_android_api}}detected-quads-result.html).
-
-```java
-void onDetectedQuadsReceived(DetectedQuadsResult result);
-```
-
-**Parameters**
-
-`[in] result`: A [`DetectedQuadsResult`]({{site.ddn_android_api}}detected-quads-result.html) object as a detected quad result.
-
-### onNormalizedImagesReceived
-
-The method for monitoring the output of [`NormalizedImagesResult`]({{site.ddn_android_api}}normalized-images-result.html).
-
-```java
-void onNormalizedImagesReceived(NormalizedImagesResult result);
-```
-
-**Parameters**
-
-`[in] result`: A [`NormalizedImagesResult`]({{site.ddn_android_api}}normalized-images-result.html) object as a normalized image result.
-
-### onParsedResultsReceived
-
-The method for monitoring the output of ParsedResult.
-
-```java
-void onParsedResultsReceived(ParsedResult result);
-```
-
-**Parameters**
-
-`[in] result`: A `ParsedResult` object as a parsed result.
diff --git a/programming/android/api-reference/capture-vision-router/auxiliary-classes/captured-result-receiver-v2.6.1003.md b/programming/android/api-reference/capture-vision-router/auxiliary-classes/captured-result-receiver-v2.6.1003.md
deleted file mode 100644
index 76000d9b..00000000
--- a/programming/android/api-reference/capture-vision-router/auxiliary-classes/captured-result-receiver-v2.6.1003.md
+++ /dev/null
@@ -1,119 +0,0 @@
----
-layout: default-layout
-title: CapturedResultReceiver - Dynamsoft Core Module Android Edition API Reference
-description: The interface CapturedResultReceiver of Dynamsoft Core Module Android Edition provides methods for monitoring the output of captured results, including captured result, original image result, decoded barcode result, recognized text line result, detected quad result, normalized image result, and parsed result.
-keywords: captured result, original image result, decoded barcode result, recognized text line result, detected quad result, normalized image result, parsed result, Java, Kotlin
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# CapturedResultReceiver
-
-The `CapturedResultReceiver` interface is designed as a standardized way for retrieving captured results in the Dynamsoft Capture Vision architecture. By implementing the `CapturedResultReceiver`, you will receive the callback of the various types of captured results, such as original image, decoded barcode, recognized text line, detected quad, normalized image, or parsed data. The `CapturedResultReceiver` can add a receiver for any type of captured result or for a specific type of captured result, based on the method that is implemented.
-
-## Definition
-
-*Namespace:* com.dynamsoft.cvr
-
-*Assembly:* DynamsoftCaptureVisionRouter.aar
-
-```java
-interface CapturedResultReceiver
-```
-
-## Methods
-
-| Method | Description |
-| ------ | ----------- |
-| [`onCapturedResultReceived`](#oncapturedresultreceived) | The callback triggered when a generic captured result is available, occurring each time an image finishes its processing. |
-| [`onOriginalImageResultReceived`](#onoriginalimageresultreceived) | The callback triggered when the original image result is available, occurring each time an image finishes its processing. |
-| [`onDecodedBarcodesReceived`](#ondecodedbarcodesreceived) | The callback triggered when decoded barcodes are available, occurring each time an image finishes its processing. |
-| [`onRecognizedTextLinesReceived`](#onrecognizedtextlinesreceived) | The callback triggered when recognized text lines are available, occurring each time an image finishes its processing. |
-| [`onDetectedQuadsReceived`](#ondetectedquadsreceived) | The callback triggered when detected quads are available, occurring each time an image finishes its processing. |
-| [`onNormalizedImagesReceived`](#onnormalizedimagesreceived) | The callback triggered when normalized images are available, occurring each time an image finishes its processing. |
-| [`onParsedResultsReceived`](#onparsedresultsreceived) | The callback triggered when parsed results are available, occurring each time an image finishes its processing. |
-
-### onCapturedResultReceived
-
-The callback method triggered when a generic captured result is available, occurring each time an image finishes its processing. This callback can be used for any result that does not fit into the specific categories of the other callbacks.
-
-```java
-void onCapturedResultReceived(CapturedResult result);
-```
-
-**Parameters**
-
-`[in] result`: The captured result, an instance of [`CapturedResult`](captured-result.md).
-
-### onOriginalImageResultReceived
-
-The callback method triggered when the original image result is available, occurring each time an image finishes its processing. This callback is used to handle the original image that used as the input of this capture process.
-
-```java
-void onOriginalImageResultReceived(OriginalImageResultItem result);
-```
-
-**Parameters**
-
-`[in] result`: The original image result, an instance of [`OriginalImageResultItem`]({{ site.dcv_android_api }}core/basic-structures/original-image-result-item.html).
-
-### onDecodedBarcodesReceived
-
-The callback triggered when decoded barcodes are available, occurring each time an image finishes its processing. This callback is used to handle barcodes that have been successfully decoded by Dynamsoft Barcode Reader
-
-```java
-void onDecodedBarcodesReceived(DecodedBarcodesResult result);
-```
-
-**Parameters**
-
-`[in] result`: The decoded barcode result, an instance of `DecodedBarcodesResult`.
-
-### onRecognizedTextLinesReceived
-
-The callback triggered when recognized text lines are available, occurring each time an image finishes its processing. This callback is used to handle the result of text recognition by Dynamsoft Label Recognizer.
-
-```java
-void onRecognizedTextLinesReceived(RecognizedTextLinesResult result);
-```
-
-**Parameters**
-
-`[in] result`: The recognized text lines result, an instance of [`RecognizedTextLinesResult`]({{site.dlr_android_api}}recognized-text-lines-result.html).
-
-### onDetectedQuadsReceived
-
-The callback triggered when detected quads are available, occurring each time an image finishes its processing. This callback is used to handle the detection of quadrilateral shapes, typically used as document boundaries, by Dynamsoft Document Normalizer.
-
-```java
-void onDetectedQuadsReceived(DetectedQuadsResult result);
-```
-
-**Parameters**
-
-`[in] result`: The detected quads result, an instance of [`DetectedQuadsResult`]({{site.ddn_android_api}}detected-quads-result.html).
-
-### onNormalizedImagesReceived
-
-The callback triggered when normalized images are available, occurring each time an image finishes its processing. This callback is used for handling images that have been processed or normalized (e.g., corrected for skew or perspective), by Dynamsoft Document Normalizer.
-
-```java
-void onNormalizedImagesReceived(NormalizedImagesResult result);
-```
-
-**Parameters**
-
-`[in] result`: The normalized images result, an instance of [`NormalizedImagesResult`]({{site.ddn_android_api}}normalized-images-result.html).
-
-### onParsedResultsReceived
-
-The callback triggered when parsed results are available, occurring each time an image finishes its processing. This callback is used for handling results that have been parsed into a structured format by Dynamsoft Code Parser.
-
-```java
-void onParsedResultsReceived(ParsedResult result);
-```
-
-**Parameters**
-
-`[in] result`: The parsed result, an instance of [`ParsedResult`]({{site.dcp_android_api}}parsed-result.html).
diff --git a/programming/android/api-reference/capture-vision-router/auxiliary-classes/captured-result-v2.6.1003.md b/programming/android/api-reference/capture-vision-router/auxiliary-classes/captured-result-v2.6.1003.md
deleted file mode 100644
index 3c1d5ec5..00000000
--- a/programming/android/api-reference/capture-vision-router/auxiliary-classes/captured-result-v2.6.1003.md
+++ /dev/null
@@ -1,171 +0,0 @@
----
-layout: default-layout
-title: CapturedResult - Dynamsoft Capture Vision Module Android Edition API Reference
-description: The class CapturedResult of Dynamsoft Capture Vision Module represents the result of a capture operation on an image, which contains multiple items such as barcode, text line, detected quad, normalized image, original image, parsed item, etc.
-keywords: captured result, Java, Kotlin
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# CapturedResult
-
-The `CapturedResult` class represents the result of a capture operation on an image. Internally, `CapturedResult` stores an array that contains multiple items, each of which may be a barcode, text line, detected quad, normalized image, original image, parsed item, etc.
-
-> You might also looking for:
->
-> - [DecodedBarcodesResult]({{ site.dbr_android_api }}decoded-barcodes-result.html)
-> - [RecognizedTextLinesResult]({{ site.dlr_android_api }}recognized-text-lines-result.html)
-> - [DetectedQuadsResult]({{ site.ddn_android_api }}detected-quads-result.html)
-> - [NormalizedImagesResult]({{ site.ddn_android_api }}normalized-images-result.html)
-> - [ParsedResults]({{ site.dcp_android_api }}parsed-result.html)
-
-## Definition
-
-*Namespace:* com.dynamsoft.cvr
-
-*Assembly:* DynamsoftCaptureVisionRouter.aar
-
-```java
-class CapturedResult
-```
-
-## Attributes
-
-| Method | Description |
-| ------ | ----------- |
-| [`getOriginalImageHashId`](#getoriginalimagehashid) | Get the hash id of the original image. You can use this ID to get the original image via `IntermediateResultManager` class. |
-| [`getOriginalImageTag`](#getoriginalimagetag) | The [ImageTag]({{ site.dcv_android_api }}core/basic-structures/image-tag.html) associated with the original image. |
-| [`getItems`](#getitems) | Get an array of `CapturedResultItems`, which are the basic unit of the captured results. A `CapturedResultItem` can be a original image, a decoded barcode, a recognized text, a detected quad, a normalized image or a parsed result. View CapturedResultItemType for all available types. |
-| [`getrotationTransformMatrix`](#getrotationtransformmatrix) | Get the rotation transformation matrix of the original image relative to the rotated image. |
-| [`getErrorCode`](#geterrorcode) | Get the error code associated with the capture result. |
-| [`getErrorMessage`](#geterrormessage) | Get the error message associated with the capture result. |
-| [`getDecodedBarcodesResult`](#getdecodedbarcodesresult) | Get a [`DecodedBarcodesResult`]({{ site.dbr_android_api }}decoded-barcodes-result.html) object that contains all the [`BarcodeResultItems`]({{ site.dbr_android_api }}barcode-result-item.html) in the `CapturedResult`. |
-| [`getRecognizedTextLinesResult`](#getrecognizedtextlinesresult) | Get a [`RecognizedTextLinesResult`]({{ site.dlr_android_api }}recognized-text-lines-result.html) object that contains all the [`TextLineResultItems`]({{ site.dlr_android_api }}text-line-result-item.html) in the `CapturedResult`. |
-| [`getDetectedQuadsResult`](#getdetectedquadsresult) | Get a [`DetectedQuadsResult`]({{ site.ddn_android_api }}detected-quads-result.html) object that contains all the [`DetectedQuadResultItem`]({{ site.ddn_android_api }}detected-quad-result-item.html) in the `CapturedResult`. |
-| [`getNormalizedImagesResult`](#getnormalizedimagesresult) | Get a [`NormalizedImagesResult`]({{ site.ddn_android_api }}normalized-images-result.html) object that contains all the [`NormalizedImageResultItem`]({{ site.ddn_android_api }}normalized-image-result-item.html) in the `CapturedResult`. |
-| [`getParsedResult`](#getparsedresult) | Get the parsed result. |
-
-### getOriginalImageHashId
-
-Get the hash ID of the original image which can be used to get the original image via the [IntermediateResultManager]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/intermediate-result-manager.html) class.
-
-```java
-String getOriginalImageHashId();
-```
-
-**Return Value**
-
-The hash id of the original image.
-
-### getOriginalImageTag
-
-Get the [ImageTag]({{ site.dcv_android_api }}core/basic-structures/image-tag.html) of the original image that records information such as the image ID of the original image.
-
-```java
-ImageTag getOriginalImageTag();
-```
-
-**Return Value**
-
-The tag of the original image that records the information of the original image.
-
-### getItems
-
-Get an array of [`CapturedResultItem`]({{ site.dcv_android_api }}core/basic-structures/captured-result-item.html), which is the basic unit of the captured results. A [`CapturedResultItem`]({{ site.dcv_android_api }}core/basic-structures/captured-result-item.html) can be a original image, a decoded barcode, a recognized text, a detected quad, a normalized image, or a parsed result. View [`CapturedResultItemType`]({{ site.dcv_enumerations }}core/captured-result-item-type.html) for all available types.
-
-```java
-CapturedResultItem[] getItems();
-```
-
-**Return Value**
-
-An array containing the [`CapturedResultItem`]({{ site.dcv_android_api }}core/basic-structures/captured-result-item.html) objects within the captured result.
-
-### getRotationTransformMatrix
-
-Get the rotation transformation matrix of the original image relative to the rotated image.
-
-```java
-Matrix getRotationTransformMatrix();
-```
-
-**Return Value**
-
-Return the rotation transformation matrix of the original image relative to the rotated image.
-
-### getErrorCode
-
-Get the error code if an error occurs when processing the image.
-
-```java
-int getErrorCode();
-```
-
-### getErrorMessage
-
-Get the error message if an error occurs when processing the image.
-
-```java
-String getErrorMessage();
-```
-
-### getDecodedBarcodesResult
-
-Get all the barcode decoding results of the `CapturedResult`.
-
-```java
-DecodedBarcodesResult getDecodedBarcodesResult();
-```
-
-**Return Value**
-
-A [`DecodedBarcodesResult`]({{ site.dbr_android_api }}decoded-barcodes-result.html) that contains all the [`BarcodeResultItems`]({{ site.dbr_android_api }}barcode-result-item.html) of the `CapturedResult`.
-
-### getRecognizedTextLinesResult
-
-Get all the text line recognition results of the `CapturedResult`.
-
-```java
-RecognizedTextLinesResult getRecognizedTextLinesResult();
-```
-
-**Return Value**
-
-A [`RecognizedTextLinesResult`]({{ site.dlr_android_api }}recognized-text-lines-result.html) that contains all the [`TextLineResultItems`]({{ site.dlr_android_api }}text-line-result-item.html) of the `CapturedResult`.
-
-### getDetectedQuadsResult
-
-Get all the quad detection results of the `CapturedResult`.
-
-```java
-DetectedQuadsResult getDetectedQuadsResult();
-```
-
-**Return Value**
-
-A [`DetectedQuadsResult`]({{ site.ddn_android_api }}detected-quads-result.html) that contains all the [`DetectedQuadResultItems`]({{ site.ddn_android_api }}detected-quad-result-item.html) of the `CapturedResult`.
-
-### getNormalizedImagesResult
-
-Get all the image normalization results of the `CapturedResult`.
-
-```java
-NormalizedImagesResult getNormalizedImagesResult();
-```
-
-**Return Value**
-
-A [`NormalizedImagesResult`]({{ site.ddn_android_api }}normalized-images-result.html) that contains all the [`NormalizedImageResultItems`]({{ site.ddn_android_api }}normalized-image-result-item.html) of the `CapturedResult`.
-
-### getParsedResult
-
-Get all the parsed results of the `CapturedResult`.
-
-```java
-ParsedResult getParsedResult();
-```
-
-**Return Value**
-
-A [`ParsedResult`]({{ site.dcp_android_api }}parsed-result.html) that contains all the [`ParsedResultItems`]({{ site.dcp_android_api }}parsed-result-item.html) of the `CapturedResult`.
diff --git a/programming/android/api-reference/capture-vision-router/auxiliary-classes/intermediate-result-receiver-v2.2.3000.md b/programming/android/api-reference/capture-vision-router/auxiliary-classes/intermediate-result-receiver-v2.2.3000.md
deleted file mode 100644
index e53ef07d..00000000
--- a/programming/android/api-reference/capture-vision-router/auxiliary-classes/intermediate-result-receiver-v2.2.3000.md
+++ /dev/null
@@ -1,476 +0,0 @@
----
-layout: default-layout
-title: IntermediateResultReceiver - Dynamsoft Core Module Android Edition API Reference
-description: The interface IntermediateResultReceiver includes methods for monitoring the output of intermediate results.
-keywords: interface, Java, Kotlin
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# IntermediateResultReceiver
-
-The `IntermediateResultReceiver` class is designed as a standardized way for retrieving intermediate results in image processing workflows in the Dynamsoft Capture Vision architecture. By implementing the `CapturedResultReceiver`, you will receive the callback of the various types of captured results, such as pre-detected regions, localized barcodes, etc. Each callback is optional, allowing flexibility and customization based on the needs of the application.
-
-## Definition
-
-*Namespace:* com.dynamsoft.cvr
-
-*Assembly:* DynamsoftCaptureVisionRouter.aar
-
-```java
-interface IntermediateResultReceiver
-```
-
-## Methods
-
-| Method | Description |
-| ------ | ----------- |
-| [`getObservationParameters`](#getobservationparameters) | Gets the observed parameters of the intermediate result receiver. |
-| [`onTaskResultsReceived`](#ontaskresultsreceived) | The callback triggered when task results are received. |
-| [`onPredetectedRegionsReceived`](#onpredetectedregionsreceived) | The callback triggered when pre-detected regions are received. |
-| [`onLocalizedBarcodesReceived`](#onlocalizedbarcodesreceived) | The callback triggered when localized barcodes are received. |
-| [`onDecodedBarcodesReceived`](#ondecodedbarcodesreceived) | The callback triggered when decoded barcodes are received. |
-| [`onLocalizedTextLinesReceived`](#onlocalizedtextlinesreceived) | The callback triggered when localized text lines are received. |
-| [`onRecognizedTextLinesReceived`](#onrecognizedtextlinesreceived) | The callback triggered when recognized text lines are received. |
-| [`onDetectedQuadsReceived`](#ondetectedquadsreceived) | The callback triggered when detected quads are received. |
-| [`onNormalizedImagesReceived`](#onnormalizedimagesreceived) | The callback triggered when normalized images are received. |
-| [`onColourImageUnitReceived`](#oncolourimageunitreceived) | The callback triggered when a colour image unit is received. |
-| [`onScaledDownColourImageUnitReceived`](#onscaleddowncolourimageunitreceived) | The callback triggered when a scaled-down colour image unit is received. |
-| [`onGrayscaleImageUnitReceived`](#ongrayscaleimageunitreceived) | The callback triggered when a grayscale image unit is received. |
-| [`onTransformedGrayscaleImageUnitReceived`](#ontransformedgrayscaleimageunitreceived) | The callback triggered when a transformed grayscale image unit is received. |
-| [`onEnhancedGrayscaleImageUnitReceived`](#onenhancedgrayscaleimageunitreceived) | The callback triggered when an enhanced grayscale image unit is received. |
-| [`onBinaryImageUnitReceived`](#onbinaryimageunitreceived) | The callback triggered when a binary image unit is received. |
-| [`onTextureDetectionResultUnitReceived`](#ontexturedetectionresultunitreceived) | The callback triggered when a texture detection result unit is received. |
-| [`onTextureRemovedGrayscaleImageUnitReceived`](#ontextureremovedgrayscaleimageunitreceived) | The callback triggered when a texture-removed grayscale image unit is received. |
-| [`onTextureRemovedBinaryImageUnitReceived`](#ontextureremovedbinaryimageunitreceived) | The callback triggered when a texture-removed binary image unit is received. |
-| [`onContoursUnitReceived`](#oncontoursunitreceived) | The callback triggered when a contours unit is received. |
-| [`onLineSegmentsUnitReceived`](#onlinesegmentsunitreceived) | The callback triggered when a line segments unit is received. |
-| [`onTextZonesUnitReceived`](#ontextzonesunitreceived) | The callback triggered when a text zones unit is received. |
-| [`onTextRemovedBinaryImageUnitReceived`](#ontextremovedbinaryimageunitreceived) | The callback triggered when a text-removed binary image unit is received. |
-| [`onShortLinesUnitReceived`](#onshortlinesunitreceived) | The callback triggered when a short lines unit is received. |
-| [`onLongLinesUnitReceived`](#onlonglinesunitreceived) | The callback triggered when a long lines unit is received. |
-| [`onCornersUnitReceived`](#oncornersunitreceived) | The callback triggered when a corners unit is received. |
-| [`onCandidateQuadEdgesUnitReceived`](#oncandidatequadedgesunitreceived) | The callback triggered when a candidate quad edges unit are detected. |
-| [`onCandidateBarcodeZonesUnitReceived`](#oncandidatebarcodezonesunitreceived) | The callback triggered when a candidate barcode zones unit are detected. |
-| [`onScaledUpBarcodeImageUnitReceived`](#onscaledupbarcodeimageunitreceived) | The callback triggered when a scaled-up barcode image unit is received. |
-| [`onDeformationResistedBarcodeImageUnitReceived`](#ondeformationresistedbarcodeimageunitreceived) | The callback triggered when a deformation-resisted barcode image unit is received. |
-| [`onComplementedBarcodeImageUnitReceived`](#oncomplementedbarcodeimageunitreceived) | The callback triggered when a complemented barcode image unit is received. |
-
-### getObservationParameters
-
-Gets the observed parameters of the intermediate result receiver.
-
-```java
-ObservationParameters getObservationParameters();
-```
-
-**Return Value**
-
-An `ObservationParameters` object.
-
-### onTaskResultsReceived
-
-The callback triggered when task results are received.
-
-```java
-void onTaskResultsReceived(@NonNull IntermediateResult result, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result from the task, of type `IntermediateResult`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onPredetectedRegionsReceived
-
-The callback triggered when pre-detected regions are received.
-
-```java
-void onPredetectedRegionsReceived(@NonNull PredetectedRegionsUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the pre-detected regions, of type `PredetectedRegionsUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onLocalizedBarcodesReceived
-
-The callback triggered when localized barcodes are received.
-
-```java
-void onLocalizedBarcodesReceived(@NonNull LocalizedBarcodesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the localized barcodes, of type `LocalizedBarcodesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onDecodedBarcodesReceived
-
-The callback triggered when decoded barcodes are received.
-
-```java
-void onDecodedBarcodesReceived(@NonNull DecodedBarcodesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the decoded barcodes, of type `DecodedBarcodesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onLocalizedTextLinesReceived
-
-The callback triggered when localized text lines are received.
-
-```java
-void onLocalizedTextLinesReceived(@NonNull LocalizedTextLinesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the localized text lines, of type `LocalizedTextLinesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onRecognizedTextLinesReceived
-
-The callback triggered when recognized text lines are received.
-
-```java
-void onRecognizedTextLinesReceived(@NonNull RecognizedTextLinesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the recognized text lines, of type `RecognizedTextLinesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onDetectedQuadsReceived
-
-The callback triggered when detected quads are received.
-
-```java
-void onDetectedQuadsReceived(@NonNull DetectedQuadsUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the detected quads, of type `DetectedQuadsUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onNormalizedImagesReceived
-
-The callback triggered when normalized images are received.
-
-```java
-void onNormalizedImagesReceived(@NonNull NormalizedImagesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the normalized images, of type `NormalizedImagesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onColourImageUnitReceived
-
-The callback triggered when colour images are received.
-
-```java
-void onColourImageUnitReceived(@NonNull ColourImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the colour image, of type `ColourImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onScaledDownColourImageUnitReceived
-
-The callback triggered when scaled-down colour images are received.
-
-```java
-void onScaledDownColourImageUnitReceived(@NonNull ScaledDownColourImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the scaled-down colour image, of type `ScaledDownColourImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onGrayscaleImageUnitReceived
-
-The callback triggered when grayscale images are received.
-
-```java
-void onGrayscaleImageUnitReceived(@NonNull GrayscaleImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the grayscale image, of type `GrayscaleImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTransformedGrayscaleImageUnitReceived
-
-The callback triggered when transformed grayscale images are received.
-
-```java
-void onTransformedGrayscaleImageUnitReceived(@NonNull TransformedGrayscaleImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the transformed grayscale image, of type `TransformedGrayscaleImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onEnhancedGrayscaleImageUnitReceived
-
-The callback triggered when enhanced grayscale images are received.
-
-```java
-void onEnhancedGrayscaleImageUnitReceived(@NonNull EnhancedGrayscaleImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the enhanced grayscale image, of type `EnhancedGrayscaleImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onBinaryImageUnitReceived
-
-The callback triggered when binary images are received.
-
-```java
-void onBinaryImageUnitReceived(@NonNull BinaryImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the binary image, of type `BinaryImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTextureDetectionResultUnitReceived
-
-The callback triggered when texture detection results are received.
-
-```java
-void onTextureDetectionResultUnitReceived(@NonNull TextureDetectionResultUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the texture detection result, of type `TextureDetectionResultUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTextureRemovedGrayscaleImageUnitReceived
-
-The callback triggered when texture removed grayscale images are received.
-
-```java
-void onTextureRemovedGrayscaleImageUnitReceived(@NonNull TextureRemovedGrayscaleImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the texture removed grayscale image, of type `TextureRemovedGrayscaleImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTextureRemovedBinaryImageUnitReceived
-
-The callback triggered when texture removed binary images are received.
-
-```java
-void onTextureRemovedBinaryImageUnitReceived(@NonNull TextureRemovedBinaryImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the texture removed binary image, of type `TextureRemovedBinaryImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onContoursUnitReceived
-
-The callback triggered when contours are received.
-
-```java
-void onContoursUnitReceived(@NonNull ContoursUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the contours, of type `ContoursUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onLineSegmentsUnitReceived
-
-The callback triggered when line segments are received.
-
-```java
-void onLineSegmentsUnitReceived(@NonNull LineSegmentsUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the line segments, of type `LineSegmentsUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTextZonesUnitReceived
-
-The callback triggered when text zones are received.
-
-```java
-void onTextZonesUnitReceived(@NonNull TextZonesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the text zones, of type `TextZonesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTextRemovedBinaryImageUnitReceived
-
-The callback triggered when text removed binary images are received.
-
-```java
-void onTextRemovedBinaryImageUnitReceived(@NonNull TextRemovedBinaryImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the text removed binary image, of type `TextRemovedBinaryImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onShortLinesUnitReceived
-
-The callback triggered when short lines are received.
-
-```java
-void onShortLinesUnitReceived(@NonNull ShortLinesUnit unit IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the short lines, of type `ShortLinesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onLongLinesUnitReceived
-
-The callback triggered when long lines are received.
-
-```java
-void onLongLinesUnitReceived(@NonNull LongLinesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the long lines, of type `LongLinesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onCornersUnitReceived
-
-The callback triggered when corners are received.
-
-```java
-void onCornersUnitReceived(@NonNull CornersUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the corners, of type `CornersUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onCandidateQuadEdgesUnitReceived
-
-The callback triggered when candidate quad edges are received.
-
-```java
-void onCandidateQuadEdgesUnitReceived(@NonNull CandidateQuadEdgesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the candidate quad edges, of type `CandidateQuadEdgesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onCandidateBarcodeZonesUnitReceived
-
-The callback triggered when candidate barcode zones are received.
-
-```java
-void onCandidateBarcodeZonesUnitReceived(@NonNull CandidateBarcodeZonesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the candidate barcode zones, of type `CandidateBarcodeZonesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onScaledUpBarcodeImageUnitReceived
-
-The callback triggered when scaled up barcode images are received.
-
-```java
-void onScaledUpBarcodeImageUnitReceived(@NonNull ScaledUpBarcodeImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the scaled up barcode image, of type `ScaledUpBarcodeImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onDeformationResistedBarcodeImageUnitReceived
-
-The callback triggered when deformation resisted barcode images are received.
-
-```java
-void onDeformationResistedBarcodeImageUnitReceived(@NonNull DeformationResistedBarcodeImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the deformation resisted barcode image, of type `DeformationResistedBarcodeImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onComplementedBarcodeImageUnitReceived
-
-The callback triggered when complemented barcode images are received.
-
-```java
-void onComplementedBarcodeImageUnitReceived(@NonNull ComplementedBarcodeImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the complemented barcode image, of type `ComplementedBarcodeImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
diff --git a/programming/android/api-reference/capture-vision-router/auxiliary-classes/intermediate-result-receiver-v2.4.2000.md b/programming/android/api-reference/capture-vision-router/auxiliary-classes/intermediate-result-receiver-v2.4.2000.md
deleted file mode 100644
index 3a1c2f58..00000000
--- a/programming/android/api-reference/capture-vision-router/auxiliary-classes/intermediate-result-receiver-v2.4.2000.md
+++ /dev/null
@@ -1,491 +0,0 @@
----
-layout: default-layout
-title: IntermediateResultReceiver - Dynamsoft Core Module Android Edition API Reference
-description: The interface IntermediateResultReceiver includes methods for monitoring the output of intermediate results.
-keywords: interface, Java, Kotlin
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# IntermediateResultReceiver
-
-The `IntermediateResultReceiver` class is designed as a standardized way for retrieving intermediate results in image processing workflows in the Dynamsoft Capture Vision architecture. By implementing the `CapturedResultReceiver`, you will receive the callback of the various types of captured results, such as pre-detected regions, localized barcodes, etc. Each callback is optional, allowing flexibility and customization based on the needs of the application.
-
-## Definition
-
-*Namespace:* com.dynamsoft.cvr
-
-*Assembly:* DynamsoftCaptureVisionRouter.aar
-
-```java
-interface IntermediateResultReceiver
-```
-
-## Methods
-
-| Method | Description |
-| ------ | ----------- |
-| [`getObservationParameters`](#getobservationparameters) | Gets the observed parameters of the intermediate result receiver. |
-| [`onTaskResultsReceived`](#ontaskresultsreceived) | The callback triggered when task results are received. |
-| [`onPredetectedRegionsReceived`](#onpredetectedregionsreceived) | The callback triggered when pre-detected regions are received. |
-| [`onLocalizedBarcodesReceived`](#onlocalizedbarcodesreceived) | The callback triggered when localized barcodes are received. |
-| [`onDecodedBarcodesReceived`](#ondecodedbarcodesreceived) | The callback triggered when decoded barcodes are received. |
-| [`onLocalizedTextLinesReceived`](#onlocalizedtextlinesreceived) | The callback triggered when localized text lines are received. |
-| [`onRecognizedTextLinesReceived`](#onrecognizedtextlinesreceived) | The callback triggered when recognized text lines are received. |
-| [`onDetectedQuadsReceived`](#ondetectedquadsreceived) | The callback triggered when detected quads are received. |
-| [`onNormalizedImagesReceived`](#onnormalizedimagesreceived) | The callback triggered when normalized images are received. |
-| [`onColourImageUnitReceived`](#oncolourimageunitreceived) | The callback triggered when a colour image unit is received. |
-| [`onScaledDownColourImageUnitReceived`](#onscaleddowncolourimageunitreceived) | The callback triggered when a scaled-down colour image unit is received. |
-| [`onGrayscaleImageUnitReceived`](#ongrayscaleimageunitreceived) | The callback triggered when a grayscale image unit is received. |
-| [`onTransformedGrayscaleImageUnitReceived`](#ontransformedgrayscaleimageunitreceived) | The callback triggered when a transformed grayscale image unit is received. |
-| [`onEnhancedGrayscaleImageUnitReceived`](#onenhancedgrayscaleimageunitreceived) | The callback triggered when an enhanced grayscale image unit is received. |
-| [`onBinaryImageUnitReceived`](#onbinaryimageunitreceived) | The callback triggered when a binary image unit is received. |
-| [`onTextureDetectionResultUnitReceived`](#ontexturedetectionresultunitreceived) | The callback triggered when a texture detection result unit is received. |
-| [`onTextureRemovedGrayscaleImageUnitReceived`](#ontextureremovedgrayscaleimageunitreceived) | The callback triggered when a texture-removed grayscale image unit is received. |
-| [`onTextureRemovedBinaryImageUnitReceived`](#ontextureremovedbinaryimageunitreceived) | The callback triggered when a texture-removed binary image unit is received. |
-| [`onContoursUnitReceived`](#oncontoursunitreceived) | The callback triggered when a contours unit is received. |
-| [`onLineSegmentsUnitReceived`](#onlinesegmentsunitreceived) | The callback triggered when a line segments unit is received. |
-| [`onTextZonesUnitReceived`](#ontextzonesunitreceived) | The callback triggered when a text zones unit is received. |
-| [`onTextRemovedBinaryImageUnitReceived`](#ontextremovedbinaryimageunitreceived) | The callback triggered when a text-removed binary image unit is received. |
-| [`onShortLinesUnitReceived`](#onshortlinesunitreceived) | The callback triggered when a short lines unit is received. |
-| [`onLongLinesUnitReceived`](#onlonglinesunitreceived) | The callback triggered when a long lines unit is received. |
-| [`onCornersUnitReceived`](#oncornersunitreceived) | The callback triggered when a corners unit is received. |
-| [`onCandidateQuadEdgesUnitReceived`](#oncandidatequadedgesunitreceived) | The callback triggered when a candidate quad edges unit are detected. |
-| [`onCandidateBarcodeZonesUnitReceived`](#oncandidatebarcodezonesunitreceived) | The callback triggered when a candidate barcode zones unit are detected. |
-| [`onScaledUpBarcodeImageUnitReceived`](#onscaledupbarcodeimageunitreceived) | The callback triggered when a scaled-up barcode image unit is received. |
-| [`onDeformationResistedBarcodeImageUnitReceived`](#ondeformationresistedbarcodeimageunitreceived) | The callback triggered when a deformation-resisted barcode image unit is received. |
-| [`onComplementedBarcodeImageUnitReceived`](#oncomplementedbarcodeimageunitreceived) | The callback triggered when a complemented barcode image unit is received. |
-| [`onRawTextLinesReceived`](#onrawtextlinesreceived) | The callback triggered when a raw text lines unit is received. |
-
-### getObservationParameters
-
-Gets the observed parameters of the intermediate result receiver.
-
-```java
-ObservationParameters getObservationParameters();
-```
-
-**Return Value**
-
-An `ObservationParameters` object.
-
-### onTaskResultsReceived
-
-The callback triggered when task results are received.
-
-```java
-void onTaskResultsReceived(@NonNull IntermediateResult result, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result from the task, of type `IntermediateResult`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onPredetectedRegionsReceived
-
-The callback triggered when pre-detected regions are received.
-
-```java
-void onPredetectedRegionsReceived(@NonNull PredetectedRegionsUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the pre-detected regions, of type `PredetectedRegionsUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onLocalizedBarcodesReceived
-
-The callback triggered when localized barcodes are received.
-
-```java
-void onLocalizedBarcodesReceived(@NonNull LocalizedBarcodesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the localized barcodes, of type `LocalizedBarcodesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onDecodedBarcodesReceived
-
-The callback triggered when decoded barcodes are received.
-
-```java
-void onDecodedBarcodesReceived(@NonNull DecodedBarcodesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the decoded barcodes, of type `DecodedBarcodesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onLocalizedTextLinesReceived
-
-The callback triggered when localized text lines are received.
-
-```java
-void onLocalizedTextLinesReceived(@NonNull LocalizedTextLinesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the localized text lines, of type `LocalizedTextLinesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onRecognizedTextLinesReceived
-
-The callback triggered when recognized text lines are received.
-
-```java
-void onRecognizedTextLinesReceived(@NonNull RecognizedTextLinesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the recognized text lines, of type `RecognizedTextLinesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onDetectedQuadsReceived
-
-The callback triggered when detected quads are received.
-
-```java
-void onDetectedQuadsReceived(@NonNull DetectedQuadsUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the detected quads, of type `DetectedQuadsUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onNormalizedImagesReceived
-
-The callback triggered when normalized images are received.
-
-```java
-void onNormalizedImagesReceived(@NonNull NormalizedImagesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the normalized images, of type `NormalizedImagesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onColourImageUnitReceived
-
-The callback triggered when colour images are received.
-
-```java
-void onColourImageUnitReceived(@NonNull ColourImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the colour image, of type `ColourImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onScaledDownColourImageUnitReceived
-
-The callback triggered when scaled-down colour images are received.
-
-```java
-void onScaledDownColourImageUnitReceived(@NonNull ScaledDownColourImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the scaled-down colour image, of type `ScaledDownColourImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onGrayscaleImageUnitReceived
-
-The callback triggered when grayscale images are received.
-
-```java
-void onGrayscaleImageUnitReceived(@NonNull GrayscaleImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the grayscale image, of type `GrayscaleImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTransformedGrayscaleImageUnitReceived
-
-The callback triggered when transformed grayscale images are received.
-
-```java
-void onTransformedGrayscaleImageUnitReceived(@NonNull TransformedGrayscaleImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the transformed grayscale image, of type `TransformedGrayscaleImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onEnhancedGrayscaleImageUnitReceived
-
-The callback triggered when enhanced grayscale images are received.
-
-```java
-void onEnhancedGrayscaleImageUnitReceived(@NonNull EnhancedGrayscaleImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the enhanced grayscale image, of type `EnhancedGrayscaleImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onBinaryImageUnitReceived
-
-The callback triggered when binary images are received.
-
-```java
-void onBinaryImageUnitReceived(@NonNull BinaryImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the binary image, of type `BinaryImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTextureDetectionResultUnitReceived
-
-The callback triggered when texture detection results are received.
-
-```java
-void onTextureDetectionResultUnitReceived(@NonNull TextureDetectionResultUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the texture detection result, of type `TextureDetectionResultUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTextureRemovedGrayscaleImageUnitReceived
-
-The callback triggered when texture removed grayscale images are received.
-
-```java
-void onTextureRemovedGrayscaleImageUnitReceived(@NonNull TextureRemovedGrayscaleImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the texture removed grayscale image, of type `TextureRemovedGrayscaleImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTextureRemovedBinaryImageUnitReceived
-
-The callback triggered when texture removed binary images are received.
-
-```java
-void onTextureRemovedBinaryImageUnitReceived(@NonNull TextureRemovedBinaryImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the texture removed binary image, of type `TextureRemovedBinaryImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onContoursUnitReceived
-
-The callback triggered when contours are received.
-
-```java
-void onContoursUnitReceived(@NonNull ContoursUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the contours, of type `ContoursUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onLineSegmentsUnitReceived
-
-The callback triggered when line segments are received.
-
-```java
-void onLineSegmentsUnitReceived(@NonNull LineSegmentsUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the line segments, of type `LineSegmentsUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTextZonesUnitReceived
-
-The callback triggered when text zones are received.
-
-```java
-void onTextZonesUnitReceived(@NonNull TextZonesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the text zones, of type `TextZonesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTextRemovedBinaryImageUnitReceived
-
-The callback triggered when text removed binary images are received.
-
-```java
-void onTextRemovedBinaryImageUnitReceived(@NonNull TextRemovedBinaryImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the text removed binary image, of type `TextRemovedBinaryImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onShortLinesUnitReceived
-
-The callback triggered when short lines are received.
-
-```java
-void onShortLinesUnitReceived(@NonNull ShortLinesUnit unit IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the short lines, of type `ShortLinesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onLongLinesUnitReceived
-
-The callback triggered when long lines are received.
-
-```java
-void onLongLinesUnitReceived(@NonNull LongLinesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the long lines, of type `LongLinesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onCornersUnitReceived
-
-The callback triggered when corners are received.
-
-```java
-void onCornersUnitReceived(@NonNull CornersUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the corners, of type `CornersUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onCandidateQuadEdgesUnitReceived
-
-The callback triggered when candidate quad edges are received.
-
-```java
-void onCandidateQuadEdgesUnitReceived(@NonNull CandidateQuadEdgesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the candidate quad edges, of type `CandidateQuadEdgesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onCandidateBarcodeZonesUnitReceived
-
-The callback triggered when candidate barcode zones are received.
-
-```java
-void onCandidateBarcodeZonesUnitReceived(@NonNull CandidateBarcodeZonesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the candidate barcode zones, of type `CandidateBarcodeZonesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onScaledUpBarcodeImageUnitReceived
-
-The callback triggered when scaled up barcode images are received.
-
-```java
-void onScaledUpBarcodeImageUnitReceived(@NonNull ScaledUpBarcodeImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the scaled up barcode image, of type `ScaledUpBarcodeImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onDeformationResistedBarcodeImageUnitReceived
-
-The callback triggered when deformation resisted barcode images are received.
-
-```java
-void onDeformationResistedBarcodeImageUnitReceived(@NonNull DeformationResistedBarcodeImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the deformation resisted barcode image, of type `DeformationResistedBarcodeImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onComplementedBarcodeImageUnitReceived
-
-The callback triggered when complemented barcode images are received.
-
-```java
-void onComplementedBarcodeImageUnitReceived(@NonNull ComplementedBarcodeImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the complemented barcode image, of type `ComplementedBarcodeImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onRawTextLinesReceived
-
-The callback triggered when a raw text lines unit is received.
-
-```java
-void onRawTextLinesReceived(@NonNull RawTextLinesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the raw text lines, of type `RawTextLinesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
diff --git a/programming/android/api-reference/capture-vision-router/auxiliary-classes/intermediate-result-receiver-v2.61003.md b/programming/android/api-reference/capture-vision-router/auxiliary-classes/intermediate-result-receiver-v2.61003.md
deleted file mode 100644
index c142c23d..00000000
--- a/programming/android/api-reference/capture-vision-router/auxiliary-classes/intermediate-result-receiver-v2.61003.md
+++ /dev/null
@@ -1,506 +0,0 @@
----
-layout: default-layout
-title: IntermediateResultReceiver - Dynamsoft Core Module Android Edition API Reference
-description: The interface IntermediateResultReceiver includes methods for monitoring the output of intermediate results.
-keywords: interface, Java, Kotlin
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# IntermediateResultReceiver
-
-The `IntermediateResultReceiver` class is designed as a standardized way for retrieving intermediate results in image processing workflows in the Dynamsoft Capture Vision architecture. By implementing the `CapturedResultReceiver`, you will receive the callback of the various types of captured results, such as pre-detected regions, localized barcodes, etc. Each callback is optional, allowing flexibility and customization based on the needs of the application.
-
-## Definition
-
-*Namespace:* com.dynamsoft.cvr
-
-*Assembly:* DynamsoftCaptureVisionRouter.aar
-
-```java
-interface IntermediateResultReceiver
-```
-
-## Methods
-
-| Method | Description |
-| ------ | ----------- |
-| [`getObservationParameters`](#getobservationparameters) | Gets the observed parameters of the intermediate result receiver. |
-| [`onTaskResultsReceived`](#ontaskresultsreceived) | The callback triggered when task results are received. |
-| [`onPredetectedRegionsReceived`](#onpredetectedregionsreceived) | The callback triggered when pre-detected regions are received. |
-| [`onLocalizedBarcodesReceived`](#onlocalizedbarcodesreceived) | The callback triggered when localized barcodes are received. |
-| [`onDecodedBarcodesReceived`](#ondecodedbarcodesreceived) | The callback triggered when decoded barcodes are received. |
-| [`onLocalizedTextLinesReceived`](#onlocalizedtextlinesreceived) | The callback triggered when localized text lines are received. |
-| [`onRecognizedTextLinesReceived`](#onrecognizedtextlinesreceived) | The callback triggered when recognized text lines are received. |
-| [`onDetectedQuadsReceived`](#ondetectedquadsreceived) | The callback triggered when detected quads are received. |
-| [`onNormalizedImagesReceived`](#onnormalizedimagesreceived) | The callback triggered when normalized images are received. |
-| [`onColourImageUnitReceived`](#oncolourimageunitreceived) | The callback triggered when a colour image unit is received. |
-| [`onScaledDownColourImageUnitReceived`](#onscaleddowncolourimageunitreceived) | The callback triggered when a scaled-down colour image unit is received. |
-| [`onGrayscaleImageUnitReceived`](#ongrayscaleimageunitreceived) | The callback triggered when a grayscale image unit is received. |
-| [`onTransformedGrayscaleImageUnitReceived`](#ontransformedgrayscaleimageunitreceived) | The callback triggered when a transformed grayscale image unit is received. |
-| [`onEnhancedGrayscaleImageUnitReceived`](#onenhancedgrayscaleimageunitreceived) | The callback triggered when an enhanced grayscale image unit is received. |
-| [`onBinaryImageUnitReceived`](#onbinaryimageunitreceived) | The callback triggered when a binary image unit is received. |
-| [`onTextureDetectionResultUnitReceived`](#ontexturedetectionresultunitreceived) | The callback triggered when a texture detection result unit is received. |
-| [`onTextureRemovedGrayscaleImageUnitReceived`](#ontextureremovedgrayscaleimageunitreceived) | The callback triggered when a texture-removed grayscale image unit is received. |
-| [`onTextureRemovedBinaryImageUnitReceived`](#ontextureremovedbinaryimageunitreceived) | The callback triggered when a texture-removed binary image unit is received. |
-| [`onContoursUnitReceived`](#oncontoursunitreceived) | The callback triggered when a contours unit is received. |
-| [`onLineSegmentsUnitReceived`](#onlinesegmentsunitreceived) | The callback triggered when a line segments unit is received. |
-| [`onTextZonesUnitReceived`](#ontextzonesunitreceived) | The callback triggered when a text zones unit is received. |
-| [`onTextRemovedBinaryImageUnitReceived`](#ontextremovedbinaryimageunitreceived) | The callback triggered when a text-removed binary image unit is received. |
-| [`onShortLinesUnitReceived`](#onshortlinesunitreceived) | The callback triggered when a short lines unit is received. |
-| [`onLogicLinesUnitReceived`](#onlogiclinesunitreceived) | The callback triggered when a logic lines unit is received. |
-| [`onLongLinesUnitReceived`](#onlonglinesunitreceived) | The callback triggered when a long lines unit is received. |
-| [`onCornersUnitReceived`](#oncornersunitreceived) | The callback triggered when a corners unit is received. |
-| [`onCandidateQuadEdgesUnitReceived`](#oncandidatequadedgesunitreceived) | The callback triggered when a candidate quad edges unit are detected. |
-| [`onCandidateBarcodeZonesUnitReceived`](#oncandidatebarcodezonesunitreceived) | The callback triggered when a candidate barcode zones unit are detected. |
-| [`onScaledUpBarcodeImageUnitReceived`](#onscaledupbarcodeimageunitreceived) | The callback triggered when a scaled-up barcode image unit is received. |
-| [`onDeformationResistedBarcodeImageUnitReceived`](#ondeformationresistedbarcodeimageunitreceived) | The callback triggered when a deformation-resisted barcode image unit is received. |
-| [`onComplementedBarcodeImageUnitReceived`](#oncomplementedbarcodeimageunitreceived) | The callback triggered when a complemented barcode image unit is received. |
-| [`onRawTextLinesReceived`](#onrawtextlinesreceived) | The callback triggered when a raw text lines unit is received. |
-
-### getObservationParameters
-
-Gets the observed parameters of the intermediate result receiver.
-
-```java
-ObservationParameters getObservationParameters();
-```
-
-**Return Value**
-
-An `ObservationParameters` object.
-
-### onTaskResultsReceived
-
-The callback triggered when task results are received.
-
-```java
-void onTaskResultsReceived(@NonNull IntermediateResult result, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result from the task, of type `IntermediateResult`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onPredetectedRegionsReceived
-
-The callback triggered when pre-detected regions are received.
-
-```java
-void onPredetectedRegionsReceived(@NonNull PredetectedRegionsUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the pre-detected regions, of type `PredetectedRegionsUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onLocalizedBarcodesReceived
-
-The callback triggered when localized barcodes are received.
-
-```java
-void onLocalizedBarcodesReceived(@NonNull LocalizedBarcodesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the localized barcodes, of type `LocalizedBarcodesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onDecodedBarcodesReceived
-
-The callback triggered when decoded barcodes are received.
-
-```java
-void onDecodedBarcodesReceived(@NonNull DecodedBarcodesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the decoded barcodes, of type `DecodedBarcodesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onLocalizedTextLinesReceived
-
-The callback triggered when localized text lines are received.
-
-```java
-void onLocalizedTextLinesReceived(@NonNull LocalizedTextLinesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the localized text lines, of type `LocalizedTextLinesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onRecognizedTextLinesReceived
-
-The callback triggered when recognized text lines are received.
-
-```java
-void onRecognizedTextLinesReceived(@NonNull RecognizedTextLinesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the recognized text lines, of type `RecognizedTextLinesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onDetectedQuadsReceived
-
-The callback triggered when detected quads are received.
-
-```java
-void onDetectedQuadsReceived(@NonNull DetectedQuadsUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the detected quads, of type `DetectedQuadsUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onNormalizedImagesReceived
-
-The callback triggered when normalized images are received.
-
-```java
-void onNormalizedImagesReceived(@NonNull NormalizedImagesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the normalized images, of type `NormalizedImagesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onColourImageUnitReceived
-
-The callback triggered when colour images are received.
-
-```java
-void onColourImageUnitReceived(@NonNull ColourImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the colour image, of type `ColourImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onScaledDownColourImageUnitReceived
-
-The callback triggered when scaled-down colour images are received.
-
-```java
-void onScaledDownColourImageUnitReceived(@NonNull ScaledDownColourImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the scaled-down colour image, of type `ScaledDownColourImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onGrayscaleImageUnitReceived
-
-The callback triggered when grayscale images are received.
-
-```java
-void onGrayscaleImageUnitReceived(@NonNull GrayscaleImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the grayscale image, of type `GrayscaleImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTransformedGrayscaleImageUnitReceived
-
-The callback triggered when transformed grayscale images are received.
-
-```java
-void onTransformedGrayscaleImageUnitReceived(@NonNull TransformedGrayscaleImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the transformed grayscale image, of type `TransformedGrayscaleImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onEnhancedGrayscaleImageUnitReceived
-
-The callback triggered when enhanced grayscale images are received.
-
-```java
-void onEnhancedGrayscaleImageUnitReceived(@NonNull EnhancedGrayscaleImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the enhanced grayscale image, of type `EnhancedGrayscaleImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onBinaryImageUnitReceived
-
-The callback triggered when binary images are received.
-
-```java
-void onBinaryImageUnitReceived(@NonNull BinaryImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the binary image, of type `BinaryImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTextureDetectionResultUnitReceived
-
-The callback triggered when texture detection results are received.
-
-```java
-void onTextureDetectionResultUnitReceived(@NonNull TextureDetectionResultUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the texture detection result, of type `TextureDetectionResultUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTextureRemovedGrayscaleImageUnitReceived
-
-The callback triggered when texture removed grayscale images are received.
-
-```java
-void onTextureRemovedGrayscaleImageUnitReceived(@NonNull TextureRemovedGrayscaleImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the texture removed grayscale image, of type `TextureRemovedGrayscaleImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTextureRemovedBinaryImageUnitReceived
-
-The callback triggered when texture removed binary images are received.
-
-```java
-void onTextureRemovedBinaryImageUnitReceived(@NonNull TextureRemovedBinaryImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the texture removed binary image, of type `TextureRemovedBinaryImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onContoursUnitReceived
-
-The callback triggered when contours are received.
-
-```java
-void onContoursUnitReceived(@NonNull ContoursUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the contours, of type `ContoursUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onLineSegmentsUnitReceived
-
-The callback triggered when line segments are received.
-
-```java
-void onLineSegmentsUnitReceived(@NonNull LineSegmentsUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the line segments, of type `LineSegmentsUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTextZonesUnitReceived
-
-The callback triggered when text zones are received.
-
-```java
-void onTextZonesUnitReceived(@NonNull TextZonesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the text zones, of type `TextZonesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTextRemovedBinaryImageUnitReceived
-
-The callback triggered when text removed binary images are received.
-
-```java
-void onTextRemovedBinaryImageUnitReceived(@NonNull TextRemovedBinaryImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the text removed binary image, of type `TextRemovedBinaryImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onShortLinesUnitReceived
-
-The callback triggered when short lines are received.
-
-```java
-void onShortLinesUnitReceived(@NonNull ShortLinesUnit unit IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the short lines, of type `ShortLinesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onLogicLinesUnitReceived
-
-The callback triggered when logic lines are received.
-
-```java
-void onLogicLinesUnitReceived(@NonNull LongLinesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the long lines, of type `LongLinesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onLongLinesUnitReceived
-
-The callback triggered when long lines are received.
-
-```java
-void onLongLinesUnitReceived(@NonNull LongLinesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the long lines, of type `LongLinesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onCornersUnitReceived
-
-The callback triggered when corners are received.
-
-```java
-void onCornersUnitReceived(@NonNull CornersUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the corners, of type `CornersUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onCandidateQuadEdgesUnitReceived
-
-The callback triggered when candidate quad edges are received.
-
-```java
-void onCandidateQuadEdgesUnitReceived(@NonNull CandidateQuadEdgesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the candidate quad edges, of type `CandidateQuadEdgesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onCandidateBarcodeZonesUnitReceived
-
-The callback triggered when candidate barcode zones are received.
-
-```java
-void onCandidateBarcodeZonesUnitReceived(@NonNull CandidateBarcodeZonesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the candidate barcode zones, of type `CandidateBarcodeZonesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onScaledUpBarcodeImageUnitReceived
-
-The callback triggered when scaled up barcode images are received.
-
-```java
-void onScaledUpBarcodeImageUnitReceived(@NonNull ScaledUpBarcodeImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the scaled up barcode image, of type `ScaledUpBarcodeImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onDeformationResistedBarcodeImageUnitReceived
-
-The callback triggered when deformation resisted barcode images are received.
-
-```java
-void onDeformationResistedBarcodeImageUnitReceived(@NonNull DeformationResistedBarcodeImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the deformation resisted barcode image, of type `DeformationResistedBarcodeImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onComplementedBarcodeImageUnitReceived
-
-The callback triggered when complemented barcode images are received.
-
-```java
-void onComplementedBarcodeImageUnitReceived(@NonNull ComplementedBarcodeImageUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the complemented barcode image, of type `ComplementedBarcodeImageUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onRawTextLinesReceived
-
-The callback triggered when a raw text lines unit is received.
-
-```java
-void onRawTextLinesReceived(@NonNull RawTextLinesUnit unit, IntermediateResultExtraInfo info);
-```
-
-**Parameters**
-
-`[in] unit`: The intermediate result that contains the raw text lines, of type `RawTextLinesUnit`.
-
-`[in] info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
diff --git a/programming/android/api-reference/capture-vision-router/auxiliary-classes/simplified-capture-vision-settings-v2.6.1003.md b/programming/android/api-reference/capture-vision-router/auxiliary-classes/simplified-capture-vision-settings-v2.6.1003.md
deleted file mode 100644
index 4d50c8fa..00000000
--- a/programming/android/api-reference/capture-vision-router/auxiliary-classes/simplified-capture-vision-settings-v2.6.1003.md
+++ /dev/null
@@ -1,159 +0,0 @@
----
-layout: default-layout
-title: SimplifiedCaptureVisionSettings - Dynamsoft Capture Vision Router Module Android Edition API Reference
-description: The class SimplifiedCaptureVisionSettings of Dynamsoft Capture Vision Router Module contains settings for capturing and recognizing images with the CaptureVisionRouter class.
-keywords: Capture Vision settings, Java, Kotlin
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# SimplifiedCaptureVisionSettings
-
-The `SimplifiedCaptureVisionSettings` class contains settings for capturing and recognizing images with the `CaptureVisionRouter` class.
-
-## Definition
-
-*Namespace:* com.dynamsoft.cvr
-
-*Assembly:* DynamsoftCaptureVisionRouter.aar
-
-```java
-class SimplifiedCaptureVisionSettings
-```
-
-## Methods & Attributes
-
-| Method | Description |
-|----------------------|-------------|
-| [`toJSON`](#tojson) | Generate the current `SimplifiedCaptureVisionSettings` object to a JSON string. |
-| [`fromJSON`](#fromjson) | Generate a `SimplifiedCaptureVisionSettings` object from a JSON string. |
-
-| Attribute | Type | Description |
-| --------- | ---- | ----------- |
-| [`capturedResultItemTypes`](#capturedresultitemtypes) | *int* | Specifies the type(s) of CapturedItem(s) that will be captured. |
-| [`roi`](#roi) | *[Quadrilateral](../../core/basic-structures/quadrilateral.md)* | Specifies the region of interest (ROI) of the image or frame where the capture and recognition will take place. |
-| [`roiMeasuredInPercentage`](#roimeasuredinpercentage) | *boolean* | Specifies whether the ROI is measured in pixels (false) or as a percentage of the image dimensions (true). |
-| [`maxParallelTasks`](#maxparalleltasks) | *int* | Specifies the maximum number of parallel tasks that can be used for image capture and recognition. |
-| [`minImageCaptureInterval`](#minimagecaptureinterval) | *int* | Set the minimum capture interval, measured in milliseconds. |
-| [`timeout`](#timeout) | *int* | Specifies the maximum time (in milliseconds) allowed for image capture and recognition. |
-| [`barcodeSettings`](#barcodesettings) | *[SimplifiedBarcodeReaderSettings]({{ site.dbr_android_api }}simplified-barcode-reader-settings.html)* | Specifies the settings for the `DynamsoftBarcodeReader` task. |
-| [`labelSettings`](#labelsettings) | *[SimplifiedLabelRecognizerSettings]({{ site.dlr_android_api }}simplified-label-recognizer-settings.html)* | Specifies the settings for the `DynamsoftLabelRecognizer` task. |
-| [`documentSettings`](#documentsettings) | *[SimplifiedDocumentNormalizerSettings]({{ site.ddn_android_api }}simplified-document-normalizer-settings.html)* | Specifies the settings for the `DynamsoftDocumentNormalizer` task. |
-
-### toJSON
-
-Transform the current `SimplifiedCaptureVisionSettings` object to a JSON string.
-
-```java
-String toJSON();
-```
-
-**Return Value**
-
-The JSON string format of the current `SimplifiedCaptureVisionSettings` object.
-
-### fromJSON
-
-Generate a `SimplifiedCaptureVisionSettings` object from a JSON string.
-
-```java
-static SimplifiedCaptureVisionSettings fromJSON(String jsonString);
-```
-
-**Return Value**
-
-The generated `SimplifiedCaptureVisionSettings` object.
-
-### capturedResultItemTypes
-
-Specifies the type(s) of CapturedItem(s) that will be returned by the Capture Vision Router.
-
-```java
-@EnumCapturedResultItemType
-int capturedResultItemTypes;
-```
-
-**Remarks**
-
-You can specify multiple types. For example, you can use the following code to add `CRIT_ORIGINAL_IMAGE` to the captured results of `PT_READ_BARCODES` template.
-
-```java
-try {
- SimplifiedCaptureVisionSettings settings = cvr.getSimplifiedSettings(EnumPresetTemplate.PT_READ_BARCODES);
- settings.capturedResultItemTypes = EnumCapturedResultItemType.CRIT_BARCODE | EnumCapturedResultItemType.CRIT_ORIGINAL_IMAGE;
- cvr.updateSettings(EnumPresetTemplate.PT_READ_BARCODES, settings);
-} catch (CaptureVisionRouterException e) {
- throw new RuntimeException(e);
-}
-```
-
-> View [`EnumCapturedResultItemType`]({{ site.dcv_enumerations }}core/captured-result-item-type.html?lang=android) to learn of all supported result item types.
-
-### roi
-
-Specifies the region of interest (ROI) of the image or frame where the capture and recognition will take place.
-
-```java
-Quadrilateral roi;
-```
-
-### roiMeasuredInPercentage
-
-Specifies whether the ROI is measured in pixels (false) or as a percentage of the image dimensions (true).
-
-```java
-boolean roiMeasuredInPercentage;
-```
-
-### maxParallelTasks
-
-Specifies the maximum number of parallel tasks that can be used for image capture and recognition.
-
-```java
-int maxParallelTasks;
-```
-
-### minImageCaptureInterval
-
-Set the minimum capture interval (in milliseconds) between consecutive frames when capturing via video. In other words, it is a measure of the frequency in which frames are fetched.
-
-```java
-int minImageCaptureInterval;
-```
-
-**Remarks**
-
-If you find that the battery consumption when using any of the Dynamsoft Capture Vision products, we recommend setting this parameter to a higher value. Please see this [article]({{ site.dbr_android }}faq/reduce-battery-consumption.html) for more info on how to reduce battery consumption.
-
-### timeout
-
-Specifies the maximum time (in milliseconds) allowed for image capture and recognition.
-
-```java
-int timeout;
-```
-
-### barcodeSettings
-
-Specifies the settings for the `DynamsoftBarcodeReader` task with a [`SimplifiedBarcodeReaderSettings`]({{ site.dbr_android_api }}simplified-barcode-reader-settings.html) object.
-
-```java
-SimplifiedBarcodeReaderSettings barcodeSettings;
-```
-
-### labelSettings
-
-Specifies the settings for the `DynamsoftLabelRecognizer` task with a [`SimplifiedLabelRecognizerSettings`]({{ site.dlr_android_api }}simplified-label-recognizer-settings.html) object.
-
-```java
-SimplifiedLabelRecognizerSettings labelSettings;
-```
-
-### documentSettings
-
-Specifies the settings for the `DynamsoftDocumentNormalizer` task with a [`SimplifiedDocumentNormalizerSettings`]({{ site.ddn_android_api }}simplified-document-normalizer-settings.html) object.
-
-```java
-SimplifiedDocumentNormalizerSettings documentSettings;
-```
diff --git a/programming/android/api-reference/capture-vision-router/settings-v2.4.2000.md b/programming/android/api-reference/capture-vision-router/settings-v2.4.2000.md
deleted file mode 100644
index cb2b38cc..00000000
--- a/programming/android/api-reference/capture-vision-router/settings-v2.4.2000.md
+++ /dev/null
@@ -1,231 +0,0 @@
----
-layout: default-layout
-title: Configure Settings - Dynamsoft Capture Vision Router Module Android Edition API Reference
-description: Settings configuration APIs of CaptureVisionRouter class for DCV Android edition.
-keywords: capture vision, Java, Kotlin
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# Configure Settings
-
-| Method | Description |
-| ------ | ----------- |
-| [`initSettings`](#initsettings) | Configures runtime settings using a provided JSON string, which contains settings for one or more `CaptureVisionTemplates`. |
-| [`initSettingsFromFile`](#initsettingsfromfile) | Configures runtime settings using a provided JSON file, which contains settings for one or more `CaptureVisionTemplates`. |
-| [`getSimplifiedSettings`](#getsimplifiedsettings) | Retrieves a simplified version of the Capture Vision settings for a specific template. |
-| [`updateSettings`](#updatesettings) | Updates the specified `CaptureVisionTemplate` with an updated `SimplifiedCaptureVisionSettings` object. |
-| [`resetSettings`](#resetsettings) | Restores all settings to their original default values. |
-| [`outputSettings`](#outputsettings) | Returns an object that contains settings for the specified `CaptureVisionTemplate`. |
-| [`outputSettingsToFile`](#outputsettingstofile) | Generates a JSON file download containing the settings for the specified `CaptureVisionTemplate`. |
-
-## initSettings
-
-Configures runtime settings using a provided JSON string, which contains settings for one or more `CaptureVisionTemplates`.
-
-```java
-void initSettings(String content) throws CaptureVisionRouterException;
-```
-
-**Parameters**
-
-`[in] content`: A JSON string that contains Capture Vision settings.
-
-**Exception**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_JSON_PARSE_FAILED | -10030 | Failed to parse the JSON data. |
-| EC_JSON_TYPE_INVALID | -10031 | One or more parameters are allocated with wrong data type. |
-| EC_JSON_KEY_INVALID | -10032 | There exists invalid key in your JSON data. |
-| EC_JSON_VALUE_INVALID | -10033 | There exists invalid parameter value in your JSON data. |
-| EC_JSON_NAME_KEY_MISSING | -10034 | One or more `name` parameters are missing in your JSON data. Each section of the JSON data requires a unique `name` parameter. |
-| EC_JSON_NAME_VALUE_DUPLICATED | -10035 | There exists duplicated `name` parameters in your JSON data. The `name` parameter should be unique. |
-| EC_JSON_NAME_REFERENCE_INVALID | -10037 | You have referenced an invalid `name` value in your JSON data. |
-| EC_PARAMETER_VALUE_INVALID | -10038 | There exists invalid parameter value in your JSON data. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-## initSettingsFromFile
-
-Configures runtime settings using a provided JSON file, which contains settings for one or more `CaptureVisionTemplates`.
-
-```java
-void initSettingsFromFile(String filePath) throws CaptureVisionRouterException;
-```
-
-**Parameters**
-
-`[in] file`: A JSON file that contains Capture Vision settings.
-
-**Exception**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_FILE_NOT_FOUND | -10005 | The file is not found. |
-| EC_JSON_PARSE_FAILED | -10030 | Failed to parse the JSON data. |
-| EC_JSON_TYPE_INVALID | -10031 | One or more parameters are allocated with wrong data type. |
-| EC_JSON_KEY_INVALID | -10032 | There exists invalid key in your JSON data. |
-| EC_JSON_VALUE_INVALID | -10033 | There exists invalid parameter value in your JSON data. |
-| EC_JSON_NAME_KEY_MISSING | -10034 | One or more `name` parameters are missing in your JSON data. Each section of the JSON data requires a unique `name` parameter. |
-| EC_JSON_NAME_VALUE_DUPLICATED | -10035 | There exists duplicated `name` parameters in your JSON data. The `name` parameter should be unique. |
-| EC_JSON_NAME_REFERENCE_INVALID | -10037 | You have referenced an invalid `name` value in your JSON data. |
-| EC_PARAMETER_VALUE_INVALID | -10038 | There exists invalid parameter value in your JSON data. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-**Code Snippet**
-
-Add a **Templates** folder to the assets folder of your project at **src\main\assets\Templates**. Put your JSON file in the **Templates** folder. Here we use a **ReadPDF417.json** file as an example.
-
-
-

-
Template Example
-
-
-Add the following code to initialize the template:
-
-```java
-try {
- mRouter.initSettingsFromFile("ReadPDF417.json");
-} catch (CaptureVisionRouterException e) {
- throw new RuntimeException(e);
-}
-```
-
-To use your template, you have to specify the template name in the `startCapturing` or `capture` method. For example:
-
-```java
-mRouter.startCapturing("ReadPDF417", new CompletionListener() {
- @Override
- public void onSuccess() {
- // Add code to run when the capture is successfully started.
- }
-
- @Override
- public void onFailure(int errorCode, String errorString) {
- // Add code to run when the capture fails.
- }
-});
-```
-
-## getSimplifiedSettings
-
-Retrieves a simplified version of the Capture Vision settings for a specific template.
-
-```java
-SimplifiedCaptureVisionSettings getSimplifiedSettings(String templateName) throws CaptureVisionRouterException;
-```
-
-**Parameters**
-
-`templateName`: Specify a template with a templateName for the data capturing.
-
-**Return Value**
-
-An object of [`SimplifiedCaptureVisionSettings`](./auxiliary-classes/simplified-capture-vision-settings.md).
-
-**Exception**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_TEMPLATE_NAME_INVALID | -10036 | The target template name is invalid. |
-| EC_CONVERT_COMPLEX_TEMPLATE_ERROR | -10061 | The template you specified is a complex template which can not be output as a `SimplifiedCaptureVisionSettings` object. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-## updateSettings
-
-Updates the specified `CaptureVisionTemplate` with an updated [`SimplifiedCaptureVisionSettings`](./auxiliary-classes/simplified-capture-vision-settings.md) object.
-
-```java
-void updateSettings(String templateName, SimplifiedCaptureVisionSettings settings) throws CaptureVisionRouterException;
-```
-
-**Parameters**
-
-`[in] templateName`: Specify the name of the template that you want to update.
-
-`[in] settings`: An object of SimplifiedCaptureVisionSettings.
-
-**Exception**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_TEMPLATE_NAME_INVALID | -10036 | The target template name is invalid. |
-| EC_PARAMETER_VALUE_INVALID | -10038 | There exists invalid parameter value in your `SimplifiedCaptureVisionSettings`. |
-| EC_CONVERT_COMPLEX_TEMPLATE_ERROR | -10061 | The template you specified is a complex template which can not be updated via a `SimplifiedCaptureVisionSettings` object. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-## resetSettings
-
-Restores all settings to their original default values.
-
-```java
-void resetSettings() throws CaptureVisionRouterException;
-```
-
-**Exception**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-## outputSettings
-
-Returns an object that contains settings for the specified `CaptureVisionTemplate`.
-
-```java
-String outputSettings(String templateName) throws CaptureVisionRouterException;
-```
-
-`[in] templateName`: The name of the template that you want to output.
-
-**Return Value**
-
-The Capture Vision settings in a JSON string.
-
-**Exception**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_TEMPLATE_NAME_INVALID | -10036 | The target template name is invalid. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-## outputSettingsToFile
-
-Generates a JSON file download containing the settings for the specified `CaptureVisionTemplate`.
-
-```java
-void outputSettingsToFile(String templateName, String filePath) throws CaptureVisionRouterException;
-```
-
-**Parameters**
-
-`[in] templateName`: The name of the template that you want to output.
-
-`[in] file`: The file path and name that you want to save the template.
-
-**Exception**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_FILE_SAVE_FAILED | -10058 | The file path is unavailable or the file can't be created for any other reasons. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-**Code Snippet**
-
-```java
-try {
- // To output the template to a JSON file, you have to get the read/write permission of the external storage first.
- // In this example, we output the template to the documents folder.
- String outputPath = String.valueOf(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS));
- // Optional code. If you want to create a new folder under the documents folder, please uncomment the following code.
- // File file = new File(outputPath);
- // if(!file.exists()) {
- // file.mkdirs();
- // }
- // You have to specify the template name and the file path. Here we use the preset template "PT_READ_BARCODES" as an example.
- mRouter.outputSettingsToFile(EnumPresetTemplate.PT_READ_BARCODES, outputPath+"/outputTemplate.json");
-} catch (CaptureVisionRouterException e) {
- throw new RuntimeException(e);
-}
-```
diff --git a/programming/android/api-reference/capture-vision-router/settings-v2.6.1004.md b/programming/android/api-reference/capture-vision-router/settings-v2.6.1004.md
deleted file mode 100644
index 096b1744..00000000
--- a/programming/android/api-reference/capture-vision-router/settings-v2.6.1004.md
+++ /dev/null
@@ -1,246 +0,0 @@
----
-layout: default-layout
-title: Configure Settings - Dynamsoft Capture Vision Router Module Android Edition API Reference
-description: Settings configuration APIs of CaptureVisionRouter class for DCV Android edition.
-keywords: capture vision, Java, Kotlin
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# Configure Settings
-
-| Method | Description |
-| ------ | ----------- |
-| [`initSettings`](#initsettings) | Configures runtime settings using a provided JSON string, which contains settings for one or more `CaptureVisionTemplates`. |
-| [`initSettingsFromFile`](#initsettingsfromfile) | Configures runtime settings using a provided JSON file, which contains settings for one or more `CaptureVisionTemplates`. |
-| [`getSimplifiedSettings`](#getsimplifiedsettings) | Retrieves a simplified version of the Capture Vision settings for a specific template. |
-| [`getTemplateNames`](#gettemplatenames) | Retrieves the names of all the currently available templates. |
-| [`updateSettings`](#updatesettings) | Updates the specified `CaptureVisionTemplate` with an updated `SimplifiedCaptureVisionSettings` object. |
-| [`resetSettings`](#resetsettings) | Restores all settings to their original default values. |
-| [`outputSettings`](#outputsettings) | Returns an object that contains settings for the specified `CaptureVisionTemplate`. |
-| [`outputSettingsToFile`](#outputsettingstofile) | Generates a JSON file download containing the settings for the specified `CaptureVisionTemplate`. |
-
-## initSettings
-
-Configures runtime settings using a provided JSON string, which contains settings for one or more `CaptureVisionTemplates`.
-
-```java
-void initSettings(String content) throws CaptureVisionRouterException;
-```
-
-**Parameters**
-
-`[in] content`: A JSON string that contains Capture Vision settings.
-
-**Exception**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_JSON_PARSE_FAILED | -10030 | Failed to parse the JSON data. |
-| EC_JSON_TYPE_INVALID | -10031 | One or more parameters are allocated with wrong data type. |
-| EC_JSON_KEY_INVALID | -10032 | There exists invalid key in your JSON data. |
-| EC_JSON_VALUE_INVALID | -10033 | There exists invalid parameter value in your JSON data. |
-| EC_JSON_NAME_KEY_MISSING | -10034 | One or more `name` parameters are missing in your JSON data. Each section of the JSON data requires a unique `name` parameter. |
-| EC_JSON_NAME_VALUE_DUPLICATED | -10035 | There exists duplicated `name` parameters in your JSON data. The `name` parameter should be unique. |
-| EC_JSON_NAME_REFERENCE_INVALID | -10037 | You have referenced an invalid `name` value in your JSON data. |
-| EC_PARAMETER_VALUE_INVALID | -10038 | There exists invalid parameter value in your JSON data. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-## initSettingsFromFile
-
-Configures runtime settings using a provided JSON file, which contains settings for one or more `CaptureVisionTemplates`.
-
-```java
-void initSettingsFromFile(String filePath) throws CaptureVisionRouterException;
-```
-
-**Parameters**
-
-`[in] file`: A JSON file that contains Capture Vision settings.
-
-**Exception**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_FILE_NOT_FOUND | -10005 | The file is not found. |
-| EC_JSON_PARSE_FAILED | -10030 | Failed to parse the JSON data. |
-| EC_JSON_TYPE_INVALID | -10031 | One or more parameters are allocated with wrong data type. |
-| EC_JSON_KEY_INVALID | -10032 | There exists invalid key in your JSON data. |
-| EC_JSON_VALUE_INVALID | -10033 | There exists invalid parameter value in your JSON data. |
-| EC_JSON_NAME_KEY_MISSING | -10034 | One or more `name` parameters are missing in your JSON data. Each section of the JSON data requires a unique `name` parameter. |
-| EC_JSON_NAME_VALUE_DUPLICATED | -10035 | There exists duplicated `name` parameters in your JSON data. The `name` parameter should be unique. |
-| EC_JSON_NAME_REFERENCE_INVALID | -10037 | You have referenced an invalid `name` value in your JSON data. |
-| EC_PARAMETER_VALUE_INVALID | -10038 | There exists invalid parameter value in your JSON data. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-**Code Snippet**
-
-Add a **Templates** folder to the assets folder of your project at **src\main\assets\Templates**. Put your JSON file in the **Templates** folder. Here we use a **ReadPDF417.json** file as an example.
-
-
-

-
Template Example
-
-
-Add the following code to initialize the template:
-
-```java
-try {
- mRouter.initSettingsFromFile("ReadPDF417.json");
-} catch (CaptureVisionRouterException e) {
- throw new RuntimeException(e);
-}
-```
-
-To use your template, you have to specify the template name in the `startCapturing` or `capture` method. The template name is the name of `CaptureVisionTemplates` in your template file (see in the image of step 3).
-
-For example:
-
-```java
-mRouter.startCapturing("ReadPDF417", new CompletionListener() {
- @Override
- public void onSuccess() {
- // Add code to run when the capture is successfully started.
- }
-
- @Override
- public void onFailure(int errorCode, String errorString) {
- // Add code to run when the capture fails.
- }
-});
-```
-
-## getSimplifiedSettings
-
-Retrieves a simplified version of the Capture Vision settings for a specific template.
-
-```java
-SimplifiedCaptureVisionSettings getSimplifiedSettings(String templateName) throws CaptureVisionRouterException;
-```
-
-**Parameters**
-
-`templateName`: Specify a template with a templateName for the data capturing.
-
-**Return Value**
-
-An object of [`SimplifiedCaptureVisionSettings`](./auxiliary-classes/simplified-capture-vision-settings.md).
-
-**Exception**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_TEMPLATE_NAME_INVALID | -10036 | The target template name is invalid. |
-| EC_CONVERT_COMPLEX_TEMPLATE_ERROR | -10061 | The template you specified is a complex template which can not be output as a `SimplifiedCaptureVisionSettings` object. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-## getTemplateNames
-
-Retrieves the names of all the currently available templates.
-
-```java
-String[] getTemplateNames();
-```
-
-**Return Value**
-
-An array that contains all the currently available templates names.
-
-## updateSettings
-
-Updates the specified `CaptureVisionTemplate` with an updated [`SimplifiedCaptureVisionSettings`](./auxiliary-classes/simplified-capture-vision-settings.md) object.
-
-```java
-void updateSettings(String templateName, SimplifiedCaptureVisionSettings settings) throws CaptureVisionRouterException;
-```
-
-**Parameters**
-
-`[in] templateName`: Specify the name of the template that you want to update.
-
-`[in] settings`: An object of SimplifiedCaptureVisionSettings.
-
-**Exception**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_TEMPLATE_NAME_INVALID | -10036 | The target template name is invalid. |
-| EC_PARAMETER_VALUE_INVALID | -10038 | There exists invalid parameter value in your `SimplifiedCaptureVisionSettings`. |
-| EC_CONVERT_COMPLEX_TEMPLATE_ERROR | -10061 | The template you specified is a complex template which can not be updated via a `SimplifiedCaptureVisionSettings` object. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-## resetSettings
-
-Restores all settings to their original default values.
-
-```java
-void resetSettings() throws CaptureVisionRouterException;
-```
-
-**Exception**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-## outputSettings
-
-Returns an object that contains settings for the specified `CaptureVisionTemplate`.
-
-```java
-String outputSettings(String templateName) throws CaptureVisionRouterException;
-```
-
-`[in] templateName`: The name of the template that you want to output.
-
-**Return Value**
-
-The Capture Vision settings in a JSON string.
-
-**Exception**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_TEMPLATE_NAME_INVALID | -10036 | The target template name is invalid. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-## outputSettingsToFile
-
-Generates a JSON file download containing the settings for the specified `CaptureVisionTemplate`.
-
-```java
-void outputSettingsToFile(String templateName, String filePath) throws CaptureVisionRouterException;
-```
-
-**Parameters**
-
-`[in] templateName`: The name of the template that you want to output.
-
-`[in] file`: The file path and name that you want to save the template.
-
-**Exception**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_FILE_SAVE_FAILED | -10058 | The file path is unavailable or the file can't be created for any other reasons. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-**Code Snippet**
-
-```java
-try {
- // To output the template to a JSON file, you have to get the read/write permission of the external storage first.
- // In this example, we output the template to the documents folder.
- String outputPath = String.valueOf(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS));
- // Optional code. If you want to create a new folder under the documents folder, please uncomment the following code.
- // File file = new File(outputPath);
- // if(!file.exists()) {
- // file.mkdirs();
- // }
- // You have to specify the template name and the file path. Here we use the preset template "PT_READ_BARCODES" as an example.
- mRouter.outputSettingsToFile(EnumPresetTemplate.PT_READ_BARCODES, outputPath+"/outputTemplate.json");
-} catch (CaptureVisionRouterException e) {
- throw new RuntimeException(e);
-}
-```
diff --git a/programming/android/api-reference/core/basic-structures/line-segment-v2.6.1003.md b/programming/android/api-reference/core/basic-structures/line-segment-v2.6.1003.md
deleted file mode 100644
index 136df282..00000000
--- a/programming/android/api-reference/core/basic-structures/line-segment-v2.6.1003.md
+++ /dev/null
@@ -1,58 +0,0 @@
----
-layout: default-layout
-title: LineSegment - Dynamsoft Core Module Android Edition API Reference
-description: The class LineSegment of Dynamsoft Core Module represents a line segment in 2D space, which contains the start point and end point of the line segment.
-keywords: line segment, 2D, Java, Kotlin
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# LineSegment
-
-The `LineSegment` class represents a line segment in 2D space, which contains the start point and end point of the line segment.
-
-## Definition
-
-*Namespace:* com.dynamsoft.core.basic_structures
-
-*Assembly:* DynamsoftCore.aar
-
-```java
-class LineSegment
-```
-
-## Methods & Attributes
-
-| Attributes | Type | Description |
-| ---------- | ---- | ----------- |
-| [`startPoint`](#startpoint) | *android.graphics.Point* | The starting point of the line segment. |
-| [`endPoint`](#endpoint) | *android.graphics.Point* | The ending point of the line segment. |
-
-| Method | Description |
-| ------ | ----------- |
-| [`LineSegment`](#linesegment-1) | The constructor. |
-
-### startPoint
-
-The start point of the line segment.
-
-```java
-Point startPoint;
-```
-
-### endPoint
-
-The end point of the line segment.
-
-```java
-Point endPoint;
-```
-
-### LineSegment
-
-The constructor.
-
-```java
-LineSegment();
-```
diff --git a/programming/android/api-reference/core/basic-structures/quadrilateral-v2.6.1003.md b/programming/android/api-reference/core/basic-structures/quadrilateral-v2.6.1003.md
deleted file mode 100644
index 0a92e2a9..00000000
--- a/programming/android/api-reference/core/basic-structures/quadrilateral-v2.6.1003.md
+++ /dev/null
@@ -1,83 +0,0 @@
----
-layout: default-layout
-title: Quadrilateral - Dynamsoft Core Module Android Edition API Reference
-description: The class Quadrilateral of Dynamsoft Core Module represents a quadrilateral shape in 2D space, which contains an array of four points, representing the vertices of the quadrilateral.
-keywords: quadrilateral, shape, 2D space, Java, Kotlin
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# Quadrilateral
-
-The `Quadrilateral` class represents a quadrilateral shape in 2D space, which contains an array of four points, representing the vertices of the quadrilateral.
-
-## Definition
-
-*Namespace:* com.dynamsoft.core.basic_structures
-
-*Assembly:* DynamsoftCore.aar
-
-```java
-class Quadrilateral
-```
-
-## Methods & Attributes
-
-| Attributes | Type | Description |
-| ---------- | ---- | ----------- |
-| [`points`](#points) | *android.graphics.Point[]* | Four vertexes in a clockwise direction of a quadrilateral. Index 0 represents the left-most vertex. |
-
-| Method | Description |
-| ------ | ----------- |
-| [`contains`](#contains) | Check whether the input point is contained by the quadrilateral. |
-| [`getBoundingRect`](#getboundingrect) | Get the bounding rectangle of the quadrilateral. |
-| [`getArea`](#getarea) | Get the area of the quadrilateral. |
-
-### points
-
-Four vertexes in a clockwise direction of a quadrilateral. Index 0 represents the left-most vertex.
-
-```java
-Point[] points;
-```
-
-### contains
-
-Check whether the input point is contained by the quadrilateral.
-
-```java
-boolean contains(Point point);
-```
-
-**Parameters**
-
-`[in] point`: Input a point.
-
-**Return Value**
-
-A boolean value that indicates whether the point is contained by the quadrilateral.
-
-### getBoundingRect
-
-Get the bounding rectangle of the quadrilateral.
-
-```java
-Rect getBoundingRect();
-```
-
-**Return Value**
-
-The bounding rectangle of the quadrilateral.
-
-### getArea
-
-Get the area of the quadrilateral.
-
-```java
-int getArea();
-```
-
-**Return Value**
-
-The area of the quadrilateral.
diff --git a/programming/android/api-reference/core/enum/captured-result-item-type-v2.6.1003.md b/programming/android/api-reference/core/enum/captured-result-item-type-v2.6.1003.md
deleted file mode 100644
index 1ff5247c..00000000
--- a/programming/android/api-reference/core/enum/captured-result-item-type-v2.6.1003.md
+++ /dev/null
@@ -1,34 +0,0 @@
----
-layout: default-layout
-title: CapturedResultItemType - Dynamsoft Core Enumerations
-description: The enumeration CapturedResultItemType of Dynamsoft Core describes all types of captured result item.
-keywords: Captured result types
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
-breadcrumbText: CapturedResultItemType
-codeAutoHeight: true
----
-
-# Enumeration CapturedResultItemType
-
-`CapturedResultItemType` defines the various categories of items that can be recognized and captured.
-
-```java
-@Retention(RetentionPolicy.CLASS)
-public @interface EnumCapturedResultItemType
-{
- /** The type of the CapturedResultItem is "original image". */
- public static final int CRIT_ORIGINAL_IMAGE = 1;
- /** The type of the CapturedResultItem is "barcode". */
- public static final int CRIT_BARCODE = 2;
- /** The type of the CapturedResultItem is "text line". */
- public static final int CRIT_TEXT_LINE = 4;
- /** The type of the CapturedResultItem is "detected quad". */
- public static final int CRIT_DETECTED_QUAD = 8;
- /** The type of the CapturedResultItem is "normalized image". */
- public static final int CRIT_NORMALIZED_IMAGE = 16;
- /** The type of the CapturedResultItem is "parsed result". */
- public static final int CRIT_PARSED_RESULT = 32;
-}
-```
diff --git a/programming/android/api-reference/core/enum/error-code-v2.6.1003.md b/programming/android/api-reference/core/enum/error-code-v2.6.1003.md
deleted file mode 100644
index caa6769d..00000000
--- a/programming/android/api-reference/core/enum/error-code-v2.6.1003.md
+++ /dev/null
@@ -1,198 +0,0 @@
----
-layout: default-layout
-title: ErrorCode - Dynamsoft Core Enumerations
-description: The enumeration ErrorCode of Dynamsoft Core describes all error codes.
-keywords: Error code
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
-breadcrumbText: ErrorCode
-codeAutoHeight: true
----
-
-# Enumeration ErrorCode
-
-`ErrorCode` enumerates the specific error codes that the SDK may return, providing a systematic way to identify and handle errors encountered during its operation.
-
-```java
-@Retention(RetentionPolicy.CLASS)
-public @interface EnumErrorCode
-{
- /** Successful. */
- public static final int EC_OK = 0;
- /** -10000~-19999: Common error code. */
- /** Unknown error. */
- public static final int EC_UNKNOWN = -10000,
- /**Not enough memory to perform the operation. */
- public static final int EC_NO_MEMORY = -10001,
- /** Null pointer */
- public static final int EC_NULL_POINTER = -10002,
- /** License invalid. */
- public static final int EC_LICENSE_INVALID = -10003,
- /** License expired. */
- public static final int EC_LICENSE_EXPIRED = -10004,
- /** File not found. */
- public static final int EC_FILE_NOT_FOUND = -10005,
- /** The file type is not supported. */
- public static final int EC_FILE_TYPE_NOT_SUPPORTED = -10006,
- /** The BPP (Bits Per Pixel) is not supported. */
- public static final int EC_BPP_NOT_SUPPORTED = -10007,
- /** The index is invalid. */
- public static final int EC_INDEX_INVALID = -10008,
- /** The input region value parameter is invalid. */
- public static final int EC_CUSTOM_REGION_INVALID = -10010,
- /** Failed to read the image. */
- public static final int EC_IMAGE_READ_FAILED = -10012,
- /** Failed to read the TIFF image. */
- public static final int EC_TIFF_READ_FAILED = -10013,
- /** The DIB (Device-Independent Bitmaps) buffer is invalid. */
- public static final int EC_DIB_BUFFER_INVALID = -10018,
- /** Failed to read the PDF image. */
- public static final int EC_PDF_READ_FAILED = -10021,
- /** The PDF DLL is missing. */
- public static final int EC_PDF_DLL_MISSING = -10022,
- /** The page number is invalid. */
- public static final int EC_PAGE_NUMBER_INVALID = -10023,
- /** The custom size is invalid. */
- public static final int EC_CUSTOM_SIZE_INVALID = -10024,
- /** timeout. */
- public static final int EC_TIMEOUT = -10026,
- /** Json parse failed. */
- public static final int EC_JSON_PARSE_FAILED = -10030,
- /** Json type invalid. */
- public static final int EC_JSON_TYPE_INVALID = -10031,
- /** Json key invalid. */
- public static final int EC_JSON_KEY_INVALID = -10032,
- /** Json value invalid. */
- public static final int EC_JSON_VALUE_INVALID = -10033,
- /** Json name key missing. */
- public static final int EC_JSON_NAME_KEY_MISSING = -10034,
- /** The value of the key "Name" is duplicated. */
- public static final int EC_JSON_NAME_VALUE_DUPLICATED = -10035,
- /** Template name invalid. */
- public static final int EC_TEMPLATE_NAME_INVALID = -10036,
- /** The name reference is invalid. */
- public static final int EC_JSON_NAME_REFERENCE_INVALID = -10037,
- /** Parameter value invalid. */
- public static final int EC_PARAMETER_VALUE_INVALID = -10038,
- /** The domain of your current site does not match the domain bound in the current product key. */
- public static final int EC_DOMAIN_NOT_MATCH = -10039,
- /** The license key does not match the license content. */
- public static final int EC_LICENSE_KEY_NOT_MATCH = -10043,
- /** Failed to set mode's argument. */
- public static final int EC_SET_MODE_ARGUMENT_ERROR = -10051,
- /** Failed to get mode's argument. */
- public static final int EC_GET_MODE_ARGUMENT_ERROR = -10055,
- /** The Intermediate Result Types license is invalid. */
- public static final int EC_IRT_LICENSE_INVALID = -10056,
- /** Failed to save file. */
- public static final int EC_FILE_SAVE_FAILED = -10058,
- /** The stage type is invalid. */
- public static final int EC_STAGE_TYPE_INVALID = -10059,
- /** The image orientation is invalid. */
- public static final int EC_IMAGE_ORIENTATION_INVALID = -10060,
- /** Complex tempalte can't be converted to simplified settings. */
- public static final int EC_CONVERT_COMPLEX_TEMPLATE_ERROR = -10061,
- /** Reject function call while capturing in progress.*/
- public static final int EC_CALL_REJECTED_WHEN_CAPTURING = -10062,
- /**The input image source was not found.*/
- public static final int EC_NO_IMAGE_SOURCE = -10063,
- /**Failed to read directory.*/
- public static final int EC_READ_DIRECTORY_FAILED = -10064,
- /**[Name] Module not found.*/
- /**Name : */
- /**DynamsoftBarcodeReader*/
- /**DynamsoftLabelRecognizer*/
- /**DynamsoftDocumentNormalizer*/
- public static final int EC_MODULE_NOT_FOUND = -10065,
- /**The file already exists but overwriting is disabled.*/
- public static final int EC_FILE_ALREADY_EXISTS = -10067,
- /**The file path does not exist but cannot be created, or cannot be created for any other reason.*/
- public static final int EC_CREATE_FILE_FAILED = -10068,
- /**The input ImageData object contains invalid parameter(s).*/
- public static final int EC_IMGAE_DATA_INVALID = -10069,
- /**The size of the input image do not meet the requirements.*/
- public static final int EC_IMAGE_SIZE_NOT_MATCH = -10070,
- /**The pixel format of the input image do not meet the requirements.*/
- public static final int EC_IMAGE_PIXEL_FORMAT_NOT_MATCH = -10071,
- /**The section level result is irreplaceable.*/
- public static final int EC_SECTION_LEVEL_RESULT_IRREPLACEABLE = -10072,
- /**The axis definition is incorrect.*/
- public static final int EC_AXIS_DEFINITION_INCORRECT = -10073,
- /**The result is not replaceable due to type mismatch*/
- public static final int EC_RESULT_TYPE_MISMATCH_IRREPLACEABLE = -10074,
- /**Failed to load the PDF library.*/
- public static final int EC_PDF_LIBRARY_LOAD_FAILED = -10075,
- /*The license is initialized successfully but detected invalid content in your key.*/
- public static final int EC_LICENSE_WARNING = -10076,
- /*One or more unsupported JSON keys were encountered and ignored from the template.*/
- public static final int EC_UNSUPPORTED_JSON_KEY_WARNING = -10077;
- /**Model file is not found*/
- public static final int EC_MODEL_FILE_NOT_FOUND = -10078;
- /**[PDF] No license found.*/
- public static final int EC_PDF_LICENSE_NOT_FOUND = -10079;
- /**The rectangle is invalid.*/
- public static final int EC_RECT_INVALID = -10080;
- /** -20000~-29999: DLS license error code. */
- /** No license. */
- public static final int EC_NO_LICENSE = -20000,
- /** Failed to read or write license buffer. */
- public static final int EC_LICENSE_BUFFER_FAILED = -20002,
- /** Failed to synchronize license info with license server. */
- public static final int EC_LICENSE_SYNC_FAILED = -20003,
- /** Device dose not match with buffer. */
- public static final int EC_DEVICE_NOT_MATCH = -20004,
- /** Failed to bind device. */
- public static final int EC_BIND_DEVICE_FAILED = -20005,
- /** Instance count is over limit. */
- public static final int EC_INSTANCE_COUNT_OVER_LIMIT = -20008,
- /** Trial License */
- public static final int EC_TRIAL_LICENSE = -20010,
- /** -30000~-39999: DBR error code. */
- /** The barcode format is invalid. */
- public static final int EC_BARCODE_FORMAT_INVALID = -30009,
- /** The custom module size is invalid. */
- public static final int EC_CUSTOM_MODULESIZE_INVALID = -30025,
- /*[Barcode Reader] No license found.*/
- public static final int EC_DBR_LICENSE_NOT_FOUND = -30063,
- /** -40000~-49999: DLR error code */
- /**There is a conflict in the layout of TextLineGroup. */
- public static final int EC_TEXT_LINE_GROUP_LAYOUT_CONFLICT = -40101,
- /**There is a conflict in the regex of TextLineGroup. */
- public static final int EC_TEXT_LINE_GROUP_REGEX_CONFLICT = -40102,
- /*[Label Recognizer] No license found.*/
- public static final int EC_DLR_LICENSE_NOT_FOUND = -40103,
- /** -50000~-59999: DDN error code. */
- /**No content has been detected. */
- public static final int EC_CONTENT_NOT_FOUND = -50056,
- /*The quardrilateral is invalid. */
- public static final int EC_QUADRILATERAL_INVALID = -50057,
- /*[Document Normalizer] No license found.*/
- public static final int EC_DDN_LICENSE_NOT_FOUND = -50058,
- /** -60000~-69999: DCE error code. */
- /**-60000~-69999: DCE error code*/
- /** The camera module is not exist. */
- public static final int EC_CAMERA_MODULE_NOT_EXIST = -60003;
- /** The camera id does not exist. */
- public static final int EC_CAMERA_ID_NOT_EXIST = -60006;
- /** The sensor does not exist. */
- public static final int EC_NO_SENSOR = -60045;
- /**-70000~-79999: Panorama error code. */
- /**The panorama license is invalid. */
- public static final int EC_PANORAMA_LICENSE_INVALID = -70060,
- /** -80000~-89999: Reserved error code. */
- /**-90000~-99999: DCP error code. */
- /** The resource path is not exist. */
- public static final int EC_RESOURCE_PATH_NOT_EXIST = -90001,
- /** Failed to load resource. */
- public static final int EC_RESOURCE_LOAD_FAILED = -90002,
- /** The code specification is not found. */
- public static final int EC_CODE_SPECIFICATION_NOT_FOUND = -90003,
- /** The full code string is empty. */
- public static final int EC_FULL_CODE_EMPTY = -90004,
- /** Failed to preprocess the full code string */
- public static final int EC_FULL_CODE_PREPROCESS_FAILED = -90005,
- /*[Code Parser] No license found.*/
- public static final int EC_DCP_LICENSE_NOT_FOUND = -90012
-} ErrorCode;
-```
diff --git a/programming/android/api-reference/core/enum/grayscale-enhancement-mode-v2.6.1003.md b/programming/android/api-reference/core/enum/grayscale-enhancement-mode-v2.6.1003.md
deleted file mode 100644
index 10877807..00000000
--- a/programming/android/api-reference/core/enum/grayscale-enhancement-mode-v2.6.1003.md
+++ /dev/null
@@ -1,34 +0,0 @@
----
-layout: default-layout
-title: GrayscaleEnhancementMode - Dynamsoft Core Enumerations
-description: The enumeration GrayscaleEnhancementMode of Dynamsoft Core describes all available grayscale enhancement modes.
-keywords: Grayscale enhancement modes
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
-breadcrumbText: GrayscaleEnhancementMode
-codeAutoHeight: true
----
-
-# Enumeration GrayscaleEnhancementMode
-
-`GrayscaleEnhancementMode` specifies the method employed to enhance images in grayscale.
-
-```java
-@Retention(RetentionPolicy.CLASS)public @interface EnumGrayscaleEnhancementMode {
- /**Not supported yet. */
- public static final int GEM_AUTO = 1;
- /**Takes the unpreprocessed image for following operations.*/
- public static final int GEM_GENERAL = 2;
- /**Preprocesses the image using the gray equalization algorithm. Check @ref IPM for available argument settings.*/
- public static final int GEM_GRAY_EQUALIZE = 4;
- /**Preprocesses the image using the gray smoothing algorithm. Check @ref IPM for available argument settings.*/
- public static final int GEM_GRAY_SMOOTH = 8;
- /**Preprocesses the image using the sharpening and smoothing algorithm. Check @ref IPM for available argument settings.*/
- public static final int GEM_SHARPEN_SMOOTH = 16;
- /**Reserved setting for image preprocessing mode.*/
- public static final int GEM_REV = -2147483648;
- /**Skips image preprocessing. */
- public static final int GEM_SKIP = 0;
-}
-```
diff --git a/programming/android/api-reference/core/enum/intermediate-result-unit-type-v2.6.1003.md b/programming/android/api-reference/core/enum/intermediate-result-unit-type-v2.6.1003.md
deleted file mode 100644
index 89d134d3..00000000
--- a/programming/android/api-reference/core/enum/intermediate-result-unit-type-v2.6.1003.md
+++ /dev/null
@@ -1,85 +0,0 @@
----
-layout: default-layout
-title: IntermediateResultUnitType - Dynamsoft Core Enumerations
-description: The enumeration IntermediateResultUnitType of Dynamsoft Core describes the type of the intermediate result unit.
-keywords: Intermediate result unit type
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
-breadcrumbText: IntermediateResultUnitType
-codeAutoHeight: true
----
-
-# Enumeration IntermediateResultUnitType
-
-`IntermediateResultUnitType` defines different types of intermediate results generated or expected to be generated during image processing.
-
-```java
-@Retention(RetentionPolicy.CLASS)
-public @interface EnumIntermediateResultUnitType {
- /** No intermediate result. */
- long IRUT_NULL = 0L;
- /** A full-color image. */
- long IRUT_COLOUR_IMAGE = 1L;
- /** A color image that has been scaled down for efficiency. */
- long IRUT_SCALED_DOWN_COLOUR_IMAGE = 1L << 1;
- /** A grayscale image derived from the original input. */
- long IRUT_GRAYSCALE_IMAGE = 1L << 2;
- /** A grayscale image that has undergone transformation. */
- long IRUT_TRANSOFORMED_GRAYSCALE_IMAGE = 1L << 3;
- /** A grayscale image enhanced for further processing. */
- long IRUT_ENHANCED_GRAYSCALE_IMAGE = 1L << 4;
- /** Regions pre-detected as potentially relevant for further analysis. */
- long IRUT_PREDETECTED_REGIONS = 1L << 5;
- /** A binary (black and white) image. */
- long IRUT_BINARY_IMAGE = 1L << 6;
- /** Results from detecting textures within the image. */
- long IRUT_TEXTURE_DETECTION_RESULT = 1L << 7;
- /** A grayscale image with textures removed to enhance subject details like text or barcodes. */
- long IRUT_TEXTURE_REMOVED_GRAYSCALE_IMAGE = 1L << 8;
- /** A binary image with textures removed, useful for clear detection of subjects without background noise. */
- long IRUT_TEXTURE_REMOVED_BINARY_IMAGE = 1L << 9;
- /** Detected contours within the image, which can help in identifying shapes and objects. */
- long IRUT_CONTOURS = 1L << 10;
- /** Detected line segments, useful in structural analysis of the image content. */
- long IRUT_LINE_SEGMENTS = 1L << 11;
- /** Identified text zones, indicating areas with potential textual content. */
- long IRUT_TEXT_ZONES = 1L << 12;
- /** A binary image with text regions removed. */
- long IRUT_TEXT_REMOVED_BINARY_IMAGE = 1L << 13;
- /** Zones identified as potential barcode areas, aiding in focused barcode detection. */
- long IRUT_CANDIDATE_BARCODE_ZONES = 1L << 14;
- /** Barcodes that have been localized but not yet decoded. */
- long IRUT_LOCALIZED_BARCODES = 1L << 15;
- /** Barcode images scaled up for improved readability or decoding accuracy. */
- long IRUT_SCALED_UP_BARCODE_IMAGE = 1L << 16;
- /** Images of barcodes processed to resist deformation and improve decoding success. */
- long IRUT_DEFORMATION_RESISTED_BARCODE_IMAGE = 1L << 17;
- /** Barcode images that have been complemented. */
- long IRUT_COMPLEMENTED_BARCODE_IMAGE = 1L << 18;
- /** Successfully decoded barcodes. */
- long IRUT_DECODED_BARCODES = 1L << 19;
- /** Detected long lines. */
- long IRUT_LONG_LINES = 1L << 20;
- /** Detected corners within the image. */
- long IRUT_CORNERS = 1L << 21;
- /** Candidate edges identified as potential components of quadrilaterals. */
- long IRUT_CANDIDATE_QUAD_EDGES = 1L << 22;
- /** Successfully detected quadrilaterals. */
- long IRUT_DETECTED_QUADS = 1L << 23;
- /** Text lines that have been localized in preparation for recognition. */
- long IRUT_LOCALIZED_TEXT_LINES = 1L << 24;
- /** Successfully recognized text lines. */
- long IRUT_RECOGNIZED_TEXT_LINES = 1L << 25;
- /** Successfully normalized images. */
- long IRUT_NORMALIZED_IMAGES = 1L << 26;
- /** Detected short lines. */
- long IRUT_SHORT_LINES = 1L << 27;
- /** Recognized raw text lines. */
- public static final long IRUT_RAW_TEXT_LINES = 1L << 28;
- /**Detected logic lines.*/
- public static final long IRUT_LOGIC_LINES = 1L << 29;
- /** A mask to select all types of intermediate results. */
- long IRUT_ALL = 0xFFFFFFFFFFFFFFFF;
-}
-```
diff --git a/programming/android/api-reference/core/enum/region-object-element-type-v2.6.1003.md b/programming/android/api-reference/core/enum/region-object-element-type-v2.6.1003.md
deleted file mode 100644
index dde7d121..00000000
--- a/programming/android/api-reference/core/enum/region-object-element-type-v2.6.1003.md
+++ /dev/null
@@ -1,36 +0,0 @@
----
-layout: default-layout
-title: RegionObjectElementType - Dynamsoft Core Enumerations
-description: The enumeration RegionObjectElementType of Dynamsoft Core describes the types of RegionObjectElement.
-keywords: Region object element type
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
-breadcrumbText: RegionObjectElementType
-codeAutoHeight: true
----
-
-# Enumeration RegionObjectElementType
-
-`RegionObjectElementType` specifies the exact subclass type within the `RegionObjectElement` hierarchy. This enumeration facilitates the identification and differentiation of various processed elements in an image.
-
-```java
-@Retention(RetentionPolicy.CLASS)
-public @interface EnumRegionObjectElementType
-{
- /**The type of subclass PredetectedRegionElement.*/
- public static final int ROET_PREDETECTED_REGION = 0;
- /**The type of subclass LocalizedBarcodeElement.*/
- public static final int ROET_LOCALIZED_BARCODE = 1;
- /**The type of subclass DecodedBarcodeElement.*/
- public static final int ROET_DECODED_BARCODE = 2;
- /**The type of subclass LocalizedTextLineElement.*/
- public static final int ROET_LOCALIZED_TEXT_LINE = 3;
- /**The type of subclass RecognizedTextLineElement.*/
- public static final int ROET_RECOGNIZED_TEXT_LINE = 4;
- /**The type of subclass DetectedQuadElement.*/
- public static final int ROET_DETECTED_QUAD = 5;
- /**The type of subclass NormalizedImageElement.*/
- public static final int ROET_NORMALIZED_IMAGE = 6;
-}
-```
diff --git a/programming/android/api-reference/core/enum/section-type-v2.6.1003.md b/programming/android/api-reference/core/enum/section-type-v2.6.1003.md
deleted file mode 100644
index 70a524cf..00000000
--- a/programming/android/api-reference/core/enum/section-type-v2.6.1003.md
+++ /dev/null
@@ -1,38 +0,0 @@
----
-layout: default-layout
-title: SectionType - Dynamsoft Core Enumerations
-description: The enumeration SectionType of Dynamsoft Core describes the section of the algorithm.
-keywords: Section type
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
-breadcrumbText: SectionType
-codeAutoHeight: true
----
-
-# Enumeration SectionType
-
-`SectionType` categorizes the distinct segments within the image processing algorithm, pinpointing the exact phase responsible for generating a specific `IntermediateResult`.
-
-```java
-@Retention(RetentionPolicy.CLASS)
-public @interface EnumSectionType
-{
- /**No section type is specified.*/
- public static final int ST_NULL = 0;
- /**The result is output by "region prediction" section.*/
- public static final int ST_REGION_PREDETECTION = 1;
- /**The result is output by "barcode localization" section.*/
- public static final int ST_BARCODE_LOCALIZATION = 2;
- /**The result is output by "barcode decoding" section.*/
- public static final int ST_BARCODE_DECODING = 3;
- /**The result is output by "text line localization" section.*/
- public static final int ST_TEXT_LINE_LOCALIZATION = 4;
- /**The result is output by "text line recognition" section.*/
- public static final int ST_TEXT_LINE_RECOGNITION = 5;
- /**The result is output by "document detection" section.*/
- public static final int ST_DOCUMENT_DETECTION = 6;
- /**The result is output by "document normalization" section.*/
- public static final int ST_DOCUMENT_NORMALIZATION = 7;
-}
-```
diff --git a/programming/android/api-reference/core/enum/transform-matrix-type-v2.6.1003.md b/programming/android/api-reference/core/enum/transform-matrix-type-v2.6.1003.md
deleted file mode 100644
index 43121aec..00000000
--- a/programming/android/api-reference/core/enum/transform-matrix-type-v2.6.1003.md
+++ /dev/null
@@ -1,27 +0,0 @@
----
-layout: default-layout
-title: TransformMatrixType - Dynamsoft Core Enumerations
-description: The enumeration TransformMatrixType of Dynamsoft Core describes transform matrix types.
-keywords: Target type
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
-breadcrumbText: TransformMatrixType
----
-
-# Enumeration TransformMatrixType
-
-`TransformMatrixType` describes the transform matrix types.
-
-```java
-public @interface EnumTransformMatrixType {
- /**Represents a transformation matrix that converts coordinates from the local image to the original image.*/
- int TMT_LOCAL_TO_ORIGINAL_IMAGE = 0;
- /**Represents a transformation matrix that converts coordinates from the original image to the local image.*/
- int TMT_ORIGINAL_TO_LOCAL_IMAGE = 1;
- /**Represents a transformation matrix that converts coordinates from the rotated image to the original image.*/
- int TMT_ROTATED_TO_ORIGINAL_IMAGE = 2;
- /**Represents a transformation matrix that converts coordinates from the original image to the rotated image.*/
- int TMT_ORIGINAL_TO_ROTATED_IMAGE = 3;
-}
-```
diff --git a/programming/android/api-reference/core/intermediate-results/predetected-region-element-v2.6.1003.md b/programming/android/api-reference/core/intermediate-results/predetected-region-element-v2.6.1003.md
deleted file mode 100644
index 08c369cd..00000000
--- a/programming/android/api-reference/core/intermediate-results/predetected-region-element-v2.6.1003.md
+++ /dev/null
@@ -1,47 +0,0 @@
----
-layout: default-layout
-title: PredetectedRegionElement - Dynamsoft Core Module Android Edition API Reference
-description: The class PredetectedRegionElement of Dynamsoft Core Module represents a pre-detected region element, which is a subclass of RegionObjectElement.
-keywords: pre-detected region element, Java, Kotlin
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# PredetectedRegionElement
-
-The `PredetectedRegionElement` class represents a pre-detected region element, which is a subclass of `RegionObjectElement`.
-
-## Definition
-
-*Namespace:* com.dynamsoft.core.intermediate_results
-
-*Assembly:* DynamsoftCaptureVisionBundle.aar
-
-```java
-class PredetectedRegionElement extends RegionObjectElement
-```
-
-## Methods
-
-| Method | Description |
-| ------ | ----------- |
-| [`getModeName`](#getmodename) | Gets the name of the detection mode used to detect this region element. |
-
-### getModeName
-
-Gets the name of the detection mode used to detect this region element.
-
-```java
-String getModeName()
-```
-
-**Return Value**
-
-The name of the detection mode used to detect this region element. It can be one of the following:
-
-- "RPM_AUTO"
-- "RPM_GENERAL"
-- "RPM_GENERAL_RGB_CONTRAST"
-- "RPM_GENERAL_GRAY_CONTRAST"
-- "RPM_GENERAL_HSV_CONTRAST"
diff --git a/programming/android/api-reference/core/intermediate-results/region-object-element-v2.6.1003.md b/programming/android/api-reference/core/intermediate-results/region-object-element-v2.6.1003.md
deleted file mode 100644
index 919beb8f..00000000
--- a/programming/android/api-reference/core/intermediate-results/region-object-element-v2.6.1003.md
+++ /dev/null
@@ -1,80 +0,0 @@
----
-layout: default-layout
-title: RegionObjectElement - Dynamsoft Core Module Android Edition API Reference
-description: The class RegionObjectElement of Dynamsoft Core Module represents an element of a region object in 2D space, which provides the interface for region object elements.
-keywords: region object element, 2D space, Java, Kotlin
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# RegionObjectElement
-
-The `RegionObjectElement` class represents a basic element of a region object, including its type, location and reference to another element.
-
-## Definition
-
-*Namespace:* com.dynamsoft.core.intermediate_results
-
-*Assembly:* DynamsoftCaptureVisionBundle.aar
-
-```java
-class RegionObjectElement
-```
-
-## Method
-
-| Method | Description |
-| ------ | ----------- |
-| [`getLocation`](#getlocation) | Gets the location of the region object, represented as a [`Quadrilateral`](../basic-structures/quadrilateral.md). |
-| [`setLocation`](#setlocation) | Sets the location of the region object, represented as a [`Quadrilateral`](../basic-structures/quadrilateral.md). |
-| [`getReferencedElement`](#getreferencedelement) | Gets the referenced element that supports the capturing of this element. |
-| [`getRegionObjectElementType`](#getregionobjectelementtype) | The type of the region object element, defined by the enumeration `EnumRegionObjectElementType`. |
-
-### getLocation
-
-Gets the location of the region object, represented as a [`Quadrilateral`](../basic-structures/quadrilateral.md).
-
-```java
-Quadrilateral getLocation();
-```
-
-**Return Value**
-
-The location of the region object, represented as a [`Quadrilateral`](../basic-structures/quadrilateral.md).
-
-### setLocation
-
-Sets the location of the region object, represented as a [`Quadrilateral`](../basic-structures/quadrilateral.md).
-
-```java
-void setLocation(Quadrilateral location);
-```
-
-**Parameters**
-
-`[in] location`: A `Quadrilateral` object that defines the location of the region object.
-
-### getReferencedElement
-
-Gets the referenced element that supports the capturing of this element.
-
-```java
-RegionObjectElement getReferencedElement();
-```
-
-**Return Value**
-
-The referenced element that supports the capturing of this element.
-
-### getRegionObjectElementType
-
-Gets the type of the region object element, defined by the enumeration [`EnumRegionObjectElementType`]({{ site.dcv_enumerations }}core/region-object-element-type.html).
-
-```java
-EnumRegionObjectElementType getType();
-```
-
-**Return Value**
-
-The type of the region object element.
diff --git a/programming/android/api-reference/index-v2.6.1003.md b/programming/android/api-reference/index-v2.6.1003.md
deleted file mode 100644
index d1bc3cc1..00000000
--- a/programming/android/api-reference/index-v2.6.1003.md
+++ /dev/null
@@ -1,103 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Capture Vision Android API Reference - Main Page
-description: This is the main page of Dynamsoft Capture Vision SDK API Reference for Android.
-keywords: api reference, Android
-needAutoGenerateSidebar: true
-noTitleIndex: true
-needGenerateH3Content: true
----
-
-# SDK Overview: Modules and Main APIs
-
-This page provides an overview of the various modules and highlights the most essential APIs that form the backbone of Dynamsoft Capture Vision SDKs.
-
-## Modules Summary
-
-**DynamsoftCaptureVisionBundle** is a bundle package that includes all libraries of Dynamsoft Capture Vision (DCV) architecture. The DCV libraries work together to achieve barcode reading, MRZ recognizing, document scanning and other image processing features. The hierarchical structure diagram below illustrates the various modules of the DCV SDKs (with modules at the top depending on those below).
-
-
-

-
Modules hierarchical of the DCV SDK
-
-
-The table below describes details the functionalities of these modules:
-
-| File | Description |
-|:-----|:------------|
-| `DynamsoftCaptureVisionRouter` (CVR) | The Dynamsoft Capture Vision Router module is the cornerstone of the Dynamsoft Capture Vision (DCV) architecture. It focuses on coordinating batch image processing and provides APIs for setting up image sources and result receivers, configuring workflows with parameters, and controlling processes. |
-| `DynamsoftBarcodeReader`(DBR) | The Dynamsoft Barcode Reader module recognizes and decodes multiple barcode formats such as QR codes, Code 39, Code 128, and Data Matrix, among many others. |
-| `DynamsoftDocumentNormalizer`(DBR) | The Dynamsoft Document Normalizer module extracts structural information from document images, including document boundaries, shadow areas, and text areas. It uses this information to generate normalized document images through processes such as deskewing, shadow removal, and distortion correction. |
-| `DynamsoftLabelRecognizer` (DLR) | The Dynamsoft Label Recognizer module identifies and recognizes text labels such as passport MRZs, ID cards, and VIN numbers. |
-| `DynamsoftCore` (Core) | The Dynamsoft Core module lays the foundation for Dynamsoft SDKs based on the DCV (Dynamsoft Capture Vision) architecture. It encapsulates the basic classes, interfaces, and enumerations shared by these SDKs.|
-| `DynamsoftImageProcessing` (DIP) | The Dynamsoft Image Processing module facilitates digital image processing and supports operations for other modules, including the Barcode Reader, Label Recognizer, and Document Normalizer. |
-| `DynamsoftNeuralNetwork` (DNN) | The Dynamsoft Neural Network module allows SDKs compliant with the DCV (Dynamsoft Capture Vision) architecture to leverage the power of deep learning when processing digital images. |
-| `DynamsoftLicense` (License) | The Dynamsoft License module manages the licensing aspects of Dynamsoft SDKs based on the DCV (Dynamsoft Capture Vision) architecture. |
-| `DynamsoftCameraEnhancer` (DCE) | The Dynamsoft Camera Enhancer (DCE) module controls the camera, transforming it into an image source for the DCV (Dynamsoft Capture Vision) architecture through ISA implementation. It also enhances image quality during acquisition and provides basic viewers for user interaction. |
-| `DynamsoftUtility` (Utility) | The Dynamsoft Utility module defines auxiliary classes, including the ImageManager, and implementations of the CRF (Captured Result Filter) and ISA (Image Source Adapter). These are shared by all Dynamsoft SDKs based on the DCV (Dynamsoft Capture Vision) architecture. |
-| `DynamsoftCodeParser` (DCP) | The Dynamsoft Code Parser module converts data strings, typically encrypted in barcodes and machine-readable zones, into human-readable information. |
-| `DynamsoftCodeParserDedicator` (DCPD) | The Dynamsoft Code Parser Dedicator module provides auxiliary functionality to enhance and extend the capabilities of DCP module. |
-
-## Main APIs
-
-### Capture Vision Router
-
-The main class [`CaptureVisionRouter`]({{ site.dcv_android_api }}capture-vision-router/capture-vision-router.html) acts as the SDK entry point and provides the following essential APIs:
-
-- [Set input]({{ site.dcv_android_api }}capture-vision-router/multiple-file-processing.html#setinput)
-- [Config capture vision settings]({{ site.dcv_android_api }}capture-vision-router/settings.html)
-- [Add result receiver]({{ site.dcv_android_api }}capture-vision-router/multiple-file-processing.html#addresultreceiver)
-- [Start capturing]({{ site.dcv_android_api }}capture-vision-router/multiple-file-processing.html#startcapturing)
-
-### Image Source Adapter
-
-The [`ImageSourceAdapter`]({{ site.dcv_android_api }}core/basic-structures/image-source-adapter.html) class is an abstract class representing an adapter for image sources, providing a framework for fetching, buffering, and managing images from various sources. It serves as the input for the [`CaptureVisionRouter`]({{ site.dcv_android_api }}capture-vision-router/capture-vision-router.html). You can either use the typical implementations of [`ImageSourceAdapter`]({{ site.dcv_android_api }}core/basic-structures/image-source-adapter.html) or implement your own.
-
-Class [`CameraEnhancer`]({{ site.dce_android_api }}primary-api/camera-enhancer.html) is one of the typical implementations of [`ImageSourceAdapter`]({{ site.dcv_android_api }}core/basic-structures/image-source-adapter.html). It is a class that not only implements the video frame obtaining APIs but also enable you to improve the video quality by adjusting the camera settings.
-
-### Captured Result Receiver
-
-Implement the callback methods of [`CapturedResultReceiver`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html) to receive the corresponding results you required. The callbacks are triggered when the processing of an image/vide frame is finished or timeout.
-
-#### Barcode Decoding
-
-Callback methods that are related to barcode decoding:
-
-- [`onDecodedBarcodesReceived`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html#ondecodedbarcodesreceived): The callback of barcode decoding. The result you received in the callback method is a [`DecodedBarcodesResult`]({{ site.dbr_android_api }}decoded-barcodes-result.html) object, which contains all the decoded barcodes from the processed image.
-
-Related APIs:
-
-- [`DecodedBarcodesResult`]({{ site.dbr_android_api }}decoded-barcodes-result.html): All barcodes that decoded from the processed image.
-- [`BarcodeResultItem`]({{ site.dbr_android_api }}barcode-result-item.html): The barcode decoding result of a single barcode.
-
-#### Document Scanning
-
-Callback methods that are related to document scanning:
-
-- [`onDetectedQuadsReceived`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html#ondetectedquadsreceived): The callback of document boundary detection. The result you received in the callback method is a [`DetectedQuadResult`]({{ site.ddn_android_api }}detected-quads-result.html) object, which contains all the detected quads from the processed image.
-- [`onNormalizedImagesReceived`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html#onnormalizedimagesreceived): The callback of image normalization. The result you received in the callback method is a [`NormalizedImagesResult`]({{ site.ddn_android_api }}normalized-images-result.html) object, which contains all the normalized images from the processed image.
-
-Related APIs:
-
-- [`DetectedQuadResult`]({{ site.ddn_android_api }}detected-quads-result.html): All quads that detected from the processed image.
-- [`DetectedQuadResultItem`]({{ site.ddn_android_api }}detected-quad-result-item.html): The boundary detection result of a single document page.
-- [`NormalizedImagesResult`]({{ site.ddn_android_api }}normalized-images-result.html): All normalized images that deskewed from the processed image.
-- [`NormalizedImageResultItem`]({{ site.ddn_android_api }}normalized-image-result-item.html): The deskewing result of a single document page.
-
-#### MRZ Scanning
-
-Callback methods that are related to MRZ scanning:
-
-- [`onParsedResultsReceived`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html#onparsedresultsreceived): The callback of content parsing. The result you received in the callback method is a [`ParsedResult`]({{ site.dcp_android_api }}parsed-result.html) object, which contains all the parsed results from the processed image.
-- [`onRecognizedTextLinesReceived`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html#onrecognizedtextlinesreceived): The callback of text recognition. The result you received in the callback method is a [`RecognizedTextLinesResult`]({{ site.dlr_android_api }}recognized-text-lines-result.html) object, which contains all the original MRZ text of the processed image.
-
-Related APIs:
-
-- [`ParsedResult`]({{ site.dcp_android_api }}parsed-result.html): All parsed results that captured from the processed image.
-- [`ParsedResultItem`]({{ site.dcp_android_api }}parsed-result-item.html): The parsing result of a single parsable content.
-- [`RecognizedTextLinesResult`]({{ site.dlr_android_api }}recognized-text-lines-result.html): All text lines that recognized from the processed image.
-- [`TextLineResultItem`]({{ site.dlr_android_api }}text-line-result-item.html): The text recognition result of a single text line.
-
-### Camera View
-
-[`CameraView`]({{ site.dce_android_api }}auxiliary-api/dcecameraview.html) is a view class that design for visualizing the real time video streaming and the barcode decoding result. If the [`CameraEnhancer`]({{ site.dce_android_api }}primary-api/camera-enhancer.html) is set as the input of your CVR, the decoded barcodes will be highlighted automatically on the [`CameraView`]({{ site.dce_android_api }}auxiliary-api/dcecameraview.html).
diff --git a/programming/android/api-reference/utility/directory-fetcher-v2.2.3000.md b/programming/android/api-reference/utility/directory-fetcher-v2.2.3000.md
deleted file mode 100644
index c600e1da..00000000
--- a/programming/android/api-reference/utility/directory-fetcher-v2.2.3000.md
+++ /dev/null
@@ -1,125 +0,0 @@
----
-layout: default-layout
-title: DirectoryFetcher - Dynamsoft Capture Vision Router Module Android Edition API Reference
-description: The class DirectoryFetcher of Dynamsoft Capture Vision Router Module is a utility class that retrieves a list of files from a specified directory based on certain criteria.
-keywords: directory fetcher, Java, Kotlin
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# DirectoryFetcher
-
-The `DirectoryFetcher` class is a utility class that retrieves a list of files from a specified directory based on certain criteria. It inherits the [`ImageSourceAdapter`]({{ site.dcv_android_api }}core/basic-structures/image-source-adapter.html) class so that you can set it as the input of `CaptureVisionRouter` with the API [`setInput`]({{ site.dcv_android_api }}capture-vision-router/multiple-file-processing.html#setinput).
-
-## Definition
-
-*Namespace:* com.dynamsoft.utility
-
-*Assembly:* DynamsoftUtility.aar
-
-```java
-class DirectoryFetcher extends ImageSourceAdapter
-```
-
-## Methods
-
-| Method | Description |
-| ------ | ----------- |
-| [`setDirectory`]({{ site.dcv_android_api }}core/basic-structures/image-source-adapter.html#setdirectory) | Sets the directory path and filter for the file search. |
-| [`setPages`]({{ site.dcv_android_api }}core/basic-structures/image-source-adapter.html#setpages) | Set the pages to read. |
-| [`DirectoryFetcher`]({{ site.dcv_android_api }}core/basic-structures/image-source-adapter.html#directoryfetcher-1) | The constructor. |
-
-### setDirectory
-
-Sets the directory path and filter for the file search.
-
-```java
-void setDirectory(String directoryPath, String filter, boolean recursive) throws UtilityException;
-```
-
-**Parameters**
-
-`[in] directoryPath`: The directory path.
-
-`[in] filter`: A string that specifies file extensions. It determines which kinds of files to read. e.g "\*.BMP;\*.JPG;\*.GIF".
-
-`[in] recursive`: Specifies whether to load files recursively.
-
-**Exception**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_READ_DIRECTORY_FAILED | -10064 | Failed to read the directory. |
-
-
-
-### setPages
-
-Set the pages to read.
-
-```java
-void setPages(int[] pages) throws UtilityException;
-```
-
-**Parameters**
-
-`pages`: An array that contains all the pages to read.
-
-**Exception**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_FILE_NOT_FOUND | -10005 | File not found. |
-| EC_FILE_TYPE_NOT_SUPPORTED | -10006 | The file type is not supported. |
-| EC_IMAGE_READ_FAILED | -10012 | Failed to read the image. |
-
-### DirectoryFetcher
-
-The constructor.
-
-```java
-DirectoryFetcher()
-```
-
-## Inherited Methods
-
-The following methods are inherited from the [`ImageSourceAdapter`]({{ site.dcv_android_api }}core/basic-structures/image-source-adapter.html) class:
-
-| Method | Description |
-| ------ | ----------- |
-| [`hasNextImageToFetch`]({{ site.dcv_android_api }}core/basic-structures/image-source-adapter.html#hasnextimagetofetch) | Determines whether there are more images left to fetch. |
-| [`setMaxImageCount`]({{ site.dcv_android_api }}core/basic-structures/image-source-adapter.html#setmaximagecount) | Set the maximum capability of the Video Buffer. |
-| [`getMaxImageCount`]({{ site.dcv_android_api }}core/basic-structures/image-source-adapter.html#getmaximagecount) | Get the property defines the maximum capability of the Video Buffer. |
-| [`setBufferOverflowProtectionMode`]({{ site.dcv_android_api }}core/basic-structures/image-source-adapter.html#setbufferoverflowprotectionmode) | Sets a mode that determines the action to take when there is a new incoming image and the buffer is full. You can either block the Video Buffer or push out the oldest image and append a new one. |
-| [`getBufferOverflowProtectionMode`]({{ site.dcv_android_api }}core/basic-structures/image-source-adapter.html#getbufferoverflowprotectionmode) | Get the buffer overflow protection mode. |
-| [`getImageCount`]({{ site.dcv_android_api }}core/basic-structures/image-source-adapter.html#getimagecount) | Get the current image count in the Video Buffer. |
-| [`isBufferEmpty`]({{ site.dcv_android_api }}core/basic-structures/image-source-adapter.html#isbufferempty) | Check whether the Video Buffer is empty. |
-| [`setColourChannelUsageType`]({{ site.dcv_android_api }}core/basic-structures/image-source-adapter.html#setcolourchannelusagetype) | Set the usage type of a color channel in an image. |
-| [`getColourChannelUsageType`]({{ site.dcv_android_api }}core/basic-structures/image-source-adapter.html#getcolourchannelusagetype) | Get the usage type of a color channel in an image. |
-| [`startFetching`]({{ site.dcv_android_api }}core/basic-structures/image-source-adapter.html#startfetching) | Start fetching images from the source to the Video Buffer of ImageSourceAdapter. |
-| [`stopFetching`]({{ site.dcv_android_api }}core/basic-structures/image-source-adapter.html#stopfetching) | Stop fetching images from the source to the Video Buffer of ImageSourceAdapter. |
-| [`getImage`]({{ site.dcv_android_api }}core/basic-structures/image-source-adapter.html#getimage) | Get an image from the Video Buffer. |
-| [`setNextImageToReturn(imageId)`]({{ site.dcv_android_api }}core/basic-structures/image-source-adapter.html#setnextimagetoreturnimageid) | Specify the next image that is returned by method getImage. |
-| [`setNextImageToReturn(imageId,keepInBuffer)`]({{ site.dcv_android_api }}core/basic-structures/image-source-adapter.html#setnextimagetoreturnimageidkeepinbuffer) | Specify the next image that is returned by method getImage. |
-| [`hasImage`]({{ site.dcv_android_api }}core/basic-structures/image-source-adapter.html#hasimage) | Check the availability of the specified image. |
-| [`addImageToBuffer`]({{ site.dcv_android_api }}core/basic-structures/image-source-adapter.html#addimagetobuffer) | Adds an image to the buffer of the adapter. |
-| [`clearBuffer`]({{ site.dcv_android_api }}core/basic-structures/image-source-adapter.html#clearbuffer) | Clears the image buffer. |
-| [`setErrorListener`]({{ site.dcv_android_api }}core/basic-structures/image-source-adapter.html#seterrorlistener) | Clears the image buffer. |
diff --git a/programming/android/api-reference/utility/multi-frame-result-cross-filter-v2.2.3000.md b/programming/android/api-reference/utility/multi-frame-result-cross-filter-v2.2.3000.md
deleted file mode 100644
index d2533dc6..00000000
--- a/programming/android/api-reference/utility/multi-frame-result-cross-filter-v2.2.3000.md
+++ /dev/null
@@ -1,124 +0,0 @@
----
-layout: default-layout
-title: MultiFrameResultCrossFilter - Dynamsoft Capture Vision Router Module Android Edition API Reference
-description: The class MultiFrameResultCrossFilter of Dynamsoft Capture Vision Router Module is responsible for filtering captured results.
-keywords: multi-frame result cross filter, Filter
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# MultiFrameResultCrossFilter
-
-The `MultiFrameResultCrossFilter` class is responsible for filtering captured results.
-
-## Definition
-
-*Namespace:* com.dynamsoft.utility
-
-*Assembly:* DynamsoftUtility.aar
-
-```java
-class MultiFrameResultCrossFilter implements CapturedResultFilter
-```
-
-## Methods
-
-| Method | Description |
-| ------ | ----------- |
-| [`enableResultDeduplication`](#enableresultdeduplication) | Enables or disables the deduplication process for one or multiple specific result item types. |
-| [`enableResultCrossVerification`](#enableresultcrossverification) | Enables or disables the verification of one or multiple specific result item types. |
-| [`setDuplicateForgetTime`](#setduplicateforgettime) | Sets the interval during which duplicates are disregarded for a given result item type. |
-| [`isResultDeduplicationEnabled`](#isresultdeduplicationenabled) | Checks if deduplication is active for a given result item type. |
-| [`isResultCrossVerificationEnabled`](#isresultcrossverificationenabled) | Checks if verification is active for a given result item type. |
-| [`getDuplicateForgetTime`](#getduplicateforgettime) | Gets the interval during which duplicates are disregarded for a given result item type. |
-
-### enableResultDeduplication
-
-Enables or disables the deduplication process for one or multiple specific result item types.
-
-```java
-void enableResultDeduplication(int resultItemTypes, bool enable);
-```
-
-**Parameters**
-
-`[in] type`: Specifies one or multiple specific result item types, which can be defined using [`CapturedResultItemType`]({{ site.dcv_enumerations }}core/captured-result-item-type.html?lang=android).
-
-`[in] enable`: Boolean to toggle deduplication on or off.
-
-### enableResultCrossVerification
-
-Enables or disables the verification of one or multiple specific result item types.
-
-```java
-void enableResultCrossVerification(int resultItemTypes, bool enable);
-```
-
-**Parameters**
-
-`[in] type`: Specifies one or multiple specific result item types, which can be defined using [`CapturedResultItemType`]({{ site.dcv_enumerations }}core/captured-result-item-type.html?lang=android).
-
-`[in] enable`: Boolean to toggle verification on or off.
-
-### setDuplicateForgetTime
-
-Sets the interval during which duplicates are disregarded for a given result item type.
-
-```java
-void setDuplicateForgetTime(int resultItemTypes, int time);
-```
-
-**Parameters**
-
-`[in] type`: Specifies one or multiple specific result item types, which can be defined using [`CapturedResultItemType`]({{ site.dcv_enumerations }}core/captured-result-item-type.html?lang=android).
-
-`[in] time`: Time in milliseconds during which duplicates are disregarded.
-
-### isResultDeduplicationEnabled
-
-Checks if deduplication is active for a given result item type.
-
-```java
-boolean isResultDeduplicationEnabled(CapturedResultItemType type);
-```
-
-**Parameters**
-
-`[in] type`: Specifies the result item type with [`CapturedResultItemType`]({{ site.dcv_enumerations }}core/captured-result-item-type.html?lang=android).
-
-**Return Value**
-
-Boolean indicating the deduplication status for the specified type.
-
-### isResultCrossVerificationEnabled
-
-Checks if verification is active for a given result item type.
-
-```java
-boolean isResultCrossVerificationEnabled(CapturedResultItemType type);
-```
-
-**Parameters**
-
-`[in] type`: Specifies the result item type with [`CapturedResultItemType`]({{ site.dcv_enumerations }}core/captured-result-item-type.html?lang=android).
-
-**Return Value**
-
-Boolean indicating the status of verification for the specified type.
-
-### getDuplicateForgetTime
-
-Gets the interval during which duplicates are disregarded for a given result item type.
-
-```java
-int getDuplicateForgetTime(CapturedResultItemType type);
-```
-
-**Parameters**
-
-`[in] type`: Specifies the result item type with [`CapturedResultItemType`]({{ site.dcv_enumerations }}core/captured-result-item-type.html?lang=android).
-
-**Return Value**
-
-The set interval for the specified item type.
diff --git a/programming/android/release-notes/android-2.md b/programming/android/release-notes/android-2.md
deleted file mode 100644
index 41df1435..00000000
--- a/programming/android/release-notes/android-2.md
+++ /dev/null
@@ -1,329 +0,0 @@
----
-layout: default-layout
-title: Release Notes - DynamsoftCaptureVisionBundle Android Edition
-description: The release notes of DynamsoftCaptureVisionBundle Android Edition.
-keywords: release notes, capture vision bundle, Android, dcv
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# Release Notes - DynamsoftCaptureVisionBundle
-
-## 2.6.1003 (01/23/2025)
-
-### Fixed
-
-- Fixed a security issue by rebuilding the affected libraries with enhanced protection mechanisms.
-
-## 2.6.1002 (01/14/2025)
-
-### Fixed
-
-- Fixed a bug where the coordinate of `DrawingItems` might be offset on the `ImageEditorView`.
-
-## 2.6.1001 (12/16/2024)
-
-### Fixed
-
-- Fixed a bug where the app might be blocked by the method `initLicense`.
-
-## 2.6.1000 (12/03/2024)
-
-### Highlights
-
-- Enhanced document detection delivers more reliable results, particularly for single-document scenarios. Key improvements include:
- - Strengthened detection algorithms for greater accuracy and robustness.
- - Optimized parameter configurations for better adaptability across diverse scenarios.
- - Refined cross-verification rules to ensure more consistent detection outcomes.
-
-### Changelogs
-
-#### New
-
-- Added a new mode, `CICM_EDGE_ENHANCEMENT`, to the `ColourConversionModes` parameter, designed to enhance edge details when converting a color image to grayscale.
-- Introduced the concept of `LogicLines` to enhance the processing and analysis of document structures.
- - Added a new value, `IRUT_LOGIC_LINES`, to the `IntermediateResultUnitType` enumeration.
- - Added a new function `onLogicLinesReceived` to the class `IntermediateResultReceiver` which will be called when logic lines have been received.
- - Added a new class, `LogicLinesUnit`, to represent an intermediate result unit containing logic lines.
-- Added the `getCrossVerificationStatus` function to both the `DetectedQuadResultItem` and `NormalizedImageResultItem` classes, along with a new `EnumCrossVerificationStatus` enumeration, to retrieve the cross-verification status of the result.
-- Added the `getParameterTemplateCount` and `getParameterTemplateName` functions to the `CaptureVisionRouter` class to improve accessibility and usability of templates.
-- Added the `getFieldRawValue` method to the `ParsedResultItem` class to retrieve the raw value of the field.
-
-#### Fixed
-
-- Fixed a bug in `TextZone` caused by the absence of a custom copy constructor, which led to improper memory management with the default copy constructor.
-- Fixed a bug where the `Default` preset template was not used when the default value was passed for the `templateName` parameter.
-- Fixed a potential crash bug during template reading.
-- Fixed a bug in DPM mode where the `isMirrored` value in the `BarcodeResultItem` was not correctly assigned.
-- Fixed a bug where DotCode could not be decoded in certain scenarios.
-- Small fixes and tweaks.
-
-#### Changed
-
-- Updated the parameter configurations for the `DetectDocumentBoundaries_Default` and `DetectAndNormalizeDocument_Default` preset templates to default to single-document mode.
-- Changed default value of `ExpectedDocumentsCount` paramter from 0 to 1 to better support single-document mode.
-- Changed default value of `CornerAngleRange` paramter from [70, 110] to [60, 120] to support a wider range of document capture angles.
-- Modified the return logic for `DetectedQuadResultItem` and `NormalizedImageResultItem` when `ResultCrossVerification` is `enabled`. Previously, only verified results were returned; now, results are returned regardless of verification status, and the results include a `CrossVerificationStatus` to indicate the verification state.
-- Removed the `LineExtractMode` parameter and replaced it with `ShortlineDetectionMode` and `LineAssemblyMode` for more flexible and precise configuration.
-
-## 2.4.2000 (10/11/2024)
-
-### Highlights
-
-- Improved the read rate and the speed of the following barcode formats:
- - EAN13
- - DotCode
-- Added support for decoding add-on codes (also known as Extension Codes) for UPC-A, UPC-E, EAN-8 and EAN-13 codes.
-- Added "Recognize Raw TextLines" stage for recognizing raw text lines.
-- Introduced a feature to track and accumulate recognized barcodes across multiple frames in real-time video, enabling seamless multi-barcode recognition.
-
-### DynamsoftCaptureVisionRouter
-
-#### Improved
-
-- Updated the error handling logic of `capturing` & `startCapturing` methods. The methods will be able to clearly report where the error occurred if the capturing fails due to a licensing issue.
-
-#### New
-
-- Added internal logics for usage count.
-- Added a new callback method [`onRawTextLinesReceived`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/intermediate-result-receiver.html#onrawtextlinesreceived) to the class `IntermediateResultReceiver`.
-
-### DynamsoftCore
-
-#### New
-
-- Added new error codes
- - -10076: The license is initialized successfully but detected invalid content in your key.
- - -30063: [Barcode Reader] No license found.
- - -40103: [Label Recognizer] No license found.
- - -50058: [Document Normalizer] No license found.
- - -90012: [Code Parser] No license found.
-- Added a new enumeration member `IRUT_RAW_TEXT_LINES` to the enumeration [`IntermediateResultUnitType`]({{ site.dcv_android_api }}core/enum/intermediate-result-unit-type.html?lang=android).
-
-#### Fixed
-
-- Fixed a bug where the `CharacterModel` is not correctly loaded under macOS operation system.
-- Small fixes and tweaks.
-
-### DynamsoftLicense
-
-#### Improved
-
-- Updated the error message of `initLicense` method. The method will return more detailed messages when failed to initialize the license. Warnings will be available if license initialization is successful but a part of the license key is invalid.
-
-#### New
-
-- Add a new charge way, `TimeSliceCount`.
-
-#### Fixed
-
-- Changed the maximum length of the `deviceFriendlyName` to 255.
-
-### DynamsoftImageProcessing
-
-#### Fixed
-
-- Fixed a crash bug caused by the usage of RegEx.
-- Small fixes and tweaks.
-
-#### Changed
-
-- Changed the template loading mode. The library will read all template files under the Templates folder where the DLL file is located.
-
-### DynamsoftUtility
-
-#### New
-
-- Added to-the-latest overlapping feature. You can use [`enableLatestOverlapping`]({{ site.dcv_android_api }}utility/multi-frame-result-cross-filter.html#enablelatestoverlapping) method of `MultiFrameResultCrossFilter` class to enable this feature.
-- Added a new class [`ProactiveImageSourceAdapter`]({{ site.dcv_android_api }}utility/proactive-image-source-adapter.html). The class [`DirectoryFetcher`]({{ site.dcv_android_api }}utility/directory-fetcher.html) will extends the class `ProactiveImageSourceAdapter` instead of the class `ImageSourceAdapter`.
-
-#### Fixed
-
-- Fixed a bug where `CaptureVisionRouter.startCapturing` would erroneously halt the fetching process when its status was running, leading to an unnecessary stop and restart of the fetching operation.
-- Fixed a bug where `DirectoryFetcher` would prematurely read an image before verifying if the buffer was full, resulting in potential loss of the image that did not make it into the buffer upon calling `stopFetching`.
-
-### DynamsoftBarcodeReader
-
-#### Improved
-
-- Improved the read rate and the speed of the following barcode formats:
- - EAN13
- - DotCode
-
-#### New
-
-- Added internal logics for usage count.
-- Added support for decoding add-on barcodes.
-- Added new properties to the [`QRCodeDetails`]({{ site.dbr_android_api }}auxiliary-QRCodeDetails.html) class
- - `getDataMaskPattern`
- - `getCodewords`
-
-#### Changed
-
-- Updated the Enumeration number of `EnumBarcodeFormat.BF_ALL` to 0xFFFFFFFEFFFFFFFF.
-- Updated the internal logic of licensing error message reporting.
-
-#### Fixed
-
-- Fixed a bug that might cause `GS1_DATABAR_EXPANDED_STACKED` barcode unread.
-
-### DynamsoftLabelRecognizer
-
-#### New
-
-- Added internal logics for usage count.
-- Added a new parameter [CharSet]({{ site.dcv_parameters_reference }}character-model/char-set.html) to the `CharacterModel` object to include or exclude characters for recognition.
-- Added a new algorithm stage `IRUT_RAW_TEXT_LINES`. Corresponding APIs are added to obtain the intermediate result of this stage.
- - Class [`RawTextLinesUnit`]({{ site.dlr_android_api }}raw-text-lines-unit.html)
- - Class [`RawTextLine`]({{ site.dlr_android_api }}raw-text-line.html)
- - Enumeration [`RawTextLineStatus`]({{ site.dlr_android_api }}enumlabel-recognizer/raw-text-line-status.html?lang=android)
-- Changed the intermediate result altering methods of the class [`RecognizedTextLinesUnit`]({{ site.dlr_android_api }}recognized-text-lines-unit.html).
- - Added method `removeRecognizedTextLine`
- - Added method `addRecognizedTextLine`
- - Added method `setRecognizedTextLine(index,element,matrixToOriginalImage)`
- - Deprecated method `setRecognizedTextLine(element,matrixToOriginalImage)`
-- Added a new method `getRawText` to the class [`RecognizedTextLineELement`]({{ site.dlr_android_api }}recognized-text-line-element.html).
-- Added a new method `getRawText` to the class [`TextLineResultItem`]({{ site.dlr_android_api }}text-line-result-item.html).
-
-#### Fixed
-
-- Fixed a bug where the `CharacterModel` is not correctly loaded under macOS operation system.
-- Fixed a crash bug caused by the usage of RegEx.
-
-### DynamsoftNocumentNormalizer
-
-#### New
-
-- Added a new parameter `MinDocumentAreaRatio` to define the minimum targeting document area. The parameter is available via both the parameter template and the [`SimplifiedDocumentNormalizerSettings`]({{ site.ddn_android_api }}simplified-document-normalizer-settings.html).
-- Added a new parameter `ExpectedDocumentsCount` to define the expected document count for detection. The parameter is available via both the parameter template and the [`SimplifiedDocumentNormalizerSettings`]({{ site.ddn_android_api }}simplified-document-normalizer-settings.html).
-
-#### Changes
-
-- Updated internal logics to to use the latest version of `DynamsoftCore` module.
-
-#### Fixed
-
-- Small fixes and tweaks.
-
-### DynamsoftCodeParser
-
-#### Changed
-
-- Updated the internal logic of licensing error message reporting.
-
-### DynamsoftCodeParserDedicator
-
-#### Fixed
-
-- Fixed a bug where the South African Driver's license might be parsed incorrectly.
-
-## 2.2.3000 (08/21/2024)
-
-### Highlights
-
-- Added confusable character distinguishing: this feature enhances the library’s ability to distinguish between common confusable character sets including {0, o, O}, {1, I, l}, and {5, s, S}, across popular fonts like Arial, Times New Roman, and Verdana, etc.
-- Supported confusable character set customization: leveraging the new caching mechanism in the `CaptureVisionRouter (CVR)` module, the library now enables users to customize confusable character sets to meet the needs of specific scenarios.
-- Introduced the capability for users to influence the image processing process by altering intermediate results. Users can now clone, edit, and substitute intermediate result units within the callback method of each type. Subsequent operations will then proceed based on the updated unit.
-- Introduced a feature for multi-condition filtering across products. Users can now specify filtering criteria for the task results of a [`TargetROIDef`]({{ site.dcv_parameters_reference }}target-roi-def/) by implementing an OutputTaskSetting based on the task results of varying products from descendant `TargetROIDef` objects.
-- Enhanced the [`Offset`]({{ site.dcv_parameters_reference }}target-roi-def/location.html#offset) parameter in `TargetROIDef`. Users now have the capability to meticulously customize components of the coordinate system, including the origin, X-axis, and Y-axis, for precise offset calculation.
-- Introduced a feature for grouping text lines. A text line group consists of spatially adjacent lines of text. Through the [`TextLineSpecification`]({{ site.dcv_parameters_reference }}text-line-specification/) parameters, users can now do two things:
- - Put text lines in groups and also define the spatial relationship between different groups;
- - Specify whether to concatenate text line results within a group, how to do the concatenation and whether to output the concatenated result.
-
-### DynamsoftCaptureVisionRouter
-
-#### New
-
-- Added a new class [`BufferedItemsManager`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/buffered-items-manager.html) to manage the buffered character items.
-- Added a new method [`getBufferedItemsManager`]({{ site.dcv_android_api }}capture-vision-router/buffered-items.html#getbuffereditemsmanager) to get an object of `BufferedItemsManager`.
-
-#### Fixed
-
-- Fixed a bug where the `DynamsoftNeuralNetwork` module failed to load due to a path error.
-
-### DynamsoftCore
-
-- Small fixes and tweaks.
-
-### DynamsoftBarcodeReader
-
-- Added new methods `toJson` & `fromJson` to `SimplifiedBarcodeReaderSettings` class.
-
-### DynamsoftCameraEnhancer
-
-- Added a new constructor of class [`CameraEnhancer`]({{ site.android-api }}camera-enhancer.html).
-- Updated the enumeration value of [`EnumCameraPosition`]({{ site.dce-enums }}camera-position.html?lang=android).
-
-### DynamsoftCodeParser
-
-#### Improved
-
-- Security update for `DynamsoftCodeParser` library.
-
-#### Fixed
-
-- Small fixes and tweaks.
-
-### DynamsoftCodeParserDedicator
-
-#### Improved
-
-- Security update for `DynamsoftCodeParserDedicator` library.
-
-#### Fixed
-
-- Small fixes and tweaks.
-
-### DynamsoftImageProcessing
-
-- Fixed a bug where users would not receive proper error messages when attempting to configure `SimplifiedLabelRecognizerSettings` with an incorrect `CharacterModel`.
-
-### DynamsoftLabelRecognizer
-
-#### Improved
-
-- Improved the speed of `TextLineGroup` detection by optimizing internal logic.
-- Security update for `DynamsoftLabelRecognizer` library and other corresponding libraries.
-- Supported the filter configuration of the characters that are not recognized by the Deep Neural Network via the Filter.txt file.
-- Improved the `CharacterModel` loading mechanism. If a model file is available under the assets folder, the `CharacterModel` will be loaded autometically. Otherwise, it will be downloaded from the server.
-
-#### New
-
-- Added a new class [`BufferedCharacterItemSet`]({{ site.dlr_android_api }}buffered-character-item-set.html) to represent a collection of buffered character items and cluster information.
-- Added a new class [`BufferedCharacterItem`]({{ site.dlr_android_api }}buffered-character-item.html) to represent a basic item of the buffered characters with its image and features information.
-- Added a new class [`CharacterCluster`]({{ site.dlr_android_api }}character-cluster.html) to represent a character cluster generated from the collected buffered character items.
-- Added a new method [`getSpecificationName`]({{ site.dlr_android_api }}text-line-result-item.html#getspecificationname) to the `TextLineResultItem` class to get the name of the [`TextLineSpecificationObject`]({{ site.dcv_parameter }}file/auxiliary/textline-specification.html) that generated this `TextLineResultItem`.
-- Added a new method [`getSpecificationName`]({{ site.dlr_android_api }}recognized-text-line-element.html#getspecificationname) to the `RecognizedTextLineElement` class to get the name of the [`TextLineSpecificationObject`]({{ site.dcv_parameter }}file/auxiliary/textline-specification.html) that generated this `RecognizedTextLineElement`.
-- Added new methods to the [`LocalizedTextLinesUnit`]({{ site.dlr_android_api }}localized-text-lines-unit.html) class to add, set or remove the localized text line elements.
-- Added new methods to the [`RecognizedTextLinesUnit`]({{ site.dlr_android_api }}recognized-text-lines-unit.html) class to add, set or remove the recognized text line elements.
-- Added a new method `setText` to the [`RecognizedTextLineElement`]({{ site.dlr_android_api }}recognized-text-line-element.html) class.
-- Added the following methods to the [`RecognizedTextLinesResult`]({{ site.dlr_android_api }}recognized-text-lines-result.html) class.
- - `retain`
- - `release`
-- Added new constructors to the following classes.
- - [`RecognizedTextLineElement`]({{ site.dlr_android_api }}recognized-text-line-element.html)
- - [`LocalizedTextLineElement`]({{ site.dlr_android_api }}localized-text-line-element.html)
-- Updated the template system
- - Added new [`LabelRecognizerTaskSettings`]({{ site.dcv_parameter }}reference/label-recognizer-task-settings/) parameters.
- - Added `ConfusableCharactersPath` to define the path of the resource files that store the confusable characters' information.
- - Added `ClusterSamplesCountThreshold` to specify the lowest required sample count for clustering.
- - Added new [`TextLineSpecification`]({{ site.dcv_parameter }}reference/text-line-specification/) parameters.
- - Added `ConfusableCharactersCorrection` to define which confusable characters you are going to distinguish. You can also specify the font type of the characters.
- - Added `ExpectedGroupCount` to define the count of `TextLineGroups` that might exist on the image.
-
-### DynamsoftNeuralNetwork
-
-- Separated from the `DynamsoftImageProcessing` module.
-
-### DynamsoftLicense
-
-#### Improved
-
-- Improved the usage count logic of the concurrent license mode.
-- Improved the experience of local cache usage when failing to connect the license server. The renewal of the local cache is optimized as well.
-
-### DynamsoftUtility
-
-#### Fixed
-
-- Small fixes and tweaks.
diff --git a/programming/android/release-notes/index.md b/programming/android/release-notes/index.md
index 75a12129..889a0b25 100644
--- a/programming/android/release-notes/index.md
+++ b/programming/android/release-notes/index.md
@@ -12,9 +12,9 @@ noTitleIndex: true
- [3.0.5000 (07/29/2025)](android-3.html#305000-07292025)
- [3.0.3100 (05/30/2025)](android-3.html#303100-05302025)
- [3.0.3000 (05/15/2025)](android-3.html#303000-05152025)
-- [2.6.1003 (01/23/2025)](android-2.html#261003-01232025)
-- [2.6.1002 (01/14/2025)](android-2.html#261002-01142025)
-- [2.6.1001 (12/16/2024)](android-2.html#261001-12162024)
-- [2.6.1000 (12/03/2024)](android-2.html#261000-12032024)
-- [2.4.2000 (10/11/2024)](android-2.html#242000-10112024)
-- [2.2.3000 (08/21/2024)](android-2.html#223000-08212024)
+- [2.6.1003 (01/23/2025)]({{ site.dcv_android_v2 }}release-notes/android-2.html#261003-01232025)
+- [2.6.1002 (01/14/2025)]({{ site.dcv_android_v2 }}release-notes/android-2.html#261002-01142025)
+- [2.6.1001 (12/16/2024)]({{ site.dcv_android_v2 }}release-notes/android-2.html#261001-12162024)
+- [2.6.1000 (12/03/2024)]({{ site.dcv_android_v2 }}release-notes/android-2.html#261000-12032024)
+- [2.4.2000 (10/11/2024)]({{ site.dcv_android_v2 }}release-notes/android-2.html#242000-10112024)
+- [2.2.3000 (08/21/2024)]({{ site.dcv_android_v2 }}release-notes/android-2.html#223000-08212024)
diff --git a/programming/android/user-guide/mrz-v2.2.3000.md b/programming/android/user-guide/mrz-v2.2.3000.md
deleted file mode 100644
index d8859cce..00000000
--- a/programming/android/user-guide/mrz-v2.2.3000.md
+++ /dev/null
@@ -1,332 +0,0 @@
----
-layout: default-layout
-title: Scan & Parse MRZ - Dynamsoft Capture Vision Android Edition
-description: This page introduce how to scan and parse a MRZ with Dynamsoft Capture Vision Android Edition.
-keywords: Android, MRZ, passport, id card, visa
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# Android User Guide for MRZ Integration
-
-In this guide, you will learn step by step on how to build a MRZ scanner application with Dynamsoft Capture Vision Android SDK.
-
-- [Android User Guide for MRZ Integration](#android-user-guide-for-mrz-integration)
- - [Supported Machine-Readable Travel Document Types](#supported-machine-readable-travel-document-types)
- - [ID (TD1 Size)](#id-td1-size)
- - [ID (TD2 Size)](#id-td2-size)
- - [Passport (TD3 Size)](#passport-td3-size)
- - [Requirements](#requirements)
- - [Add the SDK](#add-the-sdk)
- - [Build Your First Application](#build-your-first-application)
- - [Create a New Project](#create-a-new-project)
- - [Include the Libraries](#include-the-libraries)
- - [Deploy the CharacterModel \& Template](#deploy-the-charactermodel--template)
- - [Initialize License](#initialize-license)
- - [Initialize the Camera Module](#initialize-the-camera-module)
- - [Initialize Capture Vision Router](#initialize-capture-vision-router)
- - [Extract Parsed Results](#extract-parsed-results)
- - [Build and Run the Project](#build-and-run-the-project)
-
-## Supported Machine-Readable Travel Document Types
-
-The Machine Readable Travel Documents (MRTD) standard specified by the International Civil Aviation Organization (ICAO) defines how to encode information for optical character recognition on official travel documents.
-
-Currently, the SDK supports three types of MRTD:
-
-> Note: If you need support for other types of MRTDs, our SDK can be easily customized. Please contact support@dynamsoft.com.
-
-### ID (TD1 Size)
-
-The MRZ (Machine Readable Zone) in TD1 format consists of 3 lines, each containing 30 characters.
-
-
-

-
-
-### ID (TD2 Size)
-
-The MRZ (Machine Readable Zone) in TD2 format consists of 2 lines, with each line containing 36 characters.
-
-
-

-
-
-### Passport (TD3 Size)
-
-The MRZ (Machine Readable Zone) in TD3 format consists of 2 lines, with each line containing 44 characters.
-
-
-

-
-
-## Requirements
-
-- Supported OS: Android 5.0 (API Level 21) or higher.
-- Supported ABI: **armeabi-v7a**, **arm64-v8a**, **x86** and **x86_64**.
-- Development Environment: Android Studio 2022.2.1 or higher.
-
-## Add the SDK
-
-1. Open the file `[App Project Root Path]\app\build.gradle` and add the Maven repository:
-
- ```groovy
- allprojects {
- repositories {
- maven {
- url "https://download2.dynamsoft.com/maven/aar"
- }
- }
- }
- ```
-
-2. Add the references in the dependencies:
-
- ```groovy
- dependencies {
- implementation 'com.dynamsoft:dynamsoftcapturevisionbundle:2.2.3000'
- }
- ```
-
- > Read more about the modules of [dynamsoftcapturevisionbundle](../api-reference/index.md)
-
-3. Click **Sync Now**. After the synchronization is complete, the SDK is added to the project.
-
-## Build Your First Application
-
-In this section, we will explain how to create a `HelloWorld` implementation similar to our simple `MRZScanner` app for reading the MRZ zone from camera video input.
-
->Note:
->
->- Android Studio 2024.1.1 is used here in this guide.
->- You can get similar source code from
-> - MRZScanner Sample(Java)
-
-### Create a New Project
-
-1. Open Android Studio, select **File > New > New Project**.
-
-2. Choose the correct template for your project. In this sample, we use **Empty Views Activity**.
-
-3. When prompted, set your app name to `HelloWorld` and set the **Save** location, **Language**, and **Minimum SDK** (we use 21 here).
- > Note:
- >
- > - With **minSdkVersion** set to 21, your app is compatible with more than 99.6% of devices on the Google Play Store (last update: October 2023).
-
-### Include the Libraries
-
-Add the SDK to your new project. Please read [Add the SDK](#add-the-sdk) section for more details.
-
-### Deploy the CharacterModel & Template
-
-A `CharacterModel` is a model file trained using deep neural networks for character recognition. A `Template` file in the Dynamsoft Capture Vision SDK offers a customizable configuration for optimizing barcode recognition, label recognition, document normalization, and bytes parsing settings. This enables users to tailor the capture process to their specific needs. For MRZ scanning, you have to include the required the MRZ `CharacterModel` and `Template` in your project first.
-
-1. Right-click on the **app** folder, click **New->Directory** and select the **src\main\assets** to create an assets folder. Under the **assets** folder create two new folders, **CharacterModel** and **Templates**.
-
-2. Copy the **MRZ.data** to the **CharacterModel** folder.
-
-3. Copy the **MRZScanner.json** to the **Templates** folder.
-
-### Initialize License
-
-1. Initialize the license in the file `MainActivity.java`.
-
- ```java
- import com.dynamsoft.license.LicenseManager;
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- if (savedInstanceState == null) {
- LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", this, (isSuccess, error) -> {
- error.printStackTrace();
- });
- }
- }
- }
- ```
-
- >Note:
- >
- >- The license string here grants a time-limited free trial which requires network connection to work.
- >- You can request for a 30-day trial license via the Trial License link.
-
-### Initialize the Camera Module
-
-1. In the Project window, open **app > res > layout > `activity_main.xml`** and create a DCE camera view section under the root node.
-
- ```xml
-
- ```
-
-2. Import the Dynamsoft Camera Enhancer module, initialize the camera view, and bind to the created `CameraEnhancer` instance in the `MainActivity.java` file.
-
- ```java
- import com.dynamsoft.dce.CameraView;
- import com.dynamsoft.dce.CameraEnhancer;
- import com.dynamsoft.dce.utils.PermissionUtil;
- public class MainActivity extends AppCompatActivity {
- CameraEnhancer mCamera;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- // Add camera view for previewing video.
- PermissionUtil.requestCameraPermission(this);
- CameraView cameraView = findViewById(R.id.camera_view);
- mCamera = new CameraEnhancer(cameraView, this);
- }
- }
- ```
-
-### Initialize Capture Vision Router
-
-1. Import and initialize the `CaptureVisionRouter` and set the previously created `CameraEnhancer` instance as its input.
-
- ```java
- import com.dynamsoft.cvr.CaptureVisionRouter;
- import com.dynamsoft.cvr.CaptureVisionRouterException;
- public class MainActivity extends AppCompatActivity {
- ...
- private CaptureVisionRouter mRouter;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- mRouter = new CaptureVisionRouter(this);
- try {
- mRouter.setInput(mCamera);
- } catch (CaptureVisionRouterException e) {
- throw new RuntimeException(e);
- }
- }
- }
- ```
-
-2. Create a `CapturedResultReceiver` and register with the `CaptureVisionRouter` instance to get the result of MRZ parsing.
-
- ```java
- import com.dynamsoft.core.basic_structures.CapturedResultReceiver;
- import com.dynamsoft.dlr.RecognizedTextLinesResult;
- import com.dynamsoft.dcp.ParsedResult;
- ...
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- mRouter.addResultReceiver(new CapturedResultReceiver() {
- @Override
- public void onParsedResultsReceived(@NonNull ParsedResult result)
- {
- }
- });
- }
- }
- ```
-
-3. Initialize settings via a MRZ scanning template.
-
- ````java
- try {
- mRouter.initSettingsFromFile("MRZScanner.json");
- } catch (CaptureVisionRouterException e) {
- throw new RuntimeException(e);
- }
- ```
-
-4. Override `MainActivity.onResume` and `MainActivity.onPause` functions to start/stop video MRZ scanning. After scanning starts, the SDK will automatically recognize and parse the text in the MRZ area from the video frame, and send the parsed MRZ result to the callback function.
-
- ```java
- import com.dynamsoft.dce.CameraEnhancerException;
- public class MainActivity extends AppCompatActivity {
- ...
- @Override
- public void onResume() {
- super.onResume();
- // Start video MRZ reading
- try {
- mCamera.open();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- mRouter.startCapturing("ReadPassportAndId", new CompletionListener() {
- @Override
- public void onSuccess() {}
- @Override
- public void onFailure(int errorCode, String errorString) {
- runOnUiThread(() -> showDialog("Error", String.format(Locale.getDefault(), "ErrorCode: %d %nErrorMessage: %s", errorCode, errorString)));
- }
- });
- }
- @Override
- public void onPause() {
- super.onPause();
- // Stop video MRZ reading
- try {
- mCamera.close();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- mRouter.stopCapturing();
- }
- }
- ```
-
-### Extract Parsed Results
-
-```java
-import com.dynamsoft.dcp.ParsedResultItem;
-...
-@Override
-public void onParsedResultsReceived(@NonNull ParsedResult result) {
- if (!succeed) {
- onParsedResultReceived(result);
- }
-}
-...
-private void onParsedResultReceived(ParsedResult result) {
- if (result.getItems() == null) {
- return;
- }
- // ParsedResult contains an array of ParsedResultItem, which stores the parse fields and values.
- // If the library failed to parse the content, the array length will be 0.
- if (result.getItems().length == 0) {
- // Do something when the library fails to parse the content.
- } else {
- // The assembleString method is implemented below. It gets all parse fields and assemble them into a string.
- String labelText = assembleString(result.getItems()[0]);
- if (labelText != null) {
- // Do something to display the result.
- }else {
- // Do something when the library fails to parse the content.
- }
- }
-}
-// This method is an example for how to extract the parsed information from a ParsedResultItem.
-private String assembleString(ParsedResultItem item) {
- HashMap entry = item.getParsedFields();
- String number = entry.get("passportNumber") == null ? entry.get("documentNumber") : entry.get("passportNumber");
- return "Document Type: " + item.getCodeType() + "\n" +
- "Document Number: " + number + "\n" +
- "Surname: " + entry.get("primaryIdentifier") + "\n" +
- "Given name: " + entry.get("secondaryIdentifier") + "\n" +
- "Gender: " + entry.get("sex") + "\n" +
- "Issuing State: " + entry.get("issuingState") + "\n" +
- "Nationality: " + entry.get("nationality") + "\n" +
- "Date of Birth(YY-MM-DD): " + entry.get("dateOfBirth") + "\n" +
- "Date of Expiry(YY-MM-DD): " + entry.get("dateOfExpiry") + "\n";
-}
-```
-
-### Build and Run the Project
-
-1. Select the device that you want to run your app on from the target device drop-down menu in the toolbar.
-
-2. Click the **Run app** button, then Android Studio installs your app on the connected device and launches it.
-
-You can also download the similar source code of all the steps above:
-
-- MRZScanner Sample(Java)
diff --git a/programming/android/user-guide/mrz-v2.4.2000.md b/programming/android/user-guide/mrz-v2.4.2000.md
deleted file mode 100644
index 69a9edc0..00000000
--- a/programming/android/user-guide/mrz-v2.4.2000.md
+++ /dev/null
@@ -1,318 +0,0 @@
----
-layout: default-layout
-title: Scan & Parse MRZ - Dynamsoft Capture Vision Android Edition
-description: This page introduce how to scan and parse a MRZ with Dynamsoft Capture Vision Android Edition.
-keywords: Android, MRZ, passport, id card, visa
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# Android User Guide for MRZ Integration
-
-In this guide, you will learn step by step on how to build a MRZ scanner application with Dynamsoft Capture Vision Android SDK.
-
-- [Android User Guide for MRZ Integration](#android-user-guide-for-mrz-integration)
- - [Supported Machine-Readable Travel Document Types](#supported-machine-readable-travel-document-types)
- - [ID (TD1 Size)](#id-td1-size)
- - [ID (TD2 Size)](#id-td2-size)
- - [Passport (TD3 Size)](#passport-td3-size)
- - [Requirements](#requirements)
- - [Add the SDK](#add-the-sdk)
- - [Build Your First Application](#build-your-first-application)
- - [Create a New Project](#create-a-new-project)
- - [Include the Libraries](#include-the-libraries)
- - [Initialize License](#initialize-license)
- - [Initialize the Camera Module](#initialize-the-camera-module)
- - [Initialize Capture Vision Router](#initialize-capture-vision-router)
- - [Extract Parsed Results](#extract-parsed-results)
- - [Build and Run the Project](#build-and-run-the-project)
-
-## Supported Machine-Readable Travel Document Types
-
-The Machine Readable Travel Documents (MRTD) standard specified by the International Civil Aviation Organization (ICAO) defines how to encode information for optical character recognition on official travel documents.
-
-Currently, the SDK supports three types of MRTD:
-
-> Note: If you need support for other types of MRTDs, our SDK can be easily customized. Please contact support@dynamsoft.com.
-
-### ID (TD1 Size)
-
-The MRZ (Machine Readable Zone) in TD1 format consists of 3 lines, each containing 30 characters.
-
-
-

-
-
-### ID (TD2 Size)
-
-The MRZ (Machine Readable Zone) in TD2 format consists of 2 lines, with each line containing 36 characters.
-
-
-

-
-
-### Passport (TD3 Size)
-
-The MRZ (Machine Readable Zone) in TD3 format consists of 2 lines, with each line containing 44 characters.
-
-
-

-
-
-## Requirements
-
-- Supported OS: Android 5.0 (API Level 21) or higher.
-- Supported ABI: **armeabi-v7a**, **arm64-v8a**, **x86** and **x86_64**.
-- Development Environment: Android Studio 2022.2.1 or higher.
-
-## Add the SDK
-
-1. Open the file `[App Project Root Path]\app\build.gradle` and add the Maven repository:
-
- ```groovy
- allprojects {
- repositories {
- maven {
- url "https://download2.dynamsoft.com/maven/aar"
- }
- }
- }
- ```
-
-2. Add the references in the dependencies:
-
- ```groovy
- dependencies {
- implementation 'com.dynamsoft:dynamsoftcapturevisionbundle:2.4.2000'
- implementation 'com.dynamsoft:dynamsoftmrz:3.4.20'
- }
- ```
-
- > Read more about the modules of [dynamsoftcapturevisionbundle](../api-reference/index.md)
-
-3. Click **Sync Now**. After the synchronization is complete, the SDK is added to the project.
-
-## Build Your First Application
-
-In this section, we will explain how to create a `HelloWorld` implementation similar to our simple `MRZScanner` app for reading the MRZ zone from camera video input.
-
->Note:
->
->- Android Studio 2024.1.1 is used here in this guide.
->- You can get similar source code from
-> - MRZScanner Sample(Java)
-
-### Create a New Project
-
-1. Open Android Studio, select **File > New > New Project**.
-
-2. Choose the correct template for your project. In this sample, we use **Empty Views Activity**.
-
-3. When prompted, set your app name to `HelloWorld` and set the **Save** location, **Language**, and **Minimum SDK** (we use 21 here).
- > Note:
- >
- > - With **minSdkVersion** set to 21, your app is compatible with more than 99.6% of devices on the Google Play Store (last update: October 2023).
-
-### Include the Libraries
-
-Add the SDK to your new project. Please read [Add the SDK](#add-the-sdk) section for more details.
-
-### Initialize License
-
-1. Initialize the license in the file `MainActivity.java`.
-
- ```java
- import com.dynamsoft.license.LicenseManager;
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- if (savedInstanceState == null) {
- LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", this, (isSuccess, error) -> {
- error.printStackTrace();
- });
- }
- }
- }
- ```
-
- >Note:
- >
- >- The license string here grants a time-limited free trial which requires network connection to work.
- >- You can request for a 30-day trial license via the Trial License link.
-
-### Initialize the Camera Module
-
-1. In the Project window, open **app > res > layout > `activity_main.xml`** and create a DCE camera view section under the root node.
-
- ```xml
-
- ```
-
-2. Import the Dynamsoft Camera Enhancer module, initialize the camera view, and bind to the created `CameraEnhancer` instance in the `MainActivity.java` file.
-
- ```java
- import com.dynamsoft.dce.CameraView;
- import com.dynamsoft.dce.CameraEnhancer;
- import com.dynamsoft.dce.utils.PermissionUtil;
- public class MainActivity extends AppCompatActivity {
- CameraEnhancer mCamera;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- // Add camera view for previewing video.
- PermissionUtil.requestCameraPermission(this);
- CameraView cameraView = findViewById(R.id.camera_view);
- mCamera = new CameraEnhancer(cameraView, this);
- }
- }
- ```
-
-### Initialize Capture Vision Router
-
-1. Import and initialize the `CaptureVisionRouter` and set the previously created `CameraEnhancer` instance as its input.
-
- ```java
- import com.dynamsoft.cvr.CaptureVisionRouter;
- import com.dynamsoft.cvr.CaptureVisionRouterException;
- public class MainActivity extends AppCompatActivity {
- ...
- private CaptureVisionRouter mRouter;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- mRouter = new CaptureVisionRouter(this);
- try {
- mRouter.setInput(mCamera);
- } catch (CaptureVisionRouterException e) {
- throw new RuntimeException(e);
- }
- }
- }
- ```
-
-2. Create a `CapturedResultReceiver` and register with the `CaptureVisionRouter` instance to get the result of MRZ parsing.
-
- ```java
- import com.dynamsoft.core.basic_structures.CapturedResultReceiver;
- import com.dynamsoft.dlr.RecognizedTextLinesResult;
- import com.dynamsoft.dcp.ParsedResult;
- ...
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- mRouter.addResultReceiver(new CapturedResultReceiver() {
- @Override
- public void onParsedResultsReceived(@NonNull ParsedResult result)
- {
- }
- });
- }
- }
- ```
-
-3. Override `MainActivity.onResume` and `MainActivity.onPause` functions to start/stop video MRZ scanning. After scanning starts, the SDK will automatically recognize and parse the text in the MRZ area from the video frame, and send the parsed MRZ result to the callback function.
-
- ```java
- import com.dynamsoft.dce.CameraEnhancerException;
- public class MainActivity extends AppCompatActivity {
- ...
- @Override
- public void onResume() {
- super.onResume();
- // Start video MRZ reading
- try {
- mCamera.open();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- mRouter.startCapturing("ReadPassportAndId", new CompletionListener() {
- @Override
- public void onSuccess() {}
- @Override
- public void onFailure(int errorCode, String errorString) {
- runOnUiThread(() -> showDialog("Error", String.format(Locale.getDefault(), "ErrorCode: %d %nErrorMessage: %s", errorCode, errorString)));
- }
- });
- }
- @Override
- public void onPause() {
- super.onPause();
- // Stop video MRZ reading
- try {
- mCamera.close();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- mRouter.stopCapturing();
- }
- }
- ```
-
->Note:
->
->- When using `startCapturing`, set the template to "ReadPassportAndId" to capture both Passports and ID cards.
->- If you only need to capture Passports, set the template to "ReadPassport" when calling `startCapturing`.
->- To capture only ID cards, set the template to "ReadId" during `startCapturing`.
-
-### Extract Parsed Results
-
-```java
-import com.dynamsoft.dcp.ParsedResultItem;
-...
-@Override
-public void onParsedResultsReceived(@NonNull ParsedResult result) {
- if (!succeed) {
- onParsedResultReceived(result);
- }
-}
-...
-private void onParsedResultReceived(ParsedResult result) {
- if (result.getItems() == null) {
- return;
- }
- // ParsedResult contains an array of ParsedResultItem, which stores the parse fields and values.
- // If the library failed to parse the content, the array length will be 0.
- if (result.getItems().length == 0) {
- // Do something when the library fails to parse the content.
- } else {
- // The assembleString method is implemented below. It gets all parse fields and assemble them into a string.
- String labelText = assembleString(result.getItems()[0]);
- if (labelText != null) {
- // Do something to display the result.
- }else {
- // Do something when the library fails to parse the content.
- }
- }
-}
-// This method is an example for how to extract the parsed information from a ParsedResultItem.
-private String assembleString(ParsedResultItem item) {
- HashMap entry = item.getParsedFields();
- String number = entry.get("passportNumber") == null ? entry.get("documentNumber") : entry.get("passportNumber");
- return "Document Type: " + item.getCodeType() + "\n" +
- "Document Number: " + number + "\n" +
- "Surname: " + entry.get("primaryIdentifier") + "\n" +
- "Given name: " + entry.get("secondaryIdentifier") + "\n" +
- "Gender: " + entry.get("sex") + "\n" +
- "Issuing State: " + entry.get("issuingState") + "\n" +
- "Nationality: " + entry.get("nationality") + "\n" +
- "Date of Birth(YY-MM-DD): " + entry.get("dateOfBirth") + "\n" +
- "Date of Expiry(YY-MM-DD): " + entry.get("dateOfExpiry") + "\n";
-}
-```
-
-### Build and Run the Project
-
-1. Select the device that you want to run your app on from the target device drop-down menu in the toolbar.
-
-2. Click the **Run app** button, then Android Studio installs your app on the connected device and launches it.
-
-You can also download the similar source code of all the steps above:
-
-- MRZScanner Sample(Java)
diff --git a/programming/android/user-guide/mrz-v2.6.1000.md b/programming/android/user-guide/mrz-v2.6.1000.md
deleted file mode 100644
index 3887ef7a..00000000
--- a/programming/android/user-guide/mrz-v2.6.1000.md
+++ /dev/null
@@ -1,329 +0,0 @@
----
-layout: default-layout
-title: Scan & Parse MRZ - Dynamsoft Capture Vision Android Edition
-description: This page introduce how to scan and parse a MRZ with Dynamsoft Capture Vision Android Edition.
-keywords: Android, MRZ, passport, id card, visa
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# Android User Guide for MRZ Integration
-
-In this guide, you will learn step by step on how to build a MRZ scanner application with Dynamsoft Capture Vision Android SDK.
-
-- [Android User Guide for MRZ Integration](#android-user-guide-for-mrz-integration)
- - [Supported Machine-Readable Travel Document Types](#supported-machine-readable-travel-document-types)
- - [ID (TD1 Size)](#id-td1-size)
- - [ID (TD2 Size)](#id-td2-size)
- - [Passport (TD3 Size)](#passport-td3-size)
- - [Requirements](#requirements)
- - [Add the SDK](#add-the-sdk)
- - [Build Your First Application](#build-your-first-application)
- - [Create a New Project](#create-a-new-project)
- - [Include the Libraries](#include-the-libraries)
- - [Initialize License](#initialize-license)
- - [Initialize the Camera Module](#initialize-the-camera-module)
- - [Initialize Capture Vision Router](#initialize-capture-vision-router)
- - [Extract Parsed Results](#extract-parsed-results)
- - [Build and Run the Project](#build-and-run-the-project)
-
-## Supported Machine-Readable Travel Document Types
-
-The Machine Readable Travel Documents (MRTD) standard specified by the International Civil Aviation Organization (ICAO) defines how to encode information for optical character recognition on official travel documents.
-
-Currently, the SDK supports three types of MRTD:
-
-> Note: If you need support for other types of MRTDs, our SDK can be easily customized. Please contact support@dynamsoft.com.
-
-### ID (TD1 Size)
-
-The MRZ (Machine Readable Zone) in TD1 format consists of 3 lines, each containing 30 characters.
-
-
-

-
-
-### ID (TD2 Size)
-
-The MRZ (Machine Readable Zone) in TD2 format consists of 2 lines, with each line containing 36 characters.
-
-
-

-
-
-### Passport (TD3 Size)
-
-The MRZ (Machine Readable Zone) in TD3 format consists of 2 lines, with each line containing 44 characters.
-
-
-

-
-
-## Requirements
-
-- Supported OS: Android 5.0 (API Level 21) or higher.
-- Supported ABI: **armeabi-v7a**, **arm64-v8a**, **x86** and **x86_64**.
-- Development Environment: Android Studio 2022.2.1 or higher.
-
-## Add the SDK
-
-1. Open the file `[App Project Root Path]\app\build.gradle` and add the Maven repository:
-
- ```groovy
- allprojects {
- repositories {
- maven {
- url "https://download2.dynamsoft.com/maven/aar"
- }
- }
- }
- ```
-
-2. Add the references in the dependencies:
-
- ```groovy
- dependencies {
- implementation 'com.dynamsoft:dynamsoftcapturevisionbundle:2.6.1000'
- implementation 'com.dynamsoft:dynamsoftmrz:3.4.20'
- }
- ```
-
- > Read more about the modules of [dynamsoftcapturevisionbundle](../api-reference/index.md)
-
-3. Click **Sync Now**. After the synchronization is complete, the SDK is added to the project.
-
-## Build Your First Application
-
-In this section, we will explain how to create a `HelloWorld` implementation similar to our simple `MRZScanner` app for reading the MRZ zone from camera video input.
-
->Note:
->
->- Android Studio 2024.1.1 is used here in this guide.
->- You can get similar source code from
-> - MRZScanner Sample(Java)
-
-### Create a New Project
-
-1. Open Android Studio, select **File > New > New Project**.
-
-2. Choose the correct template for your project. In this sample, we use **Empty Views Activity**.
-
-3. When prompted, set your app name to `HelloWorld` and set the **Save** location, **Language**, and **Minimum SDK** (we use 21 here).
- > Note:
- >
- > - With **minSdkVersion** set to 21, your app is compatible with more than 99.6% of devices on the Google Play Store (last update: October 2023).
-
-### Include the Libraries
-
-Add the SDK to your new project. Please read [Add the SDK](#add-the-sdk) section for more details.
-
-### Initialize License
-
-1. Initialize the license in the file `MainActivity.java`.
-
- ```java
- import com.dynamsoft.license.LicenseManager;
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- if (savedInstanceState == null) {
- LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", this, (isSuccess, error) -> {
- error.printStackTrace();
- });
- }
- }
- }
- ```
-
- >Note:
- >
- >- The license string here grants a time-limited free trial which requires network connection to work.
- >- You can request for a 30-day trial license via the Trial License link.
-
-### Initialize the Camera Module
-
-1. In the Project window, open **app > res > layout > `activity_main.xml`** and create a DCE camera view section under the root node.
-
- ```xml
-
- ```
-
-2. Import the Dynamsoft Camera Enhancer module, initialize the camera view, and bind to the created `CameraEnhancer` instance in the `MainActivity.java` file.
-
- ```java
- import com.dynamsoft.dce.CameraView;
- import com.dynamsoft.dce.CameraEnhancer;
- import com.dynamsoft.dce.utils.PermissionUtil;
- public class MainActivity extends AppCompatActivity {
- CameraEnhancer mCamera;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- // Add camera view for previewing video.
- PermissionUtil.requestCameraPermission(this);
- CameraView cameraView = findViewById(R.id.camera_view);
- mCamera = new CameraEnhancer(cameraView, this);
- }
- }
- ```
-
-### Initialize Capture Vision Router
-
-1. Import and initialize the `CaptureVisionRouter` and set the previously created `CameraEnhancer` instance as its input.
-
- ```java
- import com.dynamsoft.cvr.CaptureVisionRouter;
- import com.dynamsoft.cvr.CaptureVisionRouterException;
- public class MainActivity extends AppCompatActivity {
- ...
- private CaptureVisionRouter mRouter;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- mRouter = new CaptureVisionRouter(this);
- try {
- mRouter.setInput(mCamera);
- } catch (CaptureVisionRouterException e) {
- throw new RuntimeException(e);
- }
- }
- }
- ```
-
-2. Create a `CapturedResultReceiver` and register with the `CaptureVisionRouter` instance to get the result of MRZ parsing.
-
- ```java
- import com.dynamsoft.core.basic_structures.CapturedResultReceiver;
- import com.dynamsoft.dlr.RecognizedTextLinesResult;
- import com.dynamsoft.dcp.ParsedResult;
- ...
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- mRouter.addResultReceiver(new CapturedResultReceiver() {
- @Override
- public void onParsedResultsReceived(@NonNull ParsedResult result)
- {
- }
- });
- }
- }
- ```
-
-3. Override `MainActivity.onResume` and `MainActivity.onPause` functions to start/stop video MRZ scanning. After scanning starts, the SDK will automatically recognize and parse the text in the MRZ area from the video frame, and send the parsed MRZ result to the callback function.
-
- ```java
- import com.dynamsoft.dce.CameraEnhancerException;
- public class MainActivity extends AppCompatActivity {
- ...
- @Override
- public void onResume() {
- super.onResume();
- // Start video MRZ reading
- try {
- mCamera.open();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- mRouter.startCapturing("ReadPassportAndId", new CompletionListener() {
- @Override
- public void onSuccess() {}
- @Override
- public void onFailure(int errorCode, String errorString) {
- runOnUiThread(() -> showDialog("Error", String.format(Locale.getDefault(), "ErrorCode: %d %nErrorMessage: %s", errorCode, errorString)));
- }
- });
- }
- @Override
- public void onPause() {
- super.onPause();
- // Stop video MRZ reading
- try {
- mCamera.close();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- mRouter.stopCapturing();
- }
- private void showDialog(String title, String message) {
- if (mAlertDialog == null) {
- // Restart the capture when the dialog is closed
- mAlertDialog = new AlertDialog.Builder(this).setCancelable(true).setPositiveButton("OK", null)
- .setOnDismissListener(dialog -> mRouter.startCapturing("", null))
- .create();
- }
- mAlertDialog.setTitle(title);
- mAlertDialog.setMessage(message);
- mAlertDialog.show();
- }
- }
- ```
-
->Note:
->
->- When using `startCapturing`, set the template to "ReadPassportAndId" to capture both Passports and ID cards.
->- If you only need to capture Passports, set the template to "ReadPassport" when calling `startCapturing`.
->- To capture only ID cards, set the template to "ReadId" during `startCapturing`.
-
-### Extract Parsed Results
-
-```java
-import com.dynamsoft.dcp.ParsedResultItem;
-...
-@Override
-public void onParsedResultsReceived(@NonNull ParsedResult result) {
- if (!succeed) {
- onParsedResultReceived(result);
- }
-}
-...
-private void onParsedResultReceived(ParsedResult result) {
- if (result.getItems() == null) {
- return;
- }
- // ParsedResult contains an array of ParsedResultItem, which stores the parse fields and values.
- // If the library failed to parse the content, the array length will be 0.
- if (result.getItems().length == 0) {
- // Do something when the library fails to parse the content.
- } else {
- // The assembleString method is implemented below. It gets all parse fields and assemble them into a string.
- String labelText = assembleString(result.getItems()[0]);
- if (labelText != null) {
- // Do something to display the result.
- }else {
- // Do something when the library fails to parse the content.
- }
- }
-}
-// This method is an example for how to extract the parsed information from a ParsedResultItem.
-private String assembleString(ParsedResultItem item) {
- HashMap entry = item.getParsedFields();
- String number = entry.get("passportNumber") == null ? entry.get("documentNumber") : entry.get("passportNumber");
- return "Document Type: " + item.getCodeType() + "\n" +
- "Document Number: " + number + "\n" +
- "Surname: " + entry.get("primaryIdentifier") + "\n" +
- "Given name: " + entry.get("secondaryIdentifier") + "\n" +
- "Gender: " + entry.get("sex") + "\n" +
- "Issuing State: " + entry.get("issuingState") + "\n" +
- "Nationality: " + item.getFieldRawValue("nationality") + "\n" +
- "Date of Birth(YY-MM-DD): " + entry.get("dateOfBirth") + "\n" +
- "Date of Expiry(YY-MM-DD): " + entry.get("dateOfExpiry") + "\n";
-}
-```
-
-### Build and Run the Project
-
-1. Select the device that you want to run your app on from the target device drop-down menu in the toolbar.
-
-2. Click the **Run app** button, then Android Studio installs your app on the connected device and launches it.
-
-You can also download the similar source code of all the steps above:
-
-- MRZScanner Sample(Java)
diff --git a/programming/android/user-guide/mrz-v2.6.1001.md b/programming/android/user-guide/mrz-v2.6.1001.md
deleted file mode 100644
index 5764a66c..00000000
--- a/programming/android/user-guide/mrz-v2.6.1001.md
+++ /dev/null
@@ -1,329 +0,0 @@
----
-layout: default-layout
-title: Scan & Parse MRZ - Dynamsoft Capture Vision Android Edition
-description: This page introduce how to scan and parse a MRZ with Dynamsoft Capture Vision Android Edition.
-keywords: Android, MRZ, passport, id card, visa
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# Android User Guide for MRZ Integration
-
-In this guide, you will learn step by step on how to build a MRZ scanner application with Dynamsoft Capture Vision Android SDK.
-
-- [Android User Guide for MRZ Integration](#android-user-guide-for-mrz-integration)
- - [Supported Machine-Readable Travel Document Types](#supported-machine-readable-travel-document-types)
- - [ID (TD1 Size)](#id-td1-size)
- - [ID (TD2 Size)](#id-td2-size)
- - [Passport (TD3 Size)](#passport-td3-size)
- - [Requirements](#requirements)
- - [Add the SDK](#add-the-sdk)
- - [Build Your First Application](#build-your-first-application)
- - [Create a New Project](#create-a-new-project)
- - [Include the Libraries](#include-the-libraries)
- - [Initialize License](#initialize-license)
- - [Initialize the Camera Module](#initialize-the-camera-module)
- - [Initialize Capture Vision Router](#initialize-capture-vision-router)
- - [Extract Parsed Results](#extract-parsed-results)
- - [Build and Run the Project](#build-and-run-the-project)
-
-## Supported Machine-Readable Travel Document Types
-
-The Machine Readable Travel Documents (MRTD) standard specified by the International Civil Aviation Organization (ICAO) defines how to encode information for optical character recognition on official travel documents.
-
-Currently, the SDK supports three types of MRTD:
-
-> Note: If you need support for other types of MRTDs, our SDK can be easily customized. Please contact support@dynamsoft.com.
-
-### ID (TD1 Size)
-
-The MRZ (Machine Readable Zone) in TD1 format consists of 3 lines, each containing 30 characters.
-
-
-

-
-
-### ID (TD2 Size)
-
-The MRZ (Machine Readable Zone) in TD2 format consists of 2 lines, with each line containing 36 characters.
-
-
-

-
-
-### Passport (TD3 Size)
-
-The MRZ (Machine Readable Zone) in TD3 format consists of 2 lines, with each line containing 44 characters.
-
-
-

-
-
-## Requirements
-
-- Supported OS: Android 5.0 (API Level 21) or higher.
-- Supported ABI: **armeabi-v7a**, **arm64-v8a**, **x86** and **x86_64**.
-- Development Environment: Android Studio 2022.2.1 or higher.
-
-## Add the SDK
-
-1. Open the file `[App Project Root Path]\app\build.gradle` and add the Maven repository:
-
- ```groovy
- allprojects {
- repositories {
- maven {
- url "https://download2.dynamsoft.com/maven/aar"
- }
- }
- }
- ```
-
-2. Add the references in the dependencies:
-
- ```groovy
- dependencies {
- implementation 'com.dynamsoft:dynamsoftcapturevisionbundle:2.6.1001'
- implementation 'com.dynamsoft:dynamsoftmrz:3.4.20'
- }
- ```
-
- > Read more about the modules of [dynamsoftcapturevisionbundle](../api-reference/index.md)
-
-3. Click **Sync Now**. After the synchronization is complete, the SDK is added to the project.
-
-## Build Your First Application
-
-In this section, we will explain how to create a `HelloWorld` implementation similar to our simple `MRZScanner` app for reading the MRZ zone from camera video input.
-
->Note:
->
->- Android Studio 2024.1.1 is used here in this guide.
->- You can get similar source code from
-> - MRZScanner Sample(Java)
-
-### Create a New Project
-
-1. Open Android Studio, select **File > New > New Project**.
-
-2. Choose the correct template for your project. In this sample, we use **Empty Views Activity**.
-
-3. When prompted, set your app name to `HelloWorld` and set the **Save** location, **Language**, and **Minimum SDK** (we use 21 here).
- > Note:
- >
- > - With **minSdkVersion** set to 21, your app is compatible with more than 99.6% of devices on the Google Play Store (last update: October 2023).
-
-### Include the Libraries
-
-Add the SDK to your new project. Please read [Add the SDK](#add-the-sdk) section for more details.
-
-### Initialize License
-
-1. Initialize the license in the file `MainActivity.java`.
-
- ```java
- import com.dynamsoft.license.LicenseManager;
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- if (savedInstanceState == null) {
- LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", this, (isSuccess, error) -> {
- error.printStackTrace();
- });
- }
- }
- }
- ```
-
- >Note:
- >
- >- The license string here grants a time-limited free trial which requires network connection to work.
- >- You can request for a 30-day trial license via the Trial License link.
-
-### Initialize the Camera Module
-
-1. In the Project window, open **app > res > layout > `activity_main.xml`** and create a DCE camera view section under the root node.
-
- ```xml
-
- ```
-
-2. Import the Dynamsoft Camera Enhancer module, initialize the camera view, and bind to the created `CameraEnhancer` instance in the `MainActivity.java` file.
-
- ```java
- import com.dynamsoft.dce.CameraView;
- import com.dynamsoft.dce.CameraEnhancer;
- import com.dynamsoft.dce.utils.PermissionUtil;
- public class MainActivity extends AppCompatActivity {
- CameraEnhancer mCamera;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- // Add camera view for previewing video.
- PermissionUtil.requestCameraPermission(this);
- CameraView cameraView = findViewById(R.id.camera_view);
- mCamera = new CameraEnhancer(cameraView, this);
- }
- }
- ```
-
-### Initialize Capture Vision Router
-
-1. Import and initialize the `CaptureVisionRouter` and set the previously created `CameraEnhancer` instance as its input.
-
- ```java
- import com.dynamsoft.cvr.CaptureVisionRouter;
- import com.dynamsoft.cvr.CaptureVisionRouterException;
- public class MainActivity extends AppCompatActivity {
- ...
- private CaptureVisionRouter mRouter;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- mRouter = new CaptureVisionRouter(this);
- try {
- mRouter.setInput(mCamera);
- } catch (CaptureVisionRouterException e) {
- throw new RuntimeException(e);
- }
- }
- }
- ```
-
-2. Create a `CapturedResultReceiver` and register with the `CaptureVisionRouter` instance to get the result of MRZ parsing.
-
- ```java
- import com.dynamsoft.core.basic_structures.CapturedResultReceiver;
- import com.dynamsoft.dlr.RecognizedTextLinesResult;
- import com.dynamsoft.dcp.ParsedResult;
- ...
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- mRouter.addResultReceiver(new CapturedResultReceiver() {
- @Override
- public void onParsedResultsReceived(@NonNull ParsedResult result)
- {
- }
- });
- }
- }
- ```
-
-3. Override `MainActivity.onResume` and `MainActivity.onPause` functions to start/stop video MRZ scanning. After scanning starts, the SDK will automatically recognize and parse the text in the MRZ area from the video frame, and send the parsed MRZ result to the callback function.
-
- ```java
- import com.dynamsoft.dce.CameraEnhancerException;
- public class MainActivity extends AppCompatActivity {
- ...
- @Override
- public void onResume() {
- super.onResume();
- // Start video MRZ reading
- try {
- mCamera.open();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- mRouter.startCapturing("ReadPassportAndId", new CompletionListener() {
- @Override
- public void onSuccess() {}
- @Override
- public void onFailure(int errorCode, String errorString) {
- runOnUiThread(() -> showDialog("Error", String.format(Locale.getDefault(), "ErrorCode: %d %nErrorMessage: %s", errorCode, errorString)));
- }
- });
- }
- @Override
- public void onPause() {
- super.onPause();
- // Stop video MRZ reading
- try {
- mCamera.close();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- mRouter.stopCapturing();
- }
- private void showDialog(String title, String message) {
- if (mAlertDialog == null) {
- // Restart the capture when the dialog is closed
- mAlertDialog = new AlertDialog.Builder(this).setCancelable(true).setPositiveButton("OK", null)
- .setOnDismissListener(dialog -> mRouter.startCapturing("", null))
- .create();
- }
- mAlertDialog.setTitle(title);
- mAlertDialog.setMessage(message);
- mAlertDialog.show();
- }
- }
- ```
-
->Note:
->
->- When using `startCapturing`, set the template to "ReadPassportAndId" to capture both Passports and ID cards.
->- If you only need to capture Passports, set the template to "ReadPassport" when calling `startCapturing`.
->- To capture only ID cards, set the template to "ReadId" during `startCapturing`.
-
-### Extract Parsed Results
-
-```java
-import com.dynamsoft.dcp.ParsedResultItem;
-...
-@Override
-public void onParsedResultsReceived(@NonNull ParsedResult result) {
- if (!succeed) {
- onParsedResultReceived(result);
- }
-}
-...
-private void onParsedResultReceived(ParsedResult result) {
- if (result.getItems() == null) {
- return;
- }
- // ParsedResult contains an array of ParsedResultItem, which stores the parse fields and values.
- // If the library failed to parse the content, the array length will be 0.
- if (result.getItems().length == 0) {
- // Do something when the library fails to parse the content.
- } else {
- // The assembleString method is implemented below. It gets all parse fields and assemble them into a string.
- String labelText = assembleString(result.getItems()[0]);
- if (labelText != null) {
- // Do something to display the result.
- }else {
- // Do something when the library fails to parse the content.
- }
- }
-}
-// This method is an example for how to extract the parsed information from a ParsedResultItem.
-private String assembleString(ParsedResultItem item) {
- HashMap entry = item.getParsedFields();
- String number = entry.get("passportNumber") == null ? entry.get("documentNumber") : entry.get("passportNumber");
- return "Document Type: " + item.getCodeType() + "\n" +
- "Document Number: " + number + "\n" +
- "Surname: " + entry.get("primaryIdentifier") + "\n" +
- "Given name: " + entry.get("secondaryIdentifier") + "\n" +
- "Gender: " + entry.get("sex") + "\n" +
- "Issuing State: " + entry.get("issuingState") + "\n" +
- "Nationality: " + item.getFieldRawValue("nationality") + "\n" +
- "Date of Birth(YY-MM-DD): " + entry.get("dateOfBirth") + "\n" +
- "Date of Expiry(YY-MM-DD): " + entry.get("dateOfExpiry") + "\n";
-}
-```
-
-### Build and Run the Project
-
-1. Select the device that you want to run your app on from the target device drop-down menu in the toolbar.
-
-2. Click the **Run app** button, then Android Studio installs your app on the connected device and launches it.
-
-You can also download the similar source code of all the steps above:
-
-- MRZScanner Sample(Java)
diff --git a/programming/android/user-guide/mrz-v2.6.1002.md b/programming/android/user-guide/mrz-v2.6.1002.md
deleted file mode 100644
index aff70248..00000000
--- a/programming/android/user-guide/mrz-v2.6.1002.md
+++ /dev/null
@@ -1,329 +0,0 @@
----
-layout: default-layout
-title: Scan & Parse MRZ - Dynamsoft Capture Vision Android Edition
-description: This page introduce how to scan and parse a MRZ with Dynamsoft Capture Vision Android Edition.
-keywords: Android, MRZ, passport, id card, visa
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# Android User Guide for MRZ Integration
-
-In this guide, you will learn step by step on how to build a MRZ scanner application with Dynamsoft Capture Vision Android SDK.
-
-- [Android User Guide for MRZ Integration](#android-user-guide-for-mrz-integration)
- - [Supported Machine-Readable Travel Document Types](#supported-machine-readable-travel-document-types)
- - [ID (TD1 Size)](#id-td1-size)
- - [ID (TD2 Size)](#id-td2-size)
- - [Passport (TD3 Size)](#passport-td3-size)
- - [Requirements](#requirements)
- - [Add the SDK](#add-the-sdk)
- - [Build Your First Application](#build-your-first-application)
- - [Create a New Project](#create-a-new-project)
- - [Include the Libraries](#include-the-libraries)
- - [Initialize License](#initialize-license)
- - [Initialize the Camera Module](#initialize-the-camera-module)
- - [Initialize Capture Vision Router](#initialize-capture-vision-router)
- - [Extract Parsed Results](#extract-parsed-results)
- - [Build and Run the Project](#build-and-run-the-project)
-
-## Supported Machine-Readable Travel Document Types
-
-The Machine Readable Travel Documents (MRTD) standard specified by the International Civil Aviation Organization (ICAO) defines how to encode information for optical character recognition on official travel documents.
-
-Currently, the SDK supports three types of MRTD:
-
-> Note: If you need support for other types of MRTDs, our SDK can be easily customized. Please contact support@dynamsoft.com.
-
-### ID (TD1 Size)
-
-The MRZ (Machine Readable Zone) in TD1 format consists of 3 lines, each containing 30 characters.
-
-
-

-
-
-### ID (TD2 Size)
-
-The MRZ (Machine Readable Zone) in TD2 format consists of 2 lines, with each line containing 36 characters.
-
-
-

-
-
-### Passport (TD3 Size)
-
-The MRZ (Machine Readable Zone) in TD3 format consists of 2 lines, with each line containing 44 characters.
-
-
-

-
-
-## Requirements
-
-- Supported OS: Android 5.0 (API Level 21) or higher.
-- Supported ABI: **armeabi-v7a**, **arm64-v8a**, **x86** and **x86_64**.
-- Development Environment: Android Studio 2022.2.1 or higher.
-
-## Add the SDK
-
-1. Open the file `[App Project Root Path]\app\build.gradle` and add the Maven repository:
-
- ```groovy
- allprojects {
- repositories {
- maven {
- url "https://download2.dynamsoft.com/maven/aar"
- }
- }
- }
- ```
-
-2. Add the references in the dependencies:
-
- ```groovy
- dependencies {
- implementation 'com.dynamsoft:dynamsoftcapturevisionbundle:2.6.1002'
- implementation 'com.dynamsoft:dynamsoftmrz:3.4.20'
- }
- ```
-
- > Read more about the modules of [dynamsoftcapturevisionbundle](../api-reference/index.md)
-
-3. Click **Sync Now**. After the synchronization is complete, the SDK is added to the project.
-
-## Build Your First Application
-
-In this section, we will explain how to create a `HelloWorld` implementation similar to our simple `MRZScanner` app for reading the MRZ zone from camera video input.
-
->Note:
->
->- Android Studio 2024.1.1 is used here in this guide.
->- You can get similar source code from
-> - MRZScanner Sample(Java)
-
-### Create a New Project
-
-1. Open Android Studio, select **File > New > New Project**.
-
-2. Choose the correct template for your project. In this sample, we use **Empty Views Activity**.
-
-3. When prompted, set your app name to `HelloWorld` and set the **Save** location, **Language**, and **Minimum SDK** (we use 21 here).
- > Note:
- >
- > - With **minSdkVersion** set to 21, your app is compatible with more than 99.6% of devices on the Google Play Store (last update: October 2023).
-
-### Include the Libraries
-
-Add the SDK to your new project. Please read [Add the SDK](#add-the-sdk) section for more details.
-
-### Initialize License
-
-1. Initialize the license in the file `MainActivity.java`.
-
- ```java
- import com.dynamsoft.license.LicenseManager;
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- if (savedInstanceState == null) {
- LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", this, (isSuccess, error) -> {
- error.printStackTrace();
- });
- }
- }
- }
- ```
-
- >Note:
- >
- >- The license string here grants a time-limited free trial which requires network connection to work.
- >- You can request for a 30-day trial license via the Trial License link.
-
-### Initialize the Camera Module
-
-1. In the Project window, open **app > res > layout > `activity_main.xml`** and create a DCE camera view section under the root node.
-
- ```xml
-
- ```
-
-2. Import the Dynamsoft Camera Enhancer module, initialize the camera view, and bind to the created `CameraEnhancer` instance in the `MainActivity.java` file.
-
- ```java
- import com.dynamsoft.dce.CameraView;
- import com.dynamsoft.dce.CameraEnhancer;
- import com.dynamsoft.dce.utils.PermissionUtil;
- public class MainActivity extends AppCompatActivity {
- CameraEnhancer mCamera;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- // Add camera view for previewing video.
- PermissionUtil.requestCameraPermission(this);
- CameraView cameraView = findViewById(R.id.camera_view);
- mCamera = new CameraEnhancer(cameraView, this);
- }
- }
- ```
-
-### Initialize Capture Vision Router
-
-1. Import and initialize the `CaptureVisionRouter` and set the previously created `CameraEnhancer` instance as its input.
-
- ```java
- import com.dynamsoft.cvr.CaptureVisionRouter;
- import com.dynamsoft.cvr.CaptureVisionRouterException;
- public class MainActivity extends AppCompatActivity {
- ...
- private CaptureVisionRouter mRouter;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- mRouter = new CaptureVisionRouter(this);
- try {
- mRouter.setInput(mCamera);
- } catch (CaptureVisionRouterException e) {
- throw new RuntimeException(e);
- }
- }
- }
- ```
-
-2. Create a `CapturedResultReceiver` and register with the `CaptureVisionRouter` instance to get the result of MRZ parsing.
-
- ```java
- import com.dynamsoft.core.basic_structures.CapturedResultReceiver;
- import com.dynamsoft.dlr.RecognizedTextLinesResult;
- import com.dynamsoft.dcp.ParsedResult;
- ...
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- mRouter.addResultReceiver(new CapturedResultReceiver() {
- @Override
- public void onParsedResultsReceived(@NonNull ParsedResult result)
- {
- }
- });
- }
- }
- ```
-
-3. Override `MainActivity.onResume` and `MainActivity.onPause` functions to start/stop video MRZ scanning. After scanning starts, the SDK will automatically recognize and parse the text in the MRZ area from the video frame, and send the parsed MRZ result to the callback function.
-
- ```java
- import com.dynamsoft.dce.CameraEnhancerException;
- public class MainActivity extends AppCompatActivity {
- ...
- @Override
- public void onResume() {
- super.onResume();
- // Start video MRZ reading
- try {
- mCamera.open();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- mRouter.startCapturing("ReadPassportAndId", new CompletionListener() {
- @Override
- public void onSuccess() {}
- @Override
- public void onFailure(int errorCode, String errorString) {
- runOnUiThread(() -> showDialog("Error", String.format(Locale.getDefault(), "ErrorCode: %d %nErrorMessage: %s", errorCode, errorString)));
- }
- });
- }
- @Override
- public void onPause() {
- super.onPause();
- // Stop video MRZ reading
- try {
- mCamera.close();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- mRouter.stopCapturing();
- }
- private void showDialog(String title, String message) {
- if (mAlertDialog == null) {
- // Restart the capture when the dialog is closed
- mAlertDialog = new AlertDialog.Builder(this).setCancelable(true).setPositiveButton("OK", null)
- .setOnDismissListener(dialog -> mRouter.startCapturing("", null))
- .create();
- }
- mAlertDialog.setTitle(title);
- mAlertDialog.setMessage(message);
- mAlertDialog.show();
- }
- }
- ```
-
->Note:
->
->- When using `startCapturing`, set the template to "ReadPassportAndId" to capture both Passports and ID cards.
->- If you only need to capture Passports, set the template to "ReadPassport" when calling `startCapturing`.
->- To capture only ID cards, set the template to "ReadId" during `startCapturing`.
-
-### Extract Parsed Results
-
-```java
-import com.dynamsoft.dcp.ParsedResultItem;
-...
-@Override
-public void onParsedResultsReceived(@NonNull ParsedResult result) {
- if (!succeed) {
- onParsedResultReceived(result);
- }
-}
-...
-private void onParsedResultReceived(ParsedResult result) {
- if (result.getItems() == null) {
- return;
- }
- // ParsedResult contains an array of ParsedResultItem, which stores the parse fields and values.
- // If the library failed to parse the content, the array length will be 0.
- if (result.getItems().length == 0) {
- // Do something when the library fails to parse the content.
- } else {
- // The assembleString method is implemented below. It gets all parse fields and assemble them into a string.
- String labelText = assembleString(result.getItems()[0]);
- if (labelText != null) {
- // Do something to display the result.
- }else {
- // Do something when the library fails to parse the content.
- }
- }
-}
-// This method is an example for how to extract the parsed information from a ParsedResultItem.
-private String assembleString(ParsedResultItem item) {
- HashMap entry = item.getParsedFields();
- String number = entry.get("passportNumber") == null ? entry.get("documentNumber") : entry.get("passportNumber");
- return "Document Type: " + item.getCodeType() + "\n" +
- "Document Number: " + number + "\n" +
- "Surname: " + entry.get("primaryIdentifier") + "\n" +
- "Given name: " + entry.get("secondaryIdentifier") + "\n" +
- "Gender: " + entry.get("sex") + "\n" +
- "Issuing State: " + entry.get("issuingState") + "\n" +
- "Nationality: " + item.getFieldRawValue("nationality") + "\n" +
- "Date of Birth(YY-MM-DD): " + entry.get("dateOfBirth") + "\n" +
- "Date of Expiry(YY-MM-DD): " + entry.get("dateOfExpiry") + "\n";
-}
-```
-
-### Build and Run the Project
-
-1. Select the device that you want to run your app on from the target device drop-down menu in the toolbar.
-
-2. Click the **Run app** button, then Android Studio installs your app on the connected device and launches it.
-
-You can also download the similar source code of all the steps above:
-
-- MRZScanner Sample(Java)
diff --git a/programming/android/user-guide/mrz-v2.6.1003.md b/programming/android/user-guide/mrz-v2.6.1003.md
deleted file mode 100644
index d6775fad..00000000
--- a/programming/android/user-guide/mrz-v2.6.1003.md
+++ /dev/null
@@ -1,331 +0,0 @@
----
-layout: default-layout
-title: Scan & Parse MRZ - Dynamsoft Capture Vision Android Edition
-description: This page introduce how to scan and parse a MRZ with Dynamsoft Capture Vision Android Edition.
-keywords: Android, MRZ, passport, id card, visa
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# Android User Guide for MRZ Integration
-
-In this guide, you will learn step by step on how to build a MRZ scanner application with Dynamsoft Capture Vision Android SDK.
-
-> This is the guide for developing a full customizable MRZ scanning application. If you'd like to start with a Ready-to-Use component, you can read [MRZScanner documentation](/mrz-scanner/docs/mobile/programming/android/user-guide/index.html){:target="_blank"} instead.
-
-- [Android User Guide for MRZ Integration](#android-user-guide-for-mrz-integration)
- - [Supported Machine-Readable Travel Document Types](#supported-machine-readable-travel-document-types)
- - [ID (TD1 Size)](#id-td1-size)
- - [ID (TD2 Size)](#id-td2-size)
- - [Passport (TD3 Size)](#passport-td3-size)
- - [Requirements](#requirements)
- - [Add the SDK](#add-the-sdk)
- - [Build Your First Application](#build-your-first-application)
- - [Create a New Project](#create-a-new-project)
- - [Include the Libraries](#include-the-libraries)
- - [Initialize License](#initialize-license)
- - [Initialize the Camera Module](#initialize-the-camera-module)
- - [Initialize Capture Vision Router](#initialize-capture-vision-router)
- - [Extract Parsed Results](#extract-parsed-results)
- - [Build and Run the Project](#build-and-run-the-project)
-
-## Supported Machine-Readable Travel Document Types
-
-The Machine Readable Travel Documents (MRTD) standard specified by the International Civil Aviation Organization (ICAO) defines how to encode information for optical character recognition on official travel documents.
-
-Currently, the SDK supports three types of MRTD:
-
-> Note: If you need support for other types of MRTDs, our SDK can be easily customized. Please contact support@dynamsoft.com.
-
-### ID (TD1 Size)
-
-The MRZ (Machine Readable Zone) in TD1 format consists of 3 lines, each containing 30 characters.
-
-
-

-
-
-### ID (TD2 Size)
-
-The MRZ (Machine Readable Zone) in TD2 format consists of 2 lines, with each line containing 36 characters.
-
-
-

-
-
-### Passport (TD3 Size)
-
-The MRZ (Machine Readable Zone) in TD3 format consists of 2 lines, with each line containing 44 characters.
-
-
-

-
-
-## Requirements
-
-- Supported OS: Android 5.0 (API Level 21) or higher.
-- Supported ABI: **armeabi-v7a**, **arm64-v8a**, **x86** and **x86_64**.
-- Development Environment: Android Studio 2022.2.1 or higher.
-
-## Add the SDK
-
-1. Open the file `[App Project Root Path]\app\build.gradle` and add the Maven repository:
-
- ```groovy
- allprojects {
- repositories {
- maven {
- url "https://download2.dynamsoft.com/maven/aar"
- }
- }
- }
- ```
-
-2. Add the references in the dependencies:
-
- ```groovy
- dependencies {
- implementation 'com.dynamsoft:dynamsoftcapturevisionbundle:2.6.1003'
- implementation 'com.dynamsoft:dynamsoftmrz:3.4.20'
- }
- ```
-
- > Read more about the modules of [dynamsoftcapturevisionbundle](../api-reference/index.md)
-
-3. Click **Sync Now**. After the synchronization is complete, the SDK is added to the project.
-
-## Build Your First Application
-
-In this section, we will explain how to create a `HelloWorld` implementation similar to our simple `MRZScanner` app for reading the MRZ zone from camera video input.
-
->Note:
->
->- Android Studio 2024.1.1 is used here in this guide.
->- You can get similar source code from
-> - MRZScanner Sample(Java)
-
-### Create a New Project
-
-1. Open Android Studio, select **File > New > New Project**.
-
-2. Choose the correct template for your project. In this sample, we use **Empty Views Activity**.
-
-3. When prompted, set your app name to `HelloWorld` and set the **Save** location, **Language**, and **Minimum SDK** (we use 21 here).
- > Note:
- >
- > - With **minSdkVersion** set to 21, your app is compatible with more than 99.6% of devices on the Google Play Store (last update: October 2023).
-
-### Include the Libraries
-
-Add the SDK to your new project. Please read [Add the SDK](#add-the-sdk) section for more details.
-
-### Initialize License
-
-1. Initialize the license in the file `MainActivity.java`.
-
- ```java
- import com.dynamsoft.license.LicenseManager;
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- if (savedInstanceState == null) {
- LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", this, (isSuccess, error) -> {
- error.printStackTrace();
- });
- }
- }
- }
- ```
-
- >Note:
- >
- >- The license string here grants a time-limited free trial which requires network connection to work.
- >- You can request for a 30-day trial license via the Trial License link.
-
-### Initialize the Camera Module
-
-1. In the Project window, open **app > res > layout > `activity_main.xml`** and create a DCE camera view section under the root node.
-
- ```xml
-
- ```
-
-2. Import the Dynamsoft Camera Enhancer module, initialize the camera view, and bind to the created `CameraEnhancer` instance in the `MainActivity.java` file.
-
- ```java
- import com.dynamsoft.dce.CameraView;
- import com.dynamsoft.dce.CameraEnhancer;
- import com.dynamsoft.dce.utils.PermissionUtil;
- public class MainActivity extends AppCompatActivity {
- CameraEnhancer mCamera;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- // Add camera view for previewing video.
- PermissionUtil.requestCameraPermission(this);
- CameraView cameraView = findViewById(R.id.camera_view);
- mCamera = new CameraEnhancer(cameraView, this);
- }
- }
- ```
-
-### Initialize Capture Vision Router
-
-1. Import and initialize the `CaptureVisionRouter` and set the previously created `CameraEnhancer` instance as its input.
-
- ```java
- import com.dynamsoft.cvr.CaptureVisionRouter;
- import com.dynamsoft.cvr.CaptureVisionRouterException;
- public class MainActivity extends AppCompatActivity {
- ...
- private CaptureVisionRouter mRouter;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- mRouter = new CaptureVisionRouter(this);
- try {
- mRouter.setInput(mCamera);
- } catch (CaptureVisionRouterException e) {
- throw new RuntimeException(e);
- }
- }
- }
- ```
-
-2. Create a `CapturedResultReceiver` and register with the `CaptureVisionRouter` instance to get the result of MRZ parsing.
-
- ```java
- import com.dynamsoft.core.basic_structures.CapturedResultReceiver;
- import com.dynamsoft.dlr.RecognizedTextLinesResult;
- import com.dynamsoft.dcp.ParsedResult;
- ...
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- mRouter.addResultReceiver(new CapturedResultReceiver() {
- @Override
- public void onParsedResultsReceived(@NonNull ParsedResult result)
- {
- }
- });
- }
- }
- ```
-
-3. Override `MainActivity.onResume` and `MainActivity.onPause` functions to start/stop video MRZ scanning. After scanning starts, the SDK will automatically recognize and parse the text in the MRZ area from the video frame, and send the parsed MRZ result to the callback function.
-
- ```java
- import com.dynamsoft.dce.CameraEnhancerException;
- public class MainActivity extends AppCompatActivity {
- ...
- @Override
- public void onResume() {
- super.onResume();
- // Start video MRZ reading
- try {
- mCamera.open();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- mRouter.startCapturing("ReadPassportAndId", new CompletionListener() {
- @Override
- public void onSuccess() {}
- @Override
- public void onFailure(int errorCode, String errorString) {
- runOnUiThread(() -> showDialog("Error", String.format(Locale.getDefault(), "ErrorCode: %d %nErrorMessage: %s", errorCode, errorString)));
- }
- });
- }
- @Override
- public void onPause() {
- super.onPause();
- // Stop video MRZ reading
- try {
- mCamera.close();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- mRouter.stopCapturing();
- }
- private void showDialog(String title, String message) {
- if (mAlertDialog == null) {
- // Restart the capture when the dialog is closed
- mAlertDialog = new AlertDialog.Builder(this).setCancelable(true).setPositiveButton("OK", null)
- .setOnDismissListener(dialog -> mRouter.startCapturing("", null))
- .create();
- }
- mAlertDialog.setTitle(title);
- mAlertDialog.setMessage(message);
- mAlertDialog.show();
- }
- }
- ```
-
->Note:
->
->- When using `startCapturing`, set the template to "ReadPassportAndId" to capture both Passports and ID cards.
->- If you only need to capture Passports, set the template to "ReadPassport" when calling `startCapturing`.
->- To capture only ID cards, set the template to "ReadId" during `startCapturing`.
-
-### Extract Parsed Results
-
-```java
-import com.dynamsoft.dcp.ParsedResultItem;
-...
-@Override
-public void onParsedResultsReceived(@NonNull ParsedResult result) {
- if (!succeed) {
- onParsedResultReceived(result);
- }
-}
-...
-private void onParsedResultReceived(ParsedResult result) {
- if (result.getItems() == null) {
- return;
- }
- // ParsedResult contains an array of ParsedResultItem, which stores the parse fields and values.
- // If the library failed to parse the content, the array length will be 0.
- if (result.getItems().length == 0) {
- // Do something when the library fails to parse the content.
- } else {
- // The assembleString method is implemented below. It gets all parse fields and assemble them into a string.
- String labelText = assembleString(result.getItems()[0]);
- if (labelText != null) {
- // Do something to display the result.
- }else {
- // Do something when the library fails to parse the content.
- }
- }
-}
-// This method is an example for how to extract the parsed information from a ParsedResultItem.
-private String assembleString(ParsedResultItem item) {
- HashMap entry = item.getParsedFields();
- String number = entry.get("passportNumber") == null ? entry.get("documentNumber") : entry.get("passportNumber");
- return "Document Type: " + item.getCodeType() + "\n" +
- "Document Number: " + number + "\n" +
- "Surname: " + entry.get("primaryIdentifier") + "\n" +
- "Given name: " + entry.get("secondaryIdentifier") + "\n" +
- "Gender: " + entry.get("sex") + "\n" +
- "Issuing State: " + entry.get("issuingState") + "\n" +
- "Nationality: " + item.getFieldRawValue("nationality") + "\n" +
- "Date of Birth(YY-MM-DD): " + entry.get("dateOfBirth") + "\n" +
- "Date of Expiry(YY-MM-DD): " + entry.get("dateOfExpiry") + "\n";
-}
-```
-
-### Build and Run the Project
-
-1. Select the device that you want to run your app on from the target device drop-down menu in the toolbar.
-
-2. Click the **Run app** button, then Android Studio installs your app on the connected device and launches it.
-
-You can also download the similar source code of all the steps above:
-
-- MRZScanner Sample(Java)
diff --git a/programming/android/user-guide/mrz-v3.0.3000.md b/programming/android/user-guide/mrz-v3.0.3000.md
deleted file mode 100644
index 89a1bdf7..00000000
--- a/programming/android/user-guide/mrz-v3.0.3000.md
+++ /dev/null
@@ -1,367 +0,0 @@
----
-layout: default-layout
-title: Scan & Parse MRZ - Dynamsoft Capture Vision Android Edition
-description: This page introduce how to scan and parse a MRZ with Dynamsoft Capture Vision Android Edition.
-keywords: Android, MRZ, passport, id card, visa
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# Android User Guide for MRZ Integration
-
-In this guide, you will learn step by step on how to build a MRZ scanner application with Dynamsoft Capture Vision Android SDK.
-
-> [!Note]
-> This is the guide for developing a full customizable MRZ scanning application. If you'd like to start with a Ready-to-Use component, you can read [MRZScanner documentation](/mrz-scanner/docs/mobile/programming/android/user-guide/index.html){:target="_blank"} instead.
-
-- [Android User Guide for MRZ Integration](#android-user-guide-for-mrz-integration)
- - [Supported Machine-Readable Travel Document Types](#supported-machine-readable-travel-document-types)
- - [ID (TD1 Size)](#id-td1-size)
- - [ID (TD2 Size)](#id-td2-size)
- - [Passport (TD3 Size)](#passport-td3-size)
- - [Requirements](#requirements)
- - [Add the SDK](#add-the-sdk)
- - [Build Your First Application](#build-your-first-application)
- - [Create a New Project](#create-a-new-project)
- - [Include the Libraries](#include-the-libraries)
- - [Initialize License](#initialize-license)
- - [Initialize the Camera Module](#initialize-the-camera-module)
- - [Initialize Capture Vision Router](#initialize-capture-vision-router)
- - [Extract Parsed Results](#extract-parsed-results)
- - [Build and Run the Project](#build-and-run-the-project)
-
-## Supported Machine-Readable Travel Document Types
-
-The Machine Readable Travel Documents (MRTD) standard specified by the International Civil Aviation Organization (ICAO) defines how to encode information for optical character recognition on official travel documents.
-
-Currently, the SDK supports three types of MRTD:
-
- > [!Note]
- > If you need support for other types of MRTDs, our SDK can be easily customized. Please contact support@dynamsoft.com.
-
-### ID (TD1 Size)
-
-The MRZ (Machine Readable Zone) in TD1 format consists of 3 lines, each containing 30 characters.
-
-
-

-
-
-### ID (TD2 Size)
-
-The MRZ (Machine Readable Zone) in TD2 format consists of 2 lines, with each line containing 36 characters.
-
-
-

-
-
-### Passport (TD3 Size)
-
-The MRZ (Machine Readable Zone) in TD3 format consists of 2 lines, with each line containing 44 characters.
-
-
-

-
-
-## Requirements
-
-- Supported OS: Android 5.0 (API Level 21) or higher.
-- Supported ABI: **armeabi-v7a**, **arm64-v8a**, **x86** and **x86_64**.
-- Development Environment: Android Studio 2022.2.1 or higher.
-
-## Add the SDK
-
-1. Open the file `[App Project Root Path]\settings.gradle` and add the Maven repository:
-
-
- >- groovy
- >- kts
- >
- >1.
- ```groovy
- dependencyResolutionManagement {
- repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
- repositories {
- google()
- mavenCentral()
- maven {
- url "https://download2.dynamsoft.com/maven/aar"
- }
- }
- }
- ```
- 2.
- ```kotlin
- dependencyResolutionManagement {
- repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
- repositories {
- google()
- mavenCentral()
- maven {
- url = uri("https://download2.dynamsoft.com/maven/aar")
- }
- }
- }
- ```
-
- > [!Note]
- >
- > If you are using gradle 6.x or older version, the maven dependencies should be configured in `[App Project Root Path]\app\build.gradle`
-
-2. Open the file `[App Project Root Path]\app\build.gradle` and add the dependencies:
-
-
- >- groovy
- >- kts
- >
- >1.
- ```groovy
- dependencies {
- implementation 'com.dynamsoft:mrzscannerbundle:3.0.0'
- }
- ```
- 2.
- ```kotlin
- dependencies {
- implementation("com.dynamsoft:mrzscannerbundle:3.0.0")
- }
- ```
-
-3. Click **Sync Now**. After the synchronization is complete, the SDK is added to the project.
-
-## Build Your First Application
-
-In this section, we will explain how to create a `HelloWorld` implementation similar to our simple `MRZScanner` app for reading the MRZ zone from camera video input.
-
-> [!Note]
->
->- Android Studio 2024.1.1 is used here in this guide.
->- You can get similar source code from
-> - MRZScanner Sample(Java)
-
-### Create a New Project
-
-1. Open Android Studio, select **File > New > New Project**.
-
-2. Choose the correct template for your project. In this sample, we use **Empty Views Activity**.
-
-3. When prompted, set your app name to `HelloWorld` and set the **Save** location, **Language**, and **Minimum SDK** (we use 21 here).
-
- > [!Note]
- >
- > - With **minSdkVersion** set to 21, your app is compatible with more than 99.6% of devices on the Google Play Store (last update: October 2023).
-
-### Include the Libraries
-
-Add the SDK to your new project. Please read [Add the SDK](#add-the-sdk) section for more details.
-
-### Initialize License
-
-1. Initialize the license in the file `MainActivity.java`.
-
- ```java
- import com.dynamsoft.license.LicenseManager;
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- if (savedInstanceState == null) {
- LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", this, (isSuccess, error) -> {
- error.printStackTrace();
- });
- }
- }
- }
- ```
-
- > [!Note]
- >
- >- The license string here grants a time-limited free trial which requires network connection to work.
- >- You can request for a 30-day trial license via the Trial License link.
-
-### Initialize the Camera Module
-
-1. In the Project window, open **app > res > layout > `activity_main.xml`** and create a DCE camera view section under the root node.
-
- ```xml
-
- ```
-
-2. Import the Dynamsoft Camera Enhancer module, initialize the camera view, and bind to the created `CameraEnhancer` instance in the `MainActivity.java` file.
-
- ```java
- import com.dynamsoft.dce.CameraView;
- import com.dynamsoft.dce.CameraEnhancer;
- import com.dynamsoft.dce.utils.PermissionUtil;
- public class MainActivity extends AppCompatActivity {
- CameraEnhancer mCamera;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- // Add camera view for previewing video.
- PermissionUtil.requestCameraPermission(this);
- CameraView cameraView = findViewById(R.id.camera_view);
- mCamera = new CameraEnhancer(cameraView, this);
- }
- }
- ```
-
-### Initialize Capture Vision Router
-
-1. Import and initialize the `CaptureVisionRouter` and set the previously created `CameraEnhancer` instance as its input.
-
- ```java
- import com.dynamsoft.cvr.CaptureVisionRouter;
- import com.dynamsoft.cvr.CaptureVisionRouterException;
- public class MainActivity extends AppCompatActivity {
- ...
- private CaptureVisionRouter mRouter;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- mRouter = new CaptureVisionRouter(this);
- try {
- mRouter.setInput(mCamera);
- } catch (CaptureVisionRouterException e) {
- throw new RuntimeException(e);
- }
- }
- }
- ```
-
-2. Create a `CapturedResultReceiver` and register with the `CaptureVisionRouter` instance to get the result of MRZ parsing.
-
- ```java
- import com.dynamsoft.core.basic_structures.CapturedResultReceiver;
- import com.dynamsoft.dlr.RecognizedTextLinesResult;
- import com.dynamsoft.dcp.ParsedResult;
- ...
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- mRouter.addResultReceiver(new CapturedResultReceiver() {
- @Override
- public void onParsedResultsReceived(@NonNull ParsedResult result)
- {
- }
- });
- }
- }
- ```
-
-3. Override `MainActivity.onResume` and `MainActivity.onPause` functions to start/stop video MRZ scanning. After scanning starts, the SDK will automatically recognize and parse the text in the MRZ area from the video frame, and send the parsed MRZ result to the callback function.
-
- ```java
- import com.dynamsoft.dce.CameraEnhancerException;
- public class MainActivity extends AppCompatActivity {
- ...
- @Override
- public void onResume() {
- super.onResume();
- // Start video MRZ reading
- try {
- mCamera.open();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- mRouter.startCapturing("ReadPassportAndId", new CompletionListener() {
- @Override
- public void onSuccess() {}
- @Override
- public void onFailure(int errorCode, String errorString) {
- runOnUiThread(() -> showDialog("Error", String.format(Locale.getDefault(), "ErrorCode: %d %nErrorMessage: %s", errorCode, errorString)));
- }
- });
- }
- @Override
- public void onPause() {
- super.onPause();
- // Stop video MRZ reading
- try {
- mCamera.close();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- mRouter.stopCapturing();
- }
- private void showDialog(String title, String message) {
- if (mAlertDialog == null) {
- // Restart the capture when the dialog is closed
- mAlertDialog = new AlertDialog.Builder(this).setCancelable(true).setPositiveButton("OK", null)
- .setOnDismissListener(dialog -> mRouter.startCapturing("", null))
- .create();
- }
- mAlertDialog.setTitle(title);
- mAlertDialog.setMessage(message);
- mAlertDialog.show();
- }
- }
- ```
-
- > [!Note]
- >
- >- When using `startCapturing`, set the template to "ReadPassportAndId" to capture both Passports and ID cards.
- >- If you only need to capture Passports, set the template to "ReadPassport" when calling `startCapturing`.
- >- To capture only ID cards, set the template to "ReadId" during `startCapturing`.
-
-### Extract Parsed Results
-
-```java
-import com.dynamsoft.dcp.ParsedResultItem;
-...
-@Override
-public void onParsedResultsReceived(@NonNull ParsedResult result) {
- if (!succeed) {
- onParsedResultReceived(result);
- }
-}
-...
-private void onParsedResultReceived(ParsedResult result) {
- if (result.getItems() == null) {
- return;
- }
- // ParsedResult contains an array of ParsedResultItem, which stores the parse fields and values.
- // If the library failed to parse the content, the array length will be 0.
- if (result.getItems().length == 0) {
- // Do something when the library fails to parse the content.
- } else {
- // The assembleString method is implemented below. It gets all parse fields and assemble them into a string.
- String labelText = assembleString(result.getItems()[0]);
- if (labelText != null) {
- // Do something to display the result.
- }else {
- // Do something when the library fails to parse the content.
- }
- }
-}
-// This method is an example for how to extract the parsed information from a ParsedResultItem.
-private String assembleString(ParsedResultItem item) {
- HashMap entry = item.getParsedFields();
- String number = entry.get("passportNumber") == null ? entry.get("documentNumber") : entry.get("passportNumber");
- return "Document Type: " + item.getCodeType() + "\n" +
- "Document Number: " + number + "\n" +
- "Surname: " + entry.get("primaryIdentifier") + "\n" +
- "Given name: " + entry.get("secondaryIdentifier") + "\n" +
- "Gender: " + entry.get("sex") + "\n" +
- "Issuing State: " + entry.get("issuingState") + "\n" +
- "Nationality: " + item.getFieldRawValue("nationality") + "\n" +
- "Date of Birth(YY-MM-DD): " + entry.get("dateOfBirth") + "\n" +
- "Date of Expiry(YY-MM-DD): " + entry.get("dateOfExpiry") + "\n";
-}
-```
-
-### Build and Run the Project
-
-1. Select the device that you want to run your app on from the target device drop-down menu in the toolbar.
-
-2. Click the **Run app** button, then Android Studio installs your app on the connected device and launches it.
-
-You can also download the similar source code of all the steps above:
-
-- MRZScanner Sample(Java)
diff --git a/programming/ios/api-reference/capture-vision-router/auxiliary-classes/captured-result-filter-v2.6.1004.md b/programming/ios/api-reference/capture-vision-router/auxiliary-classes/captured-result-filter-v2.6.1004.md
deleted file mode 100644
index d2117fec..00000000
--- a/programming/ios/api-reference/capture-vision-router/auxiliary-classes/captured-result-filter-v2.6.1004.md
+++ /dev/null
@@ -1,165 +0,0 @@
----
-layout: default-layout
-title: DSCapturedResultFilter - Dynamsoft Core Module iOS Edition API Reference
-description: The protocol DSCapturedResultFilter of Dynamsoft Core Module represents a captured result filter, which is responsible for filtering different types of captured results, including original image, decoded barcodes, recognized text lines, detected quads, normalized images, and parsed results.
-keywords: captured result filter, objective-c, swift
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# DSCapturedResultFilter
-
-The `DSCapturedResultFilter` protocol represents a captured result filter, which is responsible for filtering different types of captured results, including original image, decoded barcodes, recognized text lines, detected quads, normalized images, and parsed results.
-
-## Declaration
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@protocol DSCapturedResultFilter : NSObject
-```
-2.
-```swift
-protocol CapturedResultFilter : NSObjectProtocol
-```
-
-## Methods
-
-| Method | Description |
-| ------ | ----------- |
-| [`onOriginalImageResultReceived`](#onoriginalimageresultreceived) | The method for monitoring the output of `DSOriginalImageResultItem`. |
-| [`onDecodedBarcodesReceived`](#ondecodedbarcodesreceived) | The method for monitoring the output of `DSDecodedBarcodesResult`. |
-| [`onRecognizedTextLinesReceived`](#onrecognizedtextlinesreceived) | The method for monitoring the output of `DSRecognizedTextLinesResult`. |
-| [`onDetectedQuadsReceived`](#ondetectedquadsreceived) | The method for monitoring the output of `DSDetectedQuadsResult`. |
-| [`onNormalizedImagesReceived`](#onnormalizedimagesreceived) | The method for monitoring the output of `DSNormalizedImagesResult`. |
-| [`onParsedResultsReceived`](#onparsedresultsreceived) | The method for monitoring the output of `DSParsedResult`. |
-
-### onOriginalImageResultReceived
-
-The method for monitoring the output of [`DSOriginalImageResultItem`]({{ site.dcv_ios_api }}core/basic-structures/original-image-result-item.html).
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (void)onOriginalImageResultReceived:(DSOriginalImageResultItem*)result;
-```
-2.
-```swift
-func onOriginalImageResultReceived(_ result: DSOriginalImageResultItem)
-```
-
-**Parameters**
-
-`result`: A `DSOriginalImageResultItem` object as a original image result.
-
-### onDecodedBarcodesReceived
-
-The method for monitoring the output of [DSDecodedBarcodesResult]({{ site.dbr_ios_api }}decoded-barcodes-result.html).
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (void)onDecodedBarcodesReceived:(DSDecodedBarcodesResult*)result;
-```
-2.
-```swift
-func onDecodedBarcodesReceived(_ result: DSDecodedBarcodesResult)
-```
-
-**Parameters**
-
-`result`: A `DSDecodedBarcodesResult` object as a decoded barcode result.
-
-### onRecognizedTextLinesReceived
-
-The method for monitoring the output of [DSRecognizedTextLinesResult]({{ site.dlr_ios_api }}recognized-text-lines-result.html).
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (void)onRecognizedTextLinesReceived:(DSRecognizedTextLinesResult*)result;
-```
-2.
-```swift
-func onRecognizedTextLinesReceived(_ result: DSRecognizedTextLinesResult)
-```
-
-**Parameters**
-
-`result`: A `DSRecognizedTextLinesResult` object as a recognized text line result.
-
-### onDetectedQuadsReceived
-
-The method for monitoring the output of [`DSDetectedQuadsResult`]({{site.ddn_ios_api}}detected-quads-result.html).
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (void)onDetectedQuadsReceived:(DSDetectedQuadsResult*)result;
-```
-2.
-```swift
-func onDetectedQuadsReceived(_ result: DSDetectedQuadsResult)
-```
-
-**Parameters**
-
-`result`: A `DSDetectedQuadsResult` object as a detected quad result.
-
-### onNormalizedImagesReceived
-
-The method for monitoring the output of [DSNormalizedImagesResult]({{ site.ddn_ios_api }}normalized-images-result.html).
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (void)onNormalizedImagesReceived:(DSNormalizedImagesResult*)result;
-```
-2.
-```swift
-func onNormalizedImagesReceived(_ result: DSNormalizedImagesResult)
-```
-
-**Parameters**
-
-`result`: A `DSNormalizedImagesResult` object as a normalized image result.
-
-### onParsedResultsReceived
-
-The method for monitoring the output of [DSParsedResult]({{ site.dcp_ios_api }}parsed-result.html).
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (void)onParsedResultsReceived:(DSParsedResult*)result;
-```
-2.
-```swift
-func onParsedResultsReceived(_ result: DSParsedResult)
-```
-
-**Parameters**
-
-`result`: A `DSParsedResult` object as a parsed result.
diff --git a/programming/ios/api-reference/capture-vision-router/auxiliary-classes/captured-result-receiver-v2.6.1004.md b/programming/ios/api-reference/capture-vision-router/auxiliary-classes/captured-result-receiver-v2.6.1004.md
deleted file mode 100644
index 73dae904..00000000
--- a/programming/ios/api-reference/capture-vision-router/auxiliary-classes/captured-result-receiver-v2.6.1004.md
+++ /dev/null
@@ -1,190 +0,0 @@
----
-layout: default-layout
-title: DSCapturedResultReceiver - Dynamsoft Core Module iOS Edition API Reference
-description: The protocol DSCapturedResultReceiver of Dynamsoft Core Module iOS Edition provides methods for monitoring the output of captured results, including captured result, original image result, decoded barcode result, recognized text line result, detected quad result, normalized image result, and parsed result.
-keywords: captured result, original image result, decoded barcode result, recognized text line result, detected quad result, normalized image result, parsed result, objective-c, swift
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
-ignore: true
----
-
-# DSCapturedResultReceiver
-
-The `DSCapturedResultReceiver` interface is designed as a standardized way for retrieving captured results in the Dynamsoft Capture Vision architecture. By implementing the `DSCapturedResultReceiver`, you will receive the callback of the various types of captured results, such as original image, decoded barcode, recognized text line, detected quad, normalized image, or parsed data. The `DSCapturedResultReceiver` can add a receiver for any type of captured result or for a specific type of captured result, based on the method that is implemented.
-
-## Definition
-
-*Assembly:* DynamsoftCore.xcframework
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@protocol DSCapturedResultReceiver
-```
-2.
-```swift
-protocol CapturedResultReceiver: NSObjectProtocol
-```
-
-## Methods
-
-| Method | Description |
-| ------ | ----------- |
-| [`onCapturedResultReceived`](#oncapturedresultreceived) | The callback triggered when a generic captured result is available, occurring each time an image finishes its processing. |
-| [`onOriginalImageResultReceived`](#onoriginalimageresultreceived) | The callback triggered when the original image result is available, occurring each time an image finishes its processing. |
-| [`onDecodedBarcodesReceived`](#ondecodedbarcodesreceived) | The callback triggered when decoded barcodes are available, occurring each time an image finishes its processing. |
-| [`onRecognizedTextLinesReceived`](#onrecognizedtextlinesreceived) | The callback triggered when recognized text lines are available, occurring each time an image finishes its processing. |
-| [`onDetectedQuadsReceived`](#ondetectedquadsreceived) | The callback triggered when detected quads are available, occurring each time an image finishes its processing. |
-| [`onNormalizedImagesReceived`](#onnormalizedimagesreceived) | The callback triggered when normalized images are available, occurring each time an image finishes its processing. |
-| [`onParsedResultsReceived`](#onparsedresultsreceived) | The callback triggered when parsed results are available, occurring each time an image finishes its processing. |
-
-### onCapturedResultReceived
-
-The callback method triggered when a generic captured result is available, occurring each time an image finishes its processing. This callback can be used for any result that does not fit into the specific categories of the other callbacks.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (void)onCapturedResultReceived:(DSCapturedResult*)result;
-```
-2.
-```swift
-func onCapturedResultReceived(_ result: DSCapturedResult)
-```
-
-**Parameters**
-
-`result` : A [`DSCapturedResult`](captured-result.md) object as a captured result.
-
-### onOriginalImageResultReceived
-
-The callback method triggered when the original image result is available, occurring each time an image finishes its processing. This callback is used to handle the original image that used as the input of this capture process.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (void)onOriginalImageResultReceived:(DSOriginalImageResultItem*)result;
-```
-2.
-```swift
-func onOriginalImageResultReceived(_ result: DSOriginalImageResultItem)
-```
-
-**Parameters**
-
-`result` : A [`DSOriginalImageResultItem`]({{ site.dcv_ios_api }}core/basic-structures/original-image-result-item.html) object as a original image result.
-
-### onDecodedBarcodesReceived
-
-The callback triggered when decoded barcodes are available, occurring each time an image finishes its processing. This callback is used to handle barcodes that have been successfully decoded by Dynamsoft Barcode Reader
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (void)onDecodedBarcodesReceived:(DSDecodedBarcodesResult*)result;
-```
-2.
-```swift
-func onDecodedBarcodesReceived(_ result: DSDecodedBarcodesResult)
-```
-
-**Parameters**
-
-`result` : A [`DSDecodedBarcodesResult`]({{site.dbr_ios_api}}decoded-barcodes-result.html}}) object as a decoded barcode result.
-
-### onRecognizedTextLinesReceived
-
-The callback triggered when recognized text lines are available, occurring each time an image finishes its processing. This callback is used to handle the result of text recognition by Dynamsoft Label Recognizer.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (void)onRecognizedTextLinesReceived:(DSRecognizedTextLinesResult*)result;
-```
-2.
-```swift
-func onRecognizedTextLinesReceived(_ result: DSRecognizedTextLinesResult)
-```
-
-**Parameters**
-
-`result` : A [`DSRecognizedTextLinesResult`]({{site.dlr_ios_api}}recognized-text-lines-result.html) object as a recognized text line result.
-
-### onDetectedQuadsReceived
-
-The callback triggered when detected quads are available, occurring each time an image finishes its processing. This callback is used to handle the detection of quadrilateral shapes, typically used as document boundaries, by Dynamsoft Document Normalizer.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (void)onDetectedQuadsReceived:(DSDetectedQuadsResult*)result;
-```
-2.
-```swift
-func onDetectedQuadsReceived(_ result: DSDetectedQuadsResult)
-```
-
-**Parameters**
-
-`result` : A [`DSDetectedQuadsResult`]({{site.ddn_ios_api}}detected-quads-result.html) object as a detected quad result.
-
-### onNormalizedImagesReceived
-
-The callback triggered when normalized images are available, occurring each time an image finishes its processing. This callback is used for handling images that have been processed or normalized (e.g., corrected for skew or perspective), by Dynamsoft Document Normalizer.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (void)onNormalizedImagesReceived:(DSNormalizedImagesResult*)result;
-```
-2.
-```swift
-func onNormalizedImagesReceived(_ result: DSNormalizedImagesResult)
-```
-
-**Parameters**
-
-`result` : A [`DSNormalizedImagesResult`]({{site.ddn_ios_api}}normalized-images-result.html) object as a normalized image result.
-
-### onParsedResultsReceived
-
-The callback triggered when parsed results are available, occurring each time an image finishes its processing. This callback is used for handling results that have been parsed into a structured format by Dynamsoft Code Parser.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (void)onParsedResultsReceived:(DSParsedResult*)result;
-```
-2.
-```swift
-func onParsedResultsReceived(_ result: DSParsedResult)
-```
-
-**Parameters**
-
-`result` : A [`DSParsedResult`]({{site.dcp_ios_api}}parsed-result.html) object as a parsed result.
diff --git a/programming/ios/api-reference/capture-vision-router/auxiliary-classes/captured-result-v2.6.1004.md b/programming/ios/api-reference/capture-vision-router/auxiliary-classes/captured-result-v2.6.1004.md
deleted file mode 100644
index fa387683..00000000
--- a/programming/ios/api-reference/capture-vision-router/auxiliary-classes/captured-result-v2.6.1004.md
+++ /dev/null
@@ -1,233 +0,0 @@
----
-layout: default-layout
-title: DSCapturedResult - Dynamsoft Capture Vision Module iOS Edition API Reference
-description: The class DSCapturedResult of Dynamsoft Capture Vision Module represents the result of a capture operation on an image, which contains multiple items such as barcode, text line, detected quad, normalized image, original image, parsed item, etc.
-keywords: captured result, objective-c, swift
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# DSCapturedResult
-
-The `DSCapturedResult` class represents the result of a capture operation on an image. Internally, `DSCapturedResult` stores an array that contains multiple items, each of which may be a barcode, text line, detected quad, normalized image, original image, parsed item, etc.
-
-## Definition
-
-*Assembly:* DynamsoftCore.xcframework
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@interface DSCapturedResult : NSObject
-```
-2.
-```swift
-class CapturedResult : NSObject
-```
-
-## Attributes
-
-| Attributes | Type | Description |
-| ---------- | ---- | ----------- |
-| [`originalImageHashId`](#originalimagehashid) | *NSString \** | The hash id of the original image. You can use this ID to get the original image via `IntermediateResultManager` class. |
-| [`originalImageTag`](#originalimagetag) | *DSImageTag* | The [ImageTag]({{ site.dcv_ios_api }}core/basic-structures/image-tag.html) associated with the original image. |
-| [`items`](#items) | *NSArray \** | An array of `DSCapturedResultItems`, which are the basic item of the captured results. A `DSCapturedResultItem` can be an original image, a decoded barcode, a recognized text, a detected quad, a normalized image or a parsed result. View DSCapturedResultItemType for all available types. |
-| [`rotationTransformMatrix`](#rotationtransformmatrix) | *CGAffineTransform* | The rotation transformation matrix of the original image relative to the rotated image. |
-| [`errorCode`](#errorcode) | *NSInteger* | Error code associated with the capture result. |
-| [`errorMessage`](#errormessage) | *NSString \** | Error message providing details about the error. |
-| [`decodedBarcodesResult`](#decodedbarcodesresult) | *DSDecodedBarcodesResult* | A [`DSDecodedBarcodesResult`]({{ site.dbr_ios_api }}decoded-barcodes-result.html) object that contains all the [`DSBarcodeResultItems`]({{ site.dbr_ios_api }}barcode-result-item.html) in the DSCapturedResult. |
-| [`recognizedTextLinesResult`](#recognizedtextlinesresult) | *DSRecognizedTextLinesResult* | A [`DSRecognizedTextLinesResult`]({{ site.dlr_ios_api }}recognized-text-lines-result.html) object that contains all the [`DSTextLineResultItems`]({{ site.dlr_ios_api }}text-line-result-item.html) in the DSCapturedResult. |
-| [`detectedQuadsResult`](#detectedquadsresult) | *DSDetectedQuadsResult* | A [`DSDetectedQuadsResult`]({{ site.ddn_ios_api }}detected-quads-result.html) object that contains all the [`DSDetectedQuadResultItem`]({{ site.ddn_ios_api }}detected-quad-result-item.html) in the DSCapturedResult. |
-| [`normalizedImagesResult`](#normalizedimagesresult) | *DSNormalizedImagesResult* | A [`DSNormalizedImagesResult`]({{ site.ddn_ios_api }}normalized-images-result.html) object that contains all the [`DSNormalizedImageResultItem`]({{ site.ddn_ios_api }}normalized-image-result-item.html) in the DSCapturedResult. |
-| [`parsedResult`](#parsedresult) | *DSParsedResult* | A [`DSParsedResult`]({{ site.dcp_ios_api }}parsed-result.html) object that contains all the [`DSParsedResultItem`]({{ site.dcp_ios_api }}parsed-result-item.html) in the DSCapturedResult. |
-
-### originalImageHashId
-
-The hash ID of the original image which can be used to get the original image via the [IntermediateResultManager]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/intermediate-result-manager.html) class.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property(nonatomic, copy, readonly) NSString *originalImageHashId;
-```
-2.
-```swift
-var originalImageHashId: String { get }
-```
-
-### originalImageTag
-
-The [DSImageTag]({{ site.dcv_ios_api }}core/basic-structures/image-tag.html) of the original image that records information such as the image ID of the original image.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property(nonatomic, readonly) DSImageTag *originalImageTag;
-```
-2.
-```swift
-var originalImageTag: ImageTag { get }
-```
-
-### items
-
-An array of [DSCapturedResultItem]({{ site.dcv_ios_api }}core/basic-structures/captured-result-item.html), which is the basic unit of the captured results. A DSCapturedResultItem can be an original image, a decoded barcode, a recognized text, a detected quad, a normalized image, or a parsed result. View DSCapturedResultItemType for all available types.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property(nonatomic, strong, nullable, readonly) NSArray *items;
-```
-2.
-```swift
-var items: [CapturedResultItem]? { get }
-```
-
-### rotationTransformMatrix
-
-The rotation transformation matrix of the original image relative to the rotated image. View [CGAffineTransform](https://developer.apple.com/documentation/corefoundation/cgaffinetransform) for more info.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property(nonatomic, assign, readonly) CGAffineTransform rotationTransformMatrix;
-```
-2.
-```swift
-var rotationTransformMatrix: CGAffineTransform { get }
-```
-
-### errorCode
-
-Get the error code of this result. A `CapturedResult` will carry error information when the license module is missing or the process timeout.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, assign, readonly) NSInteger errorCode;
-```
-2.
-```swift
-var errorCode: Int { get }
-```
-
-### errorMessage
-
-Get the error message of this result. A `CapturedResult` will carry error information when the license module is missing or the process timeout.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, assign, readonly) NSString * errorMessage;
-```
-2.
-```swift
-var errorMessage: String { get }
-```
-
-### decodedBarcodesResult
-
-A [`DSDecodedBarcodesResult`]({{site.dbr_ios_api}}decoded-barcodes-result.html) object that contains all the [`DSBarcodesResultItems`]({{ site.dbr_ios_api }}barcode-result-item.html) in the DSCapturedResult.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, readonly, strong, nullable) DSDecodedBarcodesResult * decodedBarcodesResult;
-```
-2.
-```swift
-var decodedBarcodesResult: DecodedBarcodesResult? { get }
-```
-
-### recognizedTextLinesResult
-
-A [`DSRecognizedTextLinesResult`]({{site.dlr_ios_api}}recognized-text-lines-result.html) object that contains all the [`DSTextLinesResultItems`]({{ site.dlr_ios_api }}text-line-result-item.html) in the DSCapturedResult.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, readonly, strong, nullable) DSRecognizedTextLinesResult * recognizedTextLinesResult;
-```
-2.
-```swift
-var recognizedTextLinesResult: RecognizedTextLinesResult? { get }
-```
-
-### detectedQuadsResult
-
-A [`DSDetectedQuadsResult`]({{site.ddn_ios_api}}detected-quads-result.html) object that contains all the [`DSDetectedQuadResultItem`]({{ site.ddn_ios_api }}detected-quad-result-item.html) in the DSCapturedResult.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, readonly, strong, nullable) DSDetectedQuadsResult * detectedQuadsResult;
-```
-2.
-```swift
-var detectedQuadsResult: DetectedQuadsResult? { get }
-```
-
-### normalizedImagesResult
-
-A [`DSNormalizedImagesResult`]({{site.ddn_ios_api}}normalized-images-result.html) object that contains all the [`DSNormalizedImageResultItem`]({{ site.ddn_ios_api }}normalized-image-result-item.html) in the DSCapturedResult.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, readonly, strong, nullable) DSNormalizedImagesResult * normalizedImagesResult;
-```
-2.
-```swift
-var normalizedImagesResult: NormalizedImagesResult? { get }
-```
-
-### parsedResult
-
-A [`DSParsedResult`]({{site.dcp_ios_api}}parsed-result.html) object that contains all the [`DSParsedResultItem`]({{ site.dcp_ios_api }}parsed-result-item.html) in the DSCapturedResult.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, readonly, strong, nullable) DSParsedResult * parsedResult;
-```
-2.
-```swift
-var parsedResult: ParsedResult? { get }
-```
diff --git a/programming/ios/api-reference/capture-vision-router/auxiliary-classes/intermediate-result-receiver-v2.4.2000.md b/programming/ios/api-reference/capture-vision-router/auxiliary-classes/intermediate-result-receiver-v2.4.2000.md
deleted file mode 100644
index 92970e24..00000000
--- a/programming/ios/api-reference/capture-vision-router/auxiliary-classes/intermediate-result-receiver-v2.4.2000.md
+++ /dev/null
@@ -1,783 +0,0 @@
----
-layout: default-layout
-title: DSIntermediateResultReceiver - Dynamsoft Core Module iOS Edition API Reference
-description: The protocol DSIntermediateResultReceiver includes methods for monitoring the output of intermediate results.
-keywords: protocol, objective-c, swift
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
-ignore: true
----
-
-# DSIntermediateResultReceiver
-
-The IntermediateResultReceiver class is designed as a standardized way for retrieving intermediate results in image processing workflows in the Dynamsoft Capture Vision architecture.
-
-## Definition
-
-*Assembly:* DynamsoftCore.xcframework
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@protocol DSIntermediateResultReceiver
-```
-2.
-```swift
-protocol IntermediateResultReceiver: NSObjectProtocol
-```
-
-## Methods
-
-| Method | Description |
-| ------ | ----------- |
-| [getObservationParameters](#getobservationparameters) | Gets the observed parameters of the intermediate result receiver. |
-| [onTaskResultsReceived](#ontaskresultsreceived) | The callback triggered when task results are received. |
-| [onPredetectedRegionsReceived](#onpredetectedregionsreceived) | The callback triggered when pre-detected regions are received. |
-| [onLocalizedBarcodesReceived](#onlocalizedbarcodesreceived) | The callback triggered when localized barcodes are received. |
-| [onDecodedBarcodesReceived](#ondecodedbarcodesreceived) | The callback triggered when decoded barcodes are received. |
-| [onLocalizedTextLinesReceived](#onlocalizedtextlinesreceived) | The callback triggered when localized text lines are received. |
-| [onRecognizedTextLinesReceived](#onrecognizedtextlinesreceived) | The callback triggered when recognized text lines are received. |
-| [onDetectedQuadsReceived](#ondetectedquadsreceived) | The callback triggered when detected quads are received. |
-| [onNormalizedImagesReceived](#onnormalizedimagesreceived) | The callback triggered when normalized images are received. |
-| [onColourImageUnitReceived](#oncolourimageunitreceived) | The callback triggered when a colour image unit is received. |
-| [onScaledDownColourImageUnitReceived](#onscaleddowncolourimageunitreceived) | The callback triggered when a scaled-down colour image unit is received. |
-| [onGrayscaleImageUnitReceived](#ongrayscaleimageunitreceived) | The callback triggered when a grayscale image unit is received. |
-| [onTransformedGrayscaleImageUnitReceived](#ontransformedgrayscaleimageunitreceived) | The callback triggered when a transformed grayscale image unit is received. |
-| [onEnhancedGrayscaleImageUnitReceived](#onenhancedgrayscaleimageunitreceived) | The callback triggered when an enhanced grayscale image unit is received. |
-| [onBinaryImageUnitReceived](#onbinaryimageunitreceived) | The callback triggered when a binary image unit is received. |
-| [onTextureDetectionResultUnitReceived](#ontexturedetectionresultunitreceived) | The callback triggered when a texture detection result unit is received. |
-| [onTextureRemovedGrayscaleImageUnitReceived](#ontextureremovedgrayscaleimageunitreceived) | The callback triggered when a texture-removed grayscale image unit is received. |
-| [onTextureRemovedBinaryImageUnitReceived](#ontextureremovedbinaryimageunitreceived) | The callback triggered when a texture-removed binary image unit is received. |
-| [onContoursUnitReceived](#oncontoursunitreceived) | The callback triggered when a contours unit is received. |
-| [onLineSegmentsUnitReceived](#onlinesegmentsunitreceived) | The callback triggered when a line segments unit is received. |
-| [onTextZonesUnitReceived](#ontextzonesunitreceived) | The callback triggered when a text zones unit is received. |
-| [onTextRemovedBinaryImageUnitReceived](#ontextremovedbinaryimageunitreceived) | The callback triggered when a text-removed binary image unit is received. |
-| [onShortLinesUnitReceived](#onshortlinesunitreceived) | The callback triggered when a short lines unit is received. |
-| [onLongLinesUnitReceived](#onlonglinesunitreceived) | The callback triggered when a long lines unit is received. |
-| [onCornersUnitReceived](#oncornersunitreceived) | The callback triggered when a corners unit is received. |
-| [onCandidateQuadEdgesUnitReceived](#oncandidatequadedgesunitreceived) | The callback triggered when a candidate quad edges unit are detected. |
-| [onCandidateBarcodeZonesUnitReceived](#oncandidatebarcodezonesunitreceived) | The callback triggered when a candidate barcode zones unit are detected. |
-| [onScaledUpBarcodeImageUnitReceived](#onscaledupbarcodeimageunitreceived) | The callback triggered when a scaled-up barcode image unit is received. |
-| [onDeformationResistedBarcodeImageUnitReceived](#ondeformationresistedbarcodeimageunitreceived) | The callback triggered when a deformation-resisted barcode image unit is received. |
-| [onComplementedBarcodeImageUnitReceived](#oncomplementedbarcodeimageunitreceived) | The callback triggered when a complemented barcode image unit is received. |
-
-### getObservationParameters
-
-Get the observed parameters of the intermediate result receiver.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(ObservationParameters *)getObservationParameters;
-```
-2.
-```swift
-func getObservationParameters() -> ObservationParameters
-```
-
-**Return Value**
-
-An `ObservationParameters` object.
-
-### onTaskResultsReceived
-
-The callback triggered when task results are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onTaskResultsReceived:(IntermediateResult *)unit
- info:(DSIntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onTaskResultsReceived(_ unit: IntermediateResult, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result from the task, of type `IntermediateResult`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onPredetectedRegionsReceived
-
-The callback triggered when pre-detected regions are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onPredetectedRegionsReceived:(PredetectedRegionsUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onPredetectedRegionsReceived(_ unit: PredetectedRegionsUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the pre-detected regions, of type `PredetectedRegionsUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onLocalizedBarcodesReceived
-
-The callback triggered when localized barcodes are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onLocalizedBarcodesReceived:(LocalizedBarcodesUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onLocalizedBarcodesReceived(_ unit: LocalizedBarcodesUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the localized barcodes, of type `LocalizedBarcodesUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onDecodedBarcodesReceived
-
-The callback triggered when decoded barcodes are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onDecodedBarcodesReceived:(DecodedBarcodesUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onDecodedBarcodesReceived(_ unit: DecodedBarcodesUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the decoded barcodes, of type `DecodedBarcodesUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onLocalizedTextLinesReceived
-
-The callback triggered when localized text lines are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onLocalizedTextLinesReceived:(LocalizedTextLinesUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onLocalizedTextLinesReceived(_ unit: LocalizedTextLinesUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the localized text lines, of type `LocalizedTextLinesUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onRecognizedTextLinesReceived
-
-The callback triggered when recognized text lines are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onRecognizedTextLinesReceived:(RecognizedTextLinesUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onRecognizedTextLinesReceived(_ unit: RecognizedTextLinesUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the recognized text lines, of type `RecognizedTextLinesUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onDetectedQuadsReceived
-
-The callback triggered when detected quads are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onDetectedQuadsReceived:(DetectedQuadsUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onDetectedQuadsReceived(_ unit: DetectedQuadsUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the detected quads, of type `DetectedQuadsUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onNormalizedImagesReceived
-
-The callback triggered when normalized images are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onNormalizedImagesReceived:(NormalizedImagesUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onNormalizedImagesReceived(_ unit: NormalizedImagesUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the normalized images, of type `NormalizedImagesUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onColourImageUnitReceived
-
-The callback triggered when colour images are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onColourImageUnitReceived:(ColourImageUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onColourImageUnitReceived(_ unit: ColourImageUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the colour images, of type `ColourImageUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onScaledDownColourImageUnitReceived
-
-The callback triggered when scaled-down colour images are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onScaledDownColourImageUnitReceived:(ScaledDownColourImageUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onScaledDownColourImageUnitReceived(_ unit: ScaledDownColourImageUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the scaled-down colour images, of type `ScaledDownColourImageUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onGrayscaleImageUnitReceived
-
-The callback triggered when grayscale images are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onGrayscaleImageUnitReceived:(GrayscaleImageUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onGrayscaleImageUnitReceived(_ unit: GrayscaleImageUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the grayscale images, of type `GrayscaleImageUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTransformedGrayscaleImageUnitReceived
-
-The callback triggered when transformed grayscale images are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onTransformedGrayscaleImageUnitReceived:(TransformedGrayscaleImageUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onTransformedGrayscaleImageUnitReceived(_ unit: TransformedGrayscaleImageUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the transformed grayscale images, of type `TransformedGrayscaleImageUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onEnhancedGrayscaleImageUnitReceived
-
-The callback triggered when enhanced grayscale images are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onEnhancedGrayscaleImageUnitReceived:(EnhancedGrayscaleImageUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onEnhancedGrayscaleImageUnitReceived(_ unit: EnhancedGrayscaleImageUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the enhanced grayscale images, of type `EnhancedGrayscaleImageUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onBinaryImageUnitReceived
-
-The callback triggered when binary images are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onBinaryImageUnitReceived:(BinaryImageUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onBinaryImageUnitReceived(_ unit: BinaryImageUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the binary images, of type `BinaryImageUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTextureDetectionResultUnitReceived
-
-The callback triggered when texture detection results are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onTextureDetectionResultUnitReceived:(TextureDetectionResultUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onTextureDetectionResultUnitReceived(_ unit: TextureDetectionResultUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the texture detection results, of type `TextureDetectionResultUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTextureRemovedGrayscaleImageUnitReceived
-
-The callback triggered when texture removed grayscale images are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onTextureRemovedGrayscaleImageUnitReceived:(TextureRemovedGrayscaleImageUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onTextureRemovedGrayscaleImageUnitReceived(_ unit: TextureRemovedGrayscaleImageUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the texture removed grayscale images, of type `TextureRemovedGrayscaleImageUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTextureRemovedBinaryImageUnitReceived
-
-The callback triggered when texture removed binary images are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onTextureRemovedBinaryImageUnitReceived:(TextureRemovedBinaryImageUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onTextureRemovedBinaryImageUnitReceived(_ unit: TextureRemovedBinaryImageUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the texture removed binary images, of type `TextureRemovedBinaryImageUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onContoursUnitReceived
-
-The callback triggered when contours are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onContoursUnitReceived:(ContoursUnit *)unit
- info:(DSIntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onContoursUnitReceived(_ unit: ContoursUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the contours, of type `ContoursUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onShortLinesUnitReceived
-
-The callback triggered when short lines are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (void)onShortLinesUnitReceived:(DSShortLinesUnit*) unit
- info:(DSIntermediateResultExtraInfo *)info;
-```
-2.
-```swift
-func onShortLinesUnitReceived(_ unit: ShortLinesUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the short lines, of type `DSShortLinesUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onLineSegmentsUnitReceived
-
-The callback triggered when line segments are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onLineSegmentsUnitReceived:(LineSegmentsUnit *)unit
- info:(DSIntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onLineSegmentsUnitReceived(_ unit: LineSegmentsUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the line segments, of type `LineSegmentsUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTextZonesUnitReceived
-
-The callback triggered when text zones are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onTextZonesUnitReceived:(TextZonesUnit *)unit
- info:(DSIntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onTextZonesUnitReceived(_ unit: TextZonesUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the text zones, of type `TextZonesUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTextRemovedBinaryImageUnitReceived
-
-The callback triggered when text removed binary images are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onTextRemovedBinaryImageUnitReceived:(TextRemovedBinaryImageUnit *)unit
- info:(DSIntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onTextRemovedBinaryImageUnitReceived(_ unit: TextRemovedBinaryImageUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the text removed binary images, of type `TextRemovedBinaryImageUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onLongLinesUnitReceived
-
-The callback triggered when long lines are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onLongLinesUnitReceived:(LongLinesUnit *)unit
- info:(DSIntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onLongLinesUnitReceived(_ unit: LongLinesUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the long lines, of type `LongLinesUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onCornersUnitReceived
-
-The callback triggered when corners are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onCornersUnitReceived:(CornersUnit *)unit
- info:(DSIntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onCornersUnitReceived(_ unit: CornersUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the corners, of type `CornersUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onCandidateQuadEdgesUnitReceived
-
-The callback triggered when candidate quad edges are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onCandidateQuadEdgesUnitReceived:(CandidateQuadEdgesUnit *)unit
- info:(DSIntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onCandidateQuadEdgesUnitReceived(_ unit: CandidateQuadEdgesUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the candidate quad edges, of type `CandidateQuadEdgesUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onCandidateBarcodeZonesUnitReceived
-
-The callback triggered when candidate barcode zones are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onCandidateBarcodeZonesUnitReceived:(CandidateBarcodeZonesUnit *)unit
- info:(DSIntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onCandidateBarcodeZonesUnitReceived(_ unit: CandidateBarcodeZonesUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the candidate barcode zones, of type `CandidateBarcodeZonesUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onScaledUpBarcodeImageUnitReceived
-
-The callback triggered when scaled up barcode images are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onScaledUpBarcodeImageUnitReceived:(ScaledUpBarcodeImageUnit *)unit
- info:(DSIntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onScaledUpBarcodeImageUnitReceived(_ unit: ScaledUpBarcodeImageUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the scaled up barcode images, of type `ScaledUpBarcodeImageUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onDeformationResistedBarcodeImageUnitReceived
-
-The callback triggered when deformation resisted barcode images are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onDeformationResistedBarcodeImageUnitReceived:(DeformationResistedBarcodeImageUnit *)unit
- info:(DSIntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onDeformationResistedBarcodeImageUnitReceived(_ unit: DeformationResistedBarcodeImageUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the deformation resisted barcode images, of type `DeformationResistedBarcodeImageUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onComplementedBarcodeImageUnitReceived
-
-The callback triggered when complemented barcode images are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onComplementedBarcodeImageUnitReceived:(ComplementedBarcodeImageUnit *)unit
- info:(DSIntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onComplementedBarcodeImageUnitReceived(_ unit: ComplementedBarcodeImageUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the complemented barcode images, of type `ComplementedBarcodeImageUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
diff --git a/programming/ios/api-reference/capture-vision-router/auxiliary-classes/intermediate-result-receiver-v2.6.1004.md b/programming/ios/api-reference/capture-vision-router/auxiliary-classes/intermediate-result-receiver-v2.6.1004.md
deleted file mode 100644
index 9a856435..00000000
--- a/programming/ios/api-reference/capture-vision-router/auxiliary-classes/intermediate-result-receiver-v2.6.1004.md
+++ /dev/null
@@ -1,808 +0,0 @@
----
-layout: default-layout
-title: DSIntermediateResultReceiver - Dynamsoft Core Module iOS Edition API Reference
-description: The protocol DSIntermediateResultReceiver includes methods for monitoring the output of intermediate results.
-keywords: protocol, objective-c, swift
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
-ignore: true
----
-
-# DSIntermediateResultReceiver
-
-The IntermediateResultReceiver class is designed as a standardized way for retrieving intermediate results in image processing workflows in the Dynamsoft Capture Vision architecture.
-
-## Definition
-
-*Assembly:* DynamsoftCore.xcframework
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@protocol DSIntermediateResultReceiver
-```
-2.
-```swift
-protocol IntermediateResultReceiver: NSObjectProtocol
-```
-
-## Methods
-
-| Method | Description |
-| ------ | ----------- |
-| [getObservationParameters](#getobservationparameters) | Gets the observed parameters of the intermediate result receiver. |
-| [onTaskResultsReceived](#ontaskresultsreceived) | The callback triggered when task results are received. |
-| [onPredetectedRegionsReceived](#onpredetectedregionsreceived) | The callback triggered when pre-detected regions are received. |
-| [onLocalizedBarcodesReceived](#onlocalizedbarcodesreceived) | The callback triggered when localized barcodes are received. |
-| [onDecodedBarcodesReceived](#ondecodedbarcodesreceived) | The callback triggered when decoded barcodes are received. |
-| [onLocalizedTextLinesReceived](#onlocalizedtextlinesreceived) | The callback triggered when localized text lines are received. |
-| [onRecognizedTextLinesReceived](#onrecognizedtextlinesreceived) | The callback triggered when recognized text lines are received. |
-| [onDetectedQuadsReceived](#ondetectedquadsreceived) | The callback triggered when detected quads are received. |
-| [onNormalizedImagesReceived](#onnormalizedimagesreceived) | The callback triggered when normalized images are received. |
-| [onColourImageUnitReceived](#oncolourimageunitreceived) | The callback triggered when a colour image unit is received. |
-| [onScaledDownColourImageUnitReceived](#onscaleddowncolourimageunitreceived) | The callback triggered when a scaled-down colour image unit is received. |
-| [onGrayscaleImageUnitReceived](#ongrayscaleimageunitreceived) | The callback triggered when a grayscale image unit is received. |
-| [onTransformedGrayscaleImageUnitReceived](#ontransformedgrayscaleimageunitreceived) | The callback triggered when a transformed grayscale image unit is received. |
-| [onEnhancedGrayscaleImageUnitReceived](#onenhancedgrayscaleimageunitreceived) | The callback triggered when an enhanced grayscale image unit is received. |
-| [onBinaryImageUnitReceived](#onbinaryimageunitreceived) | The callback triggered when a binary image unit is received. |
-| [onTextureDetectionResultUnitReceived](#ontexturedetectionresultunitreceived) | The callback triggered when a texture detection result unit is received. |
-| [onTextureRemovedGrayscaleImageUnitReceived](#ontextureremovedgrayscaleimageunitreceived) | The callback triggered when a texture-removed grayscale image unit is received. |
-| [onTextureRemovedBinaryImageUnitReceived](#ontextureremovedbinaryimageunitreceived) | The callback triggered when a texture-removed binary image unit is received. |
-| [onContoursUnitReceived](#oncontoursunitreceived) | The callback triggered when a contours unit is received. |
-| [onLineSegmentsUnitReceived](#onlinesegmentsunitreceived) | The callback triggered when a line segments unit is received. |
-| [onTextZonesUnitReceived](#ontextzonesunitreceived) | The callback triggered when a text zones unit is received. |
-| [onTextRemovedBinaryImageUnitReceived](#ontextremovedbinaryimageunitreceived) | The callback triggered when a text-removed binary image unit is received. |
-| [onShortLinesUnitReceived](#onshortlinesunitreceived) | The callback triggered when a short lines unit is received. |
-| [onLogicLinesUnitReceived](#onlogiclinesunitreceived) | The callback triggered when a logic lines unit is received. |
-| [onLongLinesUnitReceived](#onlonglinesunitreceived) | The callback triggered when a long lines unit is received. |
-| [onCornersUnitReceived](#oncornersunitreceived) | The callback triggered when a corners unit is received. |
-| [onCandidateQuadEdgesUnitReceived](#oncandidatequadedgesunitreceived) | The callback triggered when a candidate quad edges unit are detected. |
-| [onCandidateBarcodeZonesUnitReceived](#oncandidatebarcodezonesunitreceived) | The callback triggered when a candidate barcode zones unit are detected. |
-| [onScaledUpBarcodeImageUnitReceived](#onscaledupbarcodeimageunitreceived) | The callback triggered when a scaled-up barcode image unit is received. |
-| [onDeformationResistedBarcodeImageUnitReceived](#ondeformationresistedbarcodeimageunitreceived) | The callback triggered when a deformation-resisted barcode image unit is received. |
-| [onComplementedBarcodeImageUnitReceived](#oncomplementedbarcodeimageunitreceived) | The callback triggered when a complemented barcode image unit is received. |
-
-### getObservationParameters
-
-Get the observed parameters of the intermediate result receiver.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(ObservationParameters *)getObservationParameters;
-```
-2.
-```swift
-func getObservationParameters() -> ObservationParameters
-```
-
-**Return Value**
-
-An `ObservationParameters` object.
-
-### onTaskResultsReceived
-
-The callback triggered when task results are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onTaskResultsReceived:(IntermediateResult *)unit
- info:(DSIntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onTaskResultsReceived(_ unit: IntermediateResult, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result from the task, of type `IntermediateResult`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onPredetectedRegionsReceived
-
-The callback triggered when pre-detected regions are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onPredetectedRegionsReceived:(PredetectedRegionsUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onPredetectedRegionsReceived(_ unit: PredetectedRegionsUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the pre-detected regions, of type `PredetectedRegionsUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onLocalizedBarcodesReceived
-
-The callback triggered when localized barcodes are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onLocalizedBarcodesReceived:(LocalizedBarcodesUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onLocalizedBarcodesReceived(_ unit: LocalizedBarcodesUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the localized barcodes, of type `LocalizedBarcodesUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onDecodedBarcodesReceived
-
-The callback triggered when decoded barcodes are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onDecodedBarcodesReceived:(DecodedBarcodesUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onDecodedBarcodesReceived(_ unit: DecodedBarcodesUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the decoded barcodes, of type `DecodedBarcodesUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onLocalizedTextLinesReceived
-
-The callback triggered when localized text lines are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onLocalizedTextLinesReceived:(LocalizedTextLinesUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onLocalizedTextLinesReceived(_ unit: LocalizedTextLinesUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the localized text lines, of type `LocalizedTextLinesUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onRecognizedTextLinesReceived
-
-The callback triggered when recognized text lines are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onRecognizedTextLinesReceived:(RecognizedTextLinesUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onRecognizedTextLinesReceived(_ unit: RecognizedTextLinesUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the recognized text lines, of type `RecognizedTextLinesUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onDetectedQuadsReceived
-
-The callback triggered when detected quads are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onDetectedQuadsReceived:(DetectedQuadsUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onDetectedQuadsReceived(_ unit: DetectedQuadsUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the detected quads, of type `DetectedQuadsUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onNormalizedImagesReceived
-
-The callback triggered when normalized images are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onNormalizedImagesReceived:(NormalizedImagesUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onNormalizedImagesReceived(_ unit: NormalizedImagesUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the normalized images, of type `NormalizedImagesUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onColourImageUnitReceived
-
-The callback triggered when colour images are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onColourImageUnitReceived:(ColourImageUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onColourImageUnitReceived(_ unit: ColourImageUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the colour images, of type `ColourImageUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onScaledDownColourImageUnitReceived
-
-The callback triggered when scaled-down colour images are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onScaledDownColourImageUnitReceived:(ScaledDownColourImageUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onScaledDownColourImageUnitReceived(_ unit: ScaledDownColourImageUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the scaled-down colour images, of type `ScaledDownColourImageUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onGrayscaleImageUnitReceived
-
-The callback triggered when grayscale images are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onGrayscaleImageUnitReceived:(GrayscaleImageUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onGrayscaleImageUnitReceived(_ unit: GrayscaleImageUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the grayscale images, of type `GrayscaleImageUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTransformedGrayscaleImageUnitReceived
-
-The callback triggered when transformed grayscale images are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onTransformedGrayscaleImageUnitReceived:(TransformedGrayscaleImageUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onTransformedGrayscaleImageUnitReceived(_ unit: TransformedGrayscaleImageUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the transformed grayscale images, of type `TransformedGrayscaleImageUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onEnhancedGrayscaleImageUnitReceived
-
-The callback triggered when enhanced grayscale images are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onEnhancedGrayscaleImageUnitReceived:(EnhancedGrayscaleImageUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onEnhancedGrayscaleImageUnitReceived(_ unit: EnhancedGrayscaleImageUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the enhanced grayscale images, of type `EnhancedGrayscaleImageUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onBinaryImageUnitReceived
-
-The callback triggered when binary images are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onBinaryImageUnitReceived:(BinaryImageUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onBinaryImageUnitReceived(_ unit: BinaryImageUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the binary images, of type `BinaryImageUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTextureDetectionResultUnitReceived
-
-The callback triggered when texture detection results are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onTextureDetectionResultUnitReceived:(TextureDetectionResultUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onTextureDetectionResultUnitReceived(_ unit: TextureDetectionResultUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the texture detection results, of type `TextureDetectionResultUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTextureRemovedGrayscaleImageUnitReceived
-
-The callback triggered when texture removed grayscale images are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onTextureRemovedGrayscaleImageUnitReceived:(TextureRemovedGrayscaleImageUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onTextureRemovedGrayscaleImageUnitReceived(_ unit: TextureRemovedGrayscaleImageUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the texture removed grayscale images, of type `TextureRemovedGrayscaleImageUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTextureRemovedBinaryImageUnitReceived
-
-The callback triggered when texture removed binary images are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onTextureRemovedBinaryImageUnitReceived:(TextureRemovedBinaryImageUnit *)unit
- info:(IntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onTextureRemovedBinaryImageUnitReceived(_ unit: TextureRemovedBinaryImageUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the texture removed binary images, of type `TextureRemovedBinaryImageUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onContoursUnitReceived
-
-The callback triggered when contours are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onContoursUnitReceived:(ContoursUnit *)unit
- info:(DSIntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onContoursUnitReceived(_ unit: ContoursUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the contours, of type `ContoursUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onShortLinesUnitReceived
-
-The callback triggered when short lines are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (void)onShortLinesUnitReceived:(DSShortLinesUnit*) unit
- info:(DSIntermediateResultExtraInfo *)info;
-```
-2.
-```swift
-func onShortLinesUnitReceived(_ unit: ShortLinesUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the short lines, of type `DSShortLinesUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onLineSegmentsUnitReceived
-
-The callback triggered when line segments are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onLineSegmentsUnitReceived:(LineSegmentsUnit *)unit
- info:(DSIntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onLineSegmentsUnitReceived(_ unit: LineSegmentsUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the line segments, of type `LineSegmentsUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTextZonesUnitReceived
-
-The callback triggered when text zones are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onTextZonesUnitReceived:(TextZonesUnit *)unit
- info:(DSIntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onTextZonesUnitReceived(_ unit: TextZonesUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the text zones, of type `TextZonesUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onTextRemovedBinaryImageUnitReceived
-
-The callback triggered when text removed binary images are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onTextRemovedBinaryImageUnitReceived:(TextRemovedBinaryImageUnit *)unit
- info:(DSIntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onTextRemovedBinaryImageUnitReceived(_ unit: TextRemovedBinaryImageUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the text removed binary images, of type `TextRemovedBinaryImageUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onLogicLinesUnitReceived
-
-The callback triggered when logic lines are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onLogicLinesUnitReceived:(LogicLinesUnit *)unit
- info:(DSIntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onLogicLinesUnitReceived(_ unit: LogicLinesUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the logic lines, of type `LogicLinesUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onLongLinesUnitReceived
-
-The callback triggered when long lines are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onLongLinesUnitReceived:(LongLinesUnit *)unit
- info:(DSIntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onLongLinesUnitReceived(_ unit: LongLinesUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the long lines, of type `LongLinesUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onCornersUnitReceived
-
-The callback triggered when corners are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onCornersUnitReceived:(CornersUnit *)unit
- info:(DSIntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onCornersUnitReceived(_ unit: CornersUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the corners, of type `CornersUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onCandidateQuadEdgesUnitReceived
-
-The callback triggered when candidate quad edges are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onCandidateQuadEdgesUnitReceived:(CandidateQuadEdgesUnit *)unit
- info:(DSIntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onCandidateQuadEdgesUnitReceived(_ unit: CandidateQuadEdgesUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the candidate quad edges, of type `CandidateQuadEdgesUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onCandidateBarcodeZonesUnitReceived
-
-The callback triggered when candidate barcode zones are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onCandidateBarcodeZonesUnitReceived:(CandidateBarcodeZonesUnit *)unit
- info:(DSIntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onCandidateBarcodeZonesUnitReceived(_ unit: CandidateBarcodeZonesUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the candidate barcode zones, of type `CandidateBarcodeZonesUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onScaledUpBarcodeImageUnitReceived
-
-The callback triggered when scaled up barcode images are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onScaledUpBarcodeImageUnitReceived:(ScaledUpBarcodeImageUnit *)unit
- info:(DSIntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onScaledUpBarcodeImageUnitReceived(_ unit: ScaledUpBarcodeImageUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the scaled up barcode images, of type `ScaledUpBarcodeImageUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onDeformationResistedBarcodeImageUnitReceived
-
-The callback triggered when deformation resisted barcode images are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onDeformationResistedBarcodeImageUnitReceived:(DeformationResistedBarcodeImageUnit *)unit
- info:(DSIntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onDeformationResistedBarcodeImageUnitReceived(_ unit: DeformationResistedBarcodeImageUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the deformation resisted barcode images, of type `DeformationResistedBarcodeImageUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
-
-### onComplementedBarcodeImageUnitReceived
-
-The callback triggered when complemented barcode images are received.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)onComplementedBarcodeImageUnitReceived:(ComplementedBarcodeImageUnit *)unit
- info:(DSIntermediateResultExtraInfo *)info
-```
-2.
-```swift
-func onComplementedBarcodeImageUnitReceived(_ unit: ComplementedBarcodeImageUnit, info: IntermediateResultExtraInfo)
-```
-
-**Parameters**
-
-`unit`: The intermediate result that contains the complemented barcode images, of type `ComplementedBarcodeImageUnit`.
-
-`info`: Additional information about the result, of type `IntermediateResultExtraInfo`.
diff --git a/programming/ios/api-reference/capture-vision-router/auxiliary-classes/simplified-capture-vision-settings-v2.6.1004.md b/programming/ios/api-reference/capture-vision-router/auxiliary-classes/simplified-capture-vision-settings-v2.6.1004.md
deleted file mode 100644
index fd9bcd8e..00000000
--- a/programming/ios/api-reference/capture-vision-router/auxiliary-classes/simplified-capture-vision-settings-v2.6.1004.md
+++ /dev/null
@@ -1,224 +0,0 @@
----
-layout: default-layout
-title: DSSimplifiedCaptureVisionSettings - Dynamsoft Capture Vision Router Module iOS Edition API Reference
-description: The class DSSimplifiedCaptureVisionSettings of Dynamsoft Capture Vision Router Module contains settings for capturing and recognizing images with the DSCaptureVisionRouter class.
-keywords: Capture Vision settings, objective-c, swift
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# DSSimplifiedCaptureVisionSettings
-
-The `DSSimplifiedCaptureVisionSettings` class contains settings for capturing and recognizing images with the `DSCaptureVisionRouter` class.
-
-## Definition
-
-*Assembly:* DynamsoftCaptureVisionRouter.xcframework
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@interface DSSimplifiedCaptureVisionSettings : NSObject
-```
-2.
-```swift
-class SimplifiedCaptureVisionSettings : NSObject
-```
-
-## Attributes
-
-| Attributes | Type | Description |
-| ---------- | ---- | ----------- |
-| [`capturedResultItemTypes`](#capturedresultitemtypes) | *NSInteger* | Specifies the type(s) of CapturedItem(s) that will be captured. |
-| [`roi`](#roi) | *[DSQuadrilateral](../../core/basic-structures/quadrilateral.md)* | Specifies the region of interest (ROI) of the image or frame where the capture and recognition will take place. |
-| [`roiMeasuredInPercentage`](#roimeasuredinpercentage) | *BOOL* | Specifies whether the ROI is measured in pixels (false) or as a percentage of the image dimensions (true). |
-| [`maxParallelTasks`](#maxparalleltasks) | *NSInteger* | Specifies the maximum number of parallel tasks that can be used for image capture and recognition. |
-| [`minImageCaptureInterval`](#minimagecaptureinterval) | *NSInteger* | Set the minimum capture interval, measured in milliseconds. |
-| [`timeout`](#timeout) | *NSInteger* | Specifies the maximum time (in milliseconds) allowed for image capture and recognition. |
-| [`barcodeSettings`](#barcodesettings) | *[DSSimplifiedBarcodeReaderSettings]({{ site.dbr_ios_api }}simplified-barcode-reader-settings.html)* | Specifies the settings for the `DynamsoftBarcodeReader` task. |
-| [`labelSettings`](#labelsettings) | *[DSSimplifiedLabelRecognizerSettings]({{ site.dlr_ios_api }}simplified-label-recognizer-settings.html)* | Specifies the settings for the `DynamsoftLabelRecognizer` task. |
-| [`documentSettings`](#documentsettings) | *[SimplifiedDocumentNormalizerSettings]({{ site.ddn_ios_api }}simplified-document-normalizer-settings.html)* | Specifies the settings for the `DynamsoftDocumentNormalizer` task. |
-
-### capturedResultItemTypes
-
-Specifies the type(s) of CapturedItem(s) that will be returned by the Capture Vision Router.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, assign) NSInteger capturedResultItemTypes;
-```
-2.
-```swift
-var capturedResultItemTypes: Int { get set }
-```
-
-**Remarks**
-
-You can specify multiple types. For example, you can use the following code to add `CRIT_ORIGINAL_IMAGE` to the captured results of `PT_READ_BARCODES` template.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DSSimplifiedCaptureVisionSettings *settings = [self.cvr getSimplifiedSettings:DSPresetTemplateReadBarcodes error:nil];
-settings.capturedResultItemTypes = DSCapturedResultItemTypeBarcode | DSCapturedResultItemTypeOriginalImage;
-[self.cvr updateSettings:DSPresetTemplateDefault settings:settings error:nil];
-```
-2.
-```swift
-simplifiedSettings.barcodeSettings?.barcodeFormatIds = [BarcodeFormat.all]
-simplifiedSettings.capturedResultItemTypes = [.barcode, .originalImage]
-try! cvr.updateSettings(PresetTemplate.readBarcodes.rawValue, settings: simplifiedSettings)
-```
-
-> View [`EnumCapturedResultItemType`]({{ site.dcv_enumerations }}core/captured-result-item-type.html?lang=objc,swift) to learn of all supported result item types.
-
-### roi
-
-Specifies the region of interest (ROI) of the image or frame where the capture and recognition will take place.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, strong, nullable) DSQuadrilateral *roi;
-```
-2.
-```swift
-var roi: DSQuadrilateral? { get set }
-```
-
-### roiMeasuredInPercentage
-
-Specifies whether the ROI is measured in pixels (false) or as a percentage of the image dimensions (true).
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, assign) BOOL roiMeasuredInPercentage;
-```
-2.
-```swift
-var roiMeasuredInPercentage: Bool { get set }
-```
-
-### maxParallelTasks
-
-Specifies the maximum number of parallel tasks that can be used for image capture and recognition.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, assign) NSInteger maxParallelTasks;
-```
-2.
-```swift
-var maxParallelTasks: Int { get set }
-```
-
-### minImageCaptureInterval
-
-Set the minimum capture interval (in milliseconds) between consecutive frames when capturing via video. In other words, it is a measure of the frequency in which frames are fetched.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, assign) NSInteger minImageCaptureInterval;
-```
-2.
-```swift
-var minImageCaptureInterval: Int { get set }
-```
-
-**Remarks**
-
-If you find that the battery consumption when using any of the Dynamsoft Capture Vision products, we recommend setting this parameter to a higher value. Please see this [article]({{ site.dbr_ios }}faq/reduce-battery-consumption.html) for more info on how to reduce battery consumption.
-
-### timeout
-
-Specifies the maximum time (in milliseconds) allowed for image capture and recognition.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, assign) NSInteger timeout;
-```
-2.
-```swift
-var timeout: Int { get set }
-```
-
-### barcodeSettings
-
-Specifies the settings for the `DynamsoftBarcodeReader` task with a [`SimplifiedBarcodeReaderSettings`]({{ site.dbr_ios_api }}simplified-barcode-reader-settings.html) object.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, strong, nullable) DSSimplifiedBarcodeReaderSettings *barcodeSettings;
-```
-2.
-```swift
-var barcodeSettings: DSSimplifiedBarcodeReaderSettings? { get set }
-```
-
-### labelSettings
-
-Specifies the settings for the `DynamsoftLabelRecognizer` task with a [`SimplifiedLabelRecognizerSettings`]({{ site.dlr_ios_api }}simplified-label-recognizer-settings.html) object.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, strong, nullable) DSSimplifiedLabelRecognizerSettings *labelSettings;
-```
-2.
-```swift
-var labelSettings: DSSimplifiedLabelRecognizerSettings? { get set }
-```
-
-### documentSettings
-
-Specifies the settings for the `DynamsoftDocumentNormalizer` task with a [`SimplifiedDocumentNormalizerSettings`]({{ site.ddn_ios_api }}simplified-document-normalizer-settings.html) object.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, strong, nullable) DSSimplifiedDocumentNormalizerSettings *documentSettings;
-```
-2.
-```swift
-var documentSettings: DSSimplifiedDocumentNormalizerSettings? { get set }
-```
diff --git a/programming/ios/api-reference/capture-vision-router/settings-v2.4.2000.md b/programming/ios/api-reference/capture-vision-router/settings-v2.4.2000.md
deleted file mode 100644
index 2b73e4c1..00000000
--- a/programming/ios/api-reference/capture-vision-router/settings-v2.4.2000.md
+++ /dev/null
@@ -1,333 +0,0 @@
----
-layout: default-layout
-title: Configure Settings - Dynamsoft Capture Vision Router Module iOS Edition API Reference
-description: Settings configuration APIs of CaptureVisionRouter class for DCV iOS edition.
-keywords: cvr, CaptureVisionRouter, objective-c, swift, initSettings, updateSettings
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# Configure Settings
-
-| Method | Description |
-| ------ | ----------- |
-| [`initSettings`](#initsettings) | Configures runtime settings using a provided JSON string, which contains settings for one or more `CaptureVisionTemplates`. |
-| [`initSettingsFromFile`](#initsettingsfromfile) | Configures runtime settings using a provided JSON file, which contains settings for one or more `CaptureVisionTemplates`. |
-| [`getSimplifiedSettings`](#getsimplifiedsettings) | Retrieves a `SimplifiedCaptureVisionSettings` object that contains simplified settings for the specified `CaptureVisionTemplate`. |
-| [`updateSettings`](#updatesettings) | Updates the specified `CaptureVisionTemplate` with a `SimplifiedCaptureVisionSettings` object. |
-| [`resetSettings`](#resetsettings) | Reset the Capture Vision settings. |
-| [`outputSettings`](#outputsettings) | Returns an object that contains settings for the specified `CaptureVisionTemplate`. |
-| [`outputSettingsToFile`](#outputsettingstofile) | Output the targeted Capture Vision settings to a JSON file. |
-
-## initSettings
-
-Configures runtime settings using a provided JSON string, which contains settings for one or more `CaptureVisionTemplates`.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (BOOL)initSettings:(NSString *)content
- error:(NSError * _Nullable * _Nullable)error
-```
-2.
-```swift
-func initSettings(_ content:String) throws -> BOOL
-```
-
-**Parameters**
-
-`content`: A JSON string that contains Capture Vision settings.
-`error`: An `NSError` pointer. If an error occurs, it will represent the error information.
-
-**Error**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_JSON_PARSE_FAILED | -10030 | Failed to parse the JSON data. |
-| EC_JSON_TYPE_INVALID | -10031 | One or more parameters are allocated with wrong data type. |
-| EC_JSON_KEY_INVALID | -10032 | There exists invalid key in your JSON data. |
-| EC_JSON_VALUE_INVALID | -10033 | There exists invalid parameter value in your JSON data. |
-| EC_JSON_NAME_KEY_MISSING | -10034 | One or more `name` parameters are missing in your JSON data. Each section of the JSON data requires a unique `name` parameter. |
-| EC_JSON_NAME_VALUE_DUPLICATED | -10035 | There exists duplicated `name` parameters in your JSON data. The `name` parameter should be unique. |
-| EC_JSON_NAME_REFERENCE_INVALID | -10037 | You have referenced an invalid `name` value in your JSON data. |
-| EC_PARAMETER_VALUE_INVALID | -10038 | There exists invalid parameter value in your JSON data. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-**Return Value**
-
-A BOOL value that indicates whether the settings are initialized successfully.
-
-## initSettingsFromFile
-
-Configures runtime settings using a provided JSON file, which contains settings for one or more `CaptureVisionTemplates`.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (BOOL)initSettingsFromFile:(NSString *)file
- error:(NSError * _Nullable * _Nullable)error
-```
-2.
-```swift
-func initSettingsFromFile(_ file:String) throws -> BOOL
-```
-
-**Parameters**
-
-`file`: A JSON file that contains Capture Vision settings.
-`error`: An `NSError` pointer. If an error occurs, it will represent the error information.
-
-**Error**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_FILE_NOT_FOUND | -10005 | The file is not found. |
-| EC_JSON_PARSE_FAILED | -10030 | Failed to parse the JSON data. |
-| EC_JSON_TYPE_INVALID | -10031 | One or more parameters are allocated with wrong data type. |
-| EC_JSON_KEY_INVALID | -10032 | There exists invalid key in your JSON data. |
-| EC_JSON_VALUE_INVALID | -10033 | There exists invalid parameter value in your JSON data. |
-| EC_JSON_NAME_KEY_MISSING | -10034 | One or more `name` parameters are missing in your JSON data. Each section of the JSON data requires a unique `name` parameter. |
-| EC_JSON_NAME_VALUE_DUPLICATED | -10035 | There exists duplicated `name` parameters in your JSON data. The `name` parameter should be unique. |
-| EC_JSON_NAME_REFERENCE_INVALID | -10037 | You have referenced an invalid `name` value in your JSON data. |
-| EC_PARAMETER_VALUE_INVALID | -10038 | There exists invalid parameter value in your JSON data. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-**Return Value**
-
-A BOOL value that indicates whether the settings are initialized successfully.
-
-**Code Snippet**
-
-The following steps shows how to read a template file under the `DynamsoftResources.bundle`:
-
-1. Create a **DynamsoftResources** folder in the finder. Under the **DynamsoftResources** folder create a new folder, **Templates**.
-
-2. Put your **.json** template file under the **Templates** folder. Here we suppose you are adding a template file named **ReadPDF417.json**.
-
-3. Rename the **DynamsoftResources** folder's extension name to **.bundle** and drag the **DynamsoftResources.bundle** into your project on Xcode. Select **Create groups** for the **Added folders** option.
-
-
-

-
DynamsoftResources.bundle Example
-
-
-4. Add the following code to your project to initialize the template:
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- [self.cvr initSettingsFromFile:@"ReadPDF417.json" error:nil];
- ```
- 2.
- ```swift
- try! cvr.initSettingsFromFile("ReadPDF417.json")
- ```
-
-5. To use your template, you have to specify the template name in the `startCapturing` or `capture` method.
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- [self.cvr startCapturing:@"ReadPDF417" completionHandler:^(BOOL isSuccess, NSError * _Nullable error) {
- if (!isSuccess && error != nil) {
- // Add code to handle error
- }
- }];
- ```
- 2.
- ```swift
- cvr.startCapturing("ReadPDF417") { isSuccess, error in
- if (!isSuccess) {
- // Add code to handle error
- }
- }
- ```
-
-## getSimplifiedSettings
-
-Retrieves a `SimplifiedCaptureVisionSettings` object that contains simplified settings for the specified `CaptureVisionTemplate`.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (nullable DSSimplifiedCaptureVisionSettings *)getSimplifiedSettings:(NSString *)templateName
- error:(NSError * _Nullable * _Nullable)error;
-```
-2.
-```swift
-func getSimplifiedSettings(_ templateName:String) throws -> SimplifiedCaptureVisionSettings
-```
-
-**Parameters**
-
-`templateName`: Name of the targeted Capture Vision template that is defined in a JSON string or a JSON file.
-`error`: An `NSError` pointer. If an error occurs, it will represent the error information.
-
-**Error**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_TEMPLATE_NAME_INVALID | -10036 | The target template name is invalid. |
-| EC_CONVERT_COMPLEX_TEMPLATE_ERROR | -10061 | The template you specified is a complex template which can not be output as a `SimplifiedCaptureVisionSettings` object. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-**Return Value**
-
-A [`DSSimplifiedCaptureVisionSettings`](auxiliary-classes/simplified-capture-vision-settings.md) object.
-
-**Remarks**
-
-A single JSON string or file can define multiple Capture Vision templates. `getSimplifiedSettings` will only return the simplified settings of the template named in the input parameter, even though there could be several templates in the JSON string/file.
-
-## updateSettings
-
-Updates the specified `CaptureVisionTemplate` with a `SimplifiedCaptureVisionSettings` object.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (BOOL)updateSettings:(NSString *)templateName
- settings:(nonnull DSSimplifiedCaptureVisionSettings *)settings
- error:(NSError * _Nullable * _Nullable)error;
-```
-2.
-```swift
-func updateSettings(_ templateName:String, settings:SimplifiedCaptureVisionSettings) throws -> BOOL
-```
-
-**Parameters**
-
-`templateName`: Specifies a `CaptureVisionTemplate` by its name.
-`settings`: The [`SimplifiedCaptureVisionSettings`](auxiliary-classes/simplified-capture-vision-settings.md) object that contains updated settings.
-`error`: An `NSError` pointer. If an error occurs, it will represent the error information.
-
-**Error**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_TEMPLATE_NAME_INVALID | -10036 | The target template name is invalid. |
-| EC_PARAMETER_VALUE_INVALID | -10038 | There exists invalid parameter value in your `SimplifiedCaptureVisionSettings`. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-**Return Value**
-
-A bool value that indicates whether the settings are uploaded successfully.
-
-## resetSettings
-
-Restores all runtime settings to their original default values.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (BOOL)resetSettings:(NSError * _Nullable * _Nullable)error;
-```
-2.
-```swift
-func resetSettings() throws -> BOOL
-```
-
-**Parameters**
-
-`error`: An `NSError` pointer. If an error occurs, it will represent the error information.
-
-**Error**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-**Return Value**
-
-A BOOL value that indicates whether the settings are reset successfully.
-
-## outputSettings
-
-Returns an object that contains settings for the specified `CaptureVisionTemplate`.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (nullable NSString *)outputSettings:(NSString *)templateName
- error:(NSError * _Nullable * _Nullable)error
-```
-2.
-```swift
-func outputSettings(_ templateName:String) throws -> String
-```
-
-**Parameters**
-
-`error`: An `NSError` pointer. If an error occurs, it will represent the error information.
-
-**Error**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_TEMPLATE_NAME_INVALID | -10036 | The target template name is invalid. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-**Return Value**
-
-The Capture Vision settings in a JSON string.
-
-## outputSettingsToFile
-
-Output a JSON file containing the settings for the specified `CaptureVisionTemplate`.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (BOOL)outputSettingsToFile:(NSString *)templateName
- file:(NSString *)file
- error:(NSError * _Nullable * _Nullable)error;
-```
-2.
-```swift
-func outputSettingsToFile(_ templateName:String, file:String) throws -> BOOL
-```
-
-**Parameters**
-
-`templateName`: The name of the template that you want to output.
-`file`: The file path and name where the template will be output and saved.
-`error`: An `NSError` pointer. If an error occurs, it will represent the error information.
-
-**Error**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_FILE_SAVE_FAILED | -10058 | The file path is unavailable or the file can't be created for any other reasons. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-**Return Value**
-
-A BOOL value that indicates whether the template is output successfully.
diff --git a/programming/ios/api-reference/capture-vision-router/settings-v2.6.1004.md b/programming/ios/api-reference/capture-vision-router/settings-v2.6.1004.md
deleted file mode 100644
index f8b9e7f1..00000000
--- a/programming/ios/api-reference/capture-vision-router/settings-v2.6.1004.md
+++ /dev/null
@@ -1,355 +0,0 @@
----
-layout: default-layout
-title: Configure Settings - Dynamsoft Capture Vision Router Module iOS Edition API Reference
-description: Settings configuration APIs of CaptureVisionRouter class for DCV iOS edition.
-keywords: cvr, CaptureVisionRouter, objective-c, swift, initSettings, updateSettings
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# Configure Settings
-
-| Method | Description |
-| ------ | ----------- |
-| [`initSettings`](#initsettings) | Configures runtime settings using a provided JSON string, which contains settings for one or more `CaptureVisionTemplates`. |
-| [`initSettingsFromFile`](#initsettingsfromfile) | Configures runtime settings using a provided JSON file, which contains settings for one or more `CaptureVisionTemplates`. |
-| [`getSimplifiedSettings`](#getsimplifiedsettings) | Retrieves a `SimplifiedCaptureVisionSettings` object that contains simplified settings for the specified `CaptureVisionTemplate`. |
-| [`getTemplateNames`](#gettemplatenames) | Retrieves the names of all the currently available templates. |
-| [`updateSettings`](#updatesettings) | Updates the specified `CaptureVisionTemplate` with a `SimplifiedCaptureVisionSettings` object. |
-| [`resetSettings`](#resetsettings) | Reset the Capture Vision settings. |
-| [`outputSettings`](#outputsettings) | Returns an object that contains settings for the specified `CaptureVisionTemplate`. |
-| [`outputSettingsToFile`](#outputsettingstofile) | Output the targeted Capture Vision settings to a JSON file. |
-
-## initSettings
-
-Configures runtime settings using a provided JSON string, which contains settings for one or more `CaptureVisionTemplates`.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (BOOL)initSettings:(NSString *)content
- error:(NSError * _Nullable * _Nullable)error
-```
-2.
-```swift
-func initSettings(_ content:String) throws -> BOOL
-```
-
-**Parameters**
-
-`content`: A JSON string that contains Capture Vision settings.
-`error`: An `NSError` pointer. If an error occurs, it will represent the error information.
-
-**Error**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_JSON_PARSE_FAILED | -10030 | Failed to parse the JSON data. |
-| EC_JSON_TYPE_INVALID | -10031 | One or more parameters are allocated with wrong data type. |
-| EC_JSON_KEY_INVALID | -10032 | There exists invalid key in your JSON data. |
-| EC_JSON_VALUE_INVALID | -10033 | There exists invalid parameter value in your JSON data. |
-| EC_JSON_NAME_KEY_MISSING | -10034 | One or more `name` parameters are missing in your JSON data. Each section of the JSON data requires a unique `name` parameter. |
-| EC_JSON_NAME_VALUE_DUPLICATED | -10035 | There exists duplicated `name` parameters in your JSON data. The `name` parameter should be unique. |
-| EC_JSON_NAME_REFERENCE_INVALID | -10037 | You have referenced an invalid `name` value in your JSON data. |
-| EC_PARAMETER_VALUE_INVALID | -10038 | There exists invalid parameter value in your JSON data. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-**Return Value**
-
-A BOOL value that indicates whether the settings are initialized successfully.
-
-## initSettingsFromFile
-
-Configures runtime settings using a provided JSON file, which contains settings for one or more `CaptureVisionTemplates`.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (BOOL)initSettingsFromFile:(NSString *)file
- error:(NSError * _Nullable * _Nullable)error
-```
-2.
-```swift
-func initSettingsFromFile(_ file:String) throws -> BOOL
-```
-
-**Parameters**
-
-`file`: A JSON file that contains Capture Vision settings.
-`error`: An `NSError` pointer. If an error occurs, it will represent the error information.
-
-**Error**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_FILE_NOT_FOUND | -10005 | The file is not found. |
-| EC_JSON_PARSE_FAILED | -10030 | Failed to parse the JSON data. |
-| EC_JSON_TYPE_INVALID | -10031 | One or more parameters are allocated with wrong data type. |
-| EC_JSON_KEY_INVALID | -10032 | There exists invalid key in your JSON data. |
-| EC_JSON_VALUE_INVALID | -10033 | There exists invalid parameter value in your JSON data. |
-| EC_JSON_NAME_KEY_MISSING | -10034 | One or more `name` parameters are missing in your JSON data. Each section of the JSON data requires a unique `name` parameter. |
-| EC_JSON_NAME_VALUE_DUPLICATED | -10035 | There exists duplicated `name` parameters in your JSON data. The `name` parameter should be unique. |
-| EC_JSON_NAME_REFERENCE_INVALID | -10037 | You have referenced an invalid `name` value in your JSON data. |
-| EC_PARAMETER_VALUE_INVALID | -10038 | There exists invalid parameter value in your JSON data. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-**Return Value**
-
-A BOOL value that indicates whether the settings are initialized successfully.
-
-**Code Snippet**
-
-The following steps shows how to read a template file under the `DynamsoftResources.bundle`:
-
-1. Create a **DynamsoftResources** folder in the finder. Under the **DynamsoftResources** folder create a new folder, **Templates**.
-
-2. Put your **.json** template file under the **Templates** folder. Here we suppose you are adding a template file named **ReadPDF417.json**.
-
-3. Rename the **DynamsoftResources** folder's extension name to **.bundle** and drag the **DynamsoftResources.bundle** into your project on Xcode. Select **Create groups** for the **Added folders** option.
-
-
-

-
DynamsoftResources.bundle Example
-
-
-4. Add the following code to your project to initialize the template:
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- [self.cvr initSettingsFromFile:@"ReadPDF417.json" error:nil];
- ```
- 2.
- ```swift
- try! cvr.initSettingsFromFile("ReadPDF417.json")
- ```
-
-5. To use your template, you have to specify the template name in the `startCapturing` or `capture` method. The template name is the name of `CaptureVisionTemplates` in your template file (see in the image of step 3).
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- [self.cvr startCapturing:@"ReadPDF417" completionHandler:^(BOOL isSuccess, NSError * _Nullable error) {
- if (!isSuccess && error != nil) {
- // Add code to handle error
- }
- }];
- ```
- 2.
- ```swift
- cvr.startCapturing("ReadPDF417") { isSuccess, error in
- if (!isSuccess) {
- // Add code to handle error
- }
- }
- ```
-
-## getSimplifiedSettings
-
-Retrieves a `SimplifiedCaptureVisionSettings` object that contains simplified settings for the specified `CaptureVisionTemplate`.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (nullable DSSimplifiedCaptureVisionSettings *)getSimplifiedSettings:(NSString *)templateName
- error:(NSError * _Nullable * _Nullable)error;
-```
-2.
-```swift
-func getSimplifiedSettings(_ templateName:String) throws -> SimplifiedCaptureVisionSettings
-```
-
-**Parameters**
-
-`templateName`: Name of the targeted Capture Vision template that is defined in a JSON string or a JSON file.
-`error`: An `NSError` pointer. If an error occurs, it will represent the error information.
-
-**Error**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_TEMPLATE_NAME_INVALID | -10036 | The target template name is invalid. |
-| EC_CONVERT_COMPLEX_TEMPLATE_ERROR | -10061 | The template you specified is a complex template which can not be output as a `SimplifiedCaptureVisionSettings` object. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-**Return Value**
-
-A [`DSSimplifiedCaptureVisionSettings`](auxiliary-classes/simplified-capture-vision-settings.md) object.
-
-**Remarks**
-
-A single JSON string or file can define multiple Capture Vision templates. `getSimplifiedSettings` will only return the simplified settings of the template named in the input parameter, even though there could be several templates in the JSON string/file.
-
-## getTemplateNames
-
-Retrieves the names of all the currently available templates.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (NSArray*) getTemplateNames;
-```
-2.
-```swift
-func getSimplifiedSettings() -> SimplifiedCaptureVisionSettings
-```
-
-**Return Value**
-
-An array that contains all the currently available templates names.
-
-## updateSettings
-
-Updates the specified `CaptureVisionTemplate` with a `SimplifiedCaptureVisionSettings` object.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (BOOL)updateSettings:(NSString *)templateName
- settings:(nonnull DSSimplifiedCaptureVisionSettings *)settings
- error:(NSError * _Nullable * _Nullable)error;
-```
-2.
-```swift
-func updateSettings(_ templateName:String, settings:SimplifiedCaptureVisionSettings) throws -> BOOL
-```
-
-**Parameters**
-
-`templateName`: Specifies a `CaptureVisionTemplate` by its name.
-`settings`: The [`SimplifiedCaptureVisionSettings`](auxiliary-classes/simplified-capture-vision-settings.md) object that contains updated settings.
-`error`: An `NSError` pointer. If an error occurs, it will represent the error information.
-
-**Error**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_TEMPLATE_NAME_INVALID | -10036 | The target template name is invalid. |
-| EC_PARAMETER_VALUE_INVALID | -10038 | There exists invalid parameter value in your `SimplifiedCaptureVisionSettings`. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-**Return Value**
-
-A bool value that indicates whether the settings are uploaded successfully.
-
-## resetSettings
-
-Restores all runtime settings to their original default values.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (BOOL)resetSettings:(NSError * _Nullable * _Nullable)error;
-```
-2.
-```swift
-func resetSettings() throws -> BOOL
-```
-
-**Parameters**
-
-`error`: An `NSError` pointer. If an error occurs, it will represent the error information.
-
-**Error**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-**Return Value**
-
-A BOOL value that indicates whether the settings are reset successfully.
-
-## outputSettings
-
-Returns an object that contains settings for the specified `CaptureVisionTemplate`.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (nullable NSString *)outputSettings:(NSString *)templateName
- error:(NSError * _Nullable * _Nullable)error
-```
-2.
-```swift
-func outputSettings(_ templateName:String) throws -> String
-```
-
-**Parameters**
-
-`error`: An `NSError` pointer. If an error occurs, it will represent the error information.
-
-**Error**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_TEMPLATE_NAME_INVALID | -10036 | The target template name is invalid. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-**Return Value**
-
-The Capture Vision settings in a JSON string.
-
-## outputSettingsToFile
-
-Output a JSON file containing the settings for the specified `CaptureVisionTemplate`.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (BOOL)outputSettingsToFile:(NSString *)templateName
- file:(NSString *)file
- error:(NSError * _Nullable * _Nullable)error;
-```
-2.
-```swift
-func outputSettingsToFile(_ templateName:String, file:String) throws -> BOOL
-```
-
-**Parameters**
-
-`templateName`: The name of the template that you want to output.
-`file`: The file path and name where the template will be output and saved.
-`error`: An `NSError` pointer. If an error occurs, it will represent the error information.
-
-**Error**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_FILE_SAVE_FAILED | -10058 | The file path is unavailable or the file can't be created for any other reasons. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-**Return Value**
-
-A BOOL value that indicates whether the template is output successfully.
diff --git a/programming/ios/api-reference/core/basic-structures/line-segment-v2.6.1004.md b/programming/ios/api-reference/core/basic-structures/line-segment-v2.6.1004.md
deleted file mode 100644
index 6fd27315..00000000
--- a/programming/ios/api-reference/core/basic-structures/line-segment-v2.6.1004.md
+++ /dev/null
@@ -1,71 +0,0 @@
----
-layout: default-layout
-title: DSLineSegment - Dynamsoft Core Module iOS Edition API Reference
-description: The class DSLineSegment of Dynamsoft Core Module represents a line segment in 2D space, which contains the start point and end point of the line segment.
-keywords: line segment, 2D, objective-c, swift
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# DSLineSegment
-
-The `DSLineSegment` class represents a line segment defined by two `Points`.
-
-## Definition
-
-*Assembly:* DynamsoftCore.xcframework
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@interface DSLineSegment : NSObject
-```
-2.
-```swift
-class LineSegment : NSObject
-```
-
-## Attributes
-
-| Attributes | Type | Description |
-| ---------- | ---- | ----------- |
-| [`startPoint`](#startpoint) | *CGPoint* | The starting point of the line segment. |
-| [`endPoint`](#endpoint) | *CGPoint* | The ending point of the line segment. |
-
-### startPoint
-
-The starting point of the line segment.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property(nonatomic, assign) CGPoint startPoint;
-```
-2.
-```swift
-var startPoint: CGPoint { get set }
-```
-
-### endPoint
-
-The ending point of the line segment.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property(nonatomic, assign) CGPoint endPoint;
-```
-2.
-```swift
-var endPoint: CGPoint { get set }
-```
diff --git a/programming/ios/api-reference/core/basic-structures/quadrilateral-v2.6.1004.md b/programming/ios/api-reference/core/basic-structures/quadrilateral-v2.6.1004.md
deleted file mode 100644
index 653dc38a..00000000
--- a/programming/ios/api-reference/core/basic-structures/quadrilateral-v2.6.1004.md
+++ /dev/null
@@ -1,208 +0,0 @@
----
-layout: default-layout
-title: DSQuadrilateral - Dynamsoft Core Module iOS Edition API Reference
-description: The class DSQuadrilateral of Dynamsoft Core Module represents a quadrilateral shape in 2D space, which contains an array of four CGPoint, representing the vertices of the quadrilateral.
-keywords: quadrilateral, shape, 2D space, objective-c, swift
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# DSQuadrilateral
-
-The `DSQuadrilateral` class represents a quadrilateral defined by four points.
-
-## Definition
-
-*Assembly:* DynamsoftCore.xcframework
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@interface DSQuadrilateral : NSObject
-```
-2.
-```swift
-class Quadrilateral : NSObject
-```
-
-## Methods & Attributes
-
-| Attributes | Type | Description |
-| ---------- | ---- | ----------- |
-| [`points`](#points) | *NSArray* | An array of four `Point` objects defining the vertices of the quadrilateral. |
-
-| Method | Description |
-| ------ | ----------- |
-| [`contains`](#contains) | Check whether the input point is contained by the quadrilateral. |
-| [`boundingRect`](#boundingrect) | Get the bounding rectangle of the quadrilateral. |
-| [`centrePoint`](#centrepoint) | Get the centre point of the quadrilateral. |
-| [`area`](#area) | Get the area of the quadrilateral. |
-
-### points
-
-An array of four `Point` objects defining the vertices of the quadrilateral.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, copy) NSArray *points;
-```
-2.
-```swift
-var points: [CGPoint] { get set }
-```
-
-## contains
-
-Check whether the input point is contained by the quadrilateral.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (BOOL)contains:(CGPoint)point;
-```
-2.
-```swift
-func contains(_ point: CGPoint) -> Bool
-```
-
-**Parameters**
-
-`point`: Input a point.
-
-**Return Value**
-
-A `BOOL` value that indicates whether the point is contained by the quadrilateral.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-BOOL result = [quadrilateral contains:point];
-```
-2.
-```swift
-let result = quadrilateral.contains(point)
-```
-
-## boundingRect
-
-Get the bounding rectangle of the quadrilateral.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, readonly) CGRect *boundingRect;
-```
-2.
-```swift
-var boundingRect: CGRect { get }
-```
-
-**Return Value**
-
-The bounding rectangle of the quadrilateral.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-CGRect rect = [quadrilateral getBoundingRect];
-```
-2.
-```swift
-let rect = quadrilateral.getBoundingRect()
-```
-
-## centrePoint
-
-Get the centre point of the quadrilateral.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, readonly) CGPoint *centrePoint;
-```
-2.
-```swift
-var centrePoint: CGPoint { get }
-```
-
-**Return Value**
-
-The centre point of the quadrilateral.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-CGPoint center = [quadrilateral getCentrePoint];
-```
-2.
-```swift
-let center = quadrilateral.getCentrePoint()
-```
-
-## area
-
-Get the area of the quadrilateral.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, readonly) NSInteger *area;
-```
-2.
-```swift
-var area: Int { get }
-```
-
-**Return Value**
-
-The area of the quadrilateral.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-NSInteger area = [quadrilateral getArea];
-```
-2.
-```swift
-let area = quadrilateral.getArea()
-```
diff --git a/programming/ios/api-reference/core/enum/captured-result-item-type-v2.6.1004.md b/programming/ios/api-reference/core/enum/captured-result-item-type-v2.6.1004.md
deleted file mode 100644
index 1112d14a..00000000
--- a/programming/ios/api-reference/core/enum/captured-result-item-type-v2.6.1004.md
+++ /dev/null
@@ -1,56 +0,0 @@
----
-layout: default-layout
-title: CapturedResultItemType - Dynamsoft Core Enumerations
-description: The enumeration CapturedResultItemType of Dynamsoft Core describes all types of captured result item.
-keywords: Captured result types
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
-breadcrumbText: CapturedResultItemType
-codeAutoHeight: true
----
-
-# Enumeration CapturedResultItemType
-
-`CapturedResultItemType` defines the various categories of items that can be recognized and captured.
-
-
- >- Objective-C
- >- Swift
- >
->
-```objc
-typedef NS_ENUM(NSInteger, DSCapturedResultItemType)
-{
- /** The captured result is a original image. You can convert it into a DSOriginalImageResultItem. */
- DSCapturedResultItemTypeOriginalImage = 1,
- /** The captured result is a decoded barcode. You can convert it into a DSBarcodeResultItem. */
- DSCapturedResultItemTypeBarcode = 2,
- /** The captured result is a recognized text line. You can convert it into a DSTextLineResultItem. */
- DSCapturedResultItemTypeTextLine = 4,
- /** The captured result is a detected quadrilateral. You can convert it into a DSDetectedQuadResultItem. */
- DSCapturedResultItemTypeDetectedQuad = 8,
- /** The captured result is a normalized image. You can convert it into a DSNormalizedImageResultItem. */
- DSCapturedResultItemTypeNormalizedImage = 16,
- /** The captured result is a parsed result. You can convert it into a DSParsedResultItem. */
- DSCapturedResultItemTypeParsedResult = 32,
-};
-```
->
-```swift
-public enum CapturedResultItemType : Int
-{
- /** The captured result is a original image. You can convert it into a DSOriginalImageResultItem. */
- originalImage = 1
- /** The captured result is a decoded barcode. You can convert it into a DSBarcodeResultItem. */
- barcode = 2
- /** The captured result is a recognized text line. You can convert it into a DSTextLineResultItem. */
- textLine = 4
- /** The captured result is a detected quadrilateral. You can convert it into a DSDetectedQuadResultItem. */
- detectedQuad = 8
- /** The captured result is a normalized image. You can convert it into a DSNormalizedImageResultItem. */
- normalizedImage = 16
- /** The captured result is a parsed result. You can convert it into a DSParsedResultItem. */
- parsedResult = 32
-};
-```
diff --git a/programming/ios/api-reference/core/enum/error-code-v2.6.1004.md b/programming/ios/api-reference/core/enum/error-code-v2.6.1004.md
deleted file mode 100644
index dea8f12c..00000000
--- a/programming/ios/api-reference/core/enum/error-code-v2.6.1004.md
+++ /dev/null
@@ -1,481 +0,0 @@
----
-layout: default-layout
-title: ErrorCode - Dynamsoft Core Enumerations
-description: The enumeration ErrorCode of Dynamsoft Core describes all error codes.
-keywords: Error code
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
-breadcrumbText: ErrorCode
-codeAutoHeight: true
----
-
-# Enumeration ErrorCode
-
-`ErrorCode` enumerates the specific error codes that the SDK may return, providing a systematic way to identify and handle errors encountered during its operation.
-
-
- >- Objective-C
- >- Swift
- >
->
-```objc
-typedef NS_ERROR_ENUM(DSErrorDomain, DSError) {
- /**Successful. */
- DSErrorOK = 0,
- /**Unknown error. */
- DSErrorUnknown = -10000,
- /**Not enough memory to perform the operation. */
- DSErrorNoMemory = -10001,
- /**Null pointer */
- DSErrorNullPointer = -10002,
- /**License invalid*/
- DSErrorLicenseInvalid = -10003,
- /**License expired*/
- DSErrorLicenseExpired = -10004,
- /**File not found*/
- DSErrorFileNotFound = -10005,
- /**The file type is not supported. */
- DSErrorFiletypeNotSupported = -10006,
- /**The BPP (Bits Per Pixel) is not supported. */
- DSErrorBPPNotSupported = -10007,
- /**Failed to read the image. */
- DSErrorImageReadFailed = -10012,
- /**Failed to read the TIFF image. */
- DSErrorTiffReadFailed = -10013,
- /**The DIB (Device-Independent Bitmaps) buffer is invalid. */
- DSErrorDIBBufferInvalid = -10018,
- /**Failed to read the PDF image. */
- DSErrorPdfReadFailed = -10021,
- /**The PDF DLL is missing. */
- DSErrorPdfDllMissing = -10022,
- /**The page number is invalid. */
- DSErrorPageNumberInvalid = -10023,
- /**The custom size is invalid. */
- DSErrorCustomSizeInvalid = -10024,
- /** timeout. */
- DSErrorTimeout = -10026,
- /**Json parse failed*/
- DSErrorJsonParseFailed = -10030,
- /**Json type invalid*/
- DSErrorJsonTypeInvalid = -10031,
- /**Json key invalid*/
- DSErrorJsonKeyInvalid = -10032,
- /**Json value invalid*/
- DSErrorJsonValueInvalid = -10033,
- /**Json name key missing*/
- DSErrorJsonNameKeyMissing = -10034,
- /**The value of the key "Name" is duplicated.*/
- DSErrorJsonNameValueDuplicated = -10035,
- /**Template name invalid*/
- DSErrorTemplateNameInvalid = -10036,
- /**The name reference is invalid.*/
- DSErrorJsonNameReferenceInvalid = -10037,
- /**Parameter value invalid*/
- DSErrorParameterValueInvalid = -10038,
- /**The domain of your current site does not match the domain bound in the current product key.*/
- DSErrorDomainNotMatch = -10039,
- /**The reserved info does not match the reserved info bound in the current product key.*/
- DSErrorReservedInfoNotMatch = -10040,
- /**The license key does not match the license content.*/
- DSErrorLicenseKeyNotMatch = -10043,
- /**Failed to request the license content.*/
- DSErrorRequestFailed = -10044,
- /**Failed to init the license.*/
- DSErrorLicenseInitFailed = -10045,
- /**Failed to set mode's argument.*/
- DSErrorSetModeArgumentError = -10051,
- /**The license content is invalid.*/
- DSErrorLicenseContentInvalid = -10052,
- /**The license key is invalid.*/
- DSErrorLicenseKeyInvalid = -10053,
- /**The license key has no remaining quota.*/
- DSErrorLicenseDeviceRunsOut = -10054,
- /**Failed to get mode's argument.*/
- DSErrorGetModeArgumentError = -10055,
- /**The Intermediate Result Types license is invalid.*/
- DSErrorIrtLicenseInvalid = -10056,
- /**Failed to save file.*/
- DSErrorFileSaveFailed = -10058,
- /**The stage type is invalid.*/
- DSErrorStageTypeInvalid = -10059,
- /**The image orientation is invalid.*/
- DSErrorImageOrientationInvalid = -10060,
- /**Failed to convert complex tempalte to simplified settings.*/
- DSErrorConvertComplexTemplateError = -10061,
- /**Reject function call while capturing in progress.*/
- DSErrorCallRejectedWhenCapturing = -10062,
- /**The input image source was not found.*/
- DSErrorNoImageSource = -10063,
- /**Failed to read directory.*/
- DSErrorReadDirectoryFailed = -10064,
- /**[Name] Module not found.*/
- /**Name : */
- /**DynamsoftBarcodeReader*/
- /**DynamsoftLabelRecognizer*/
- /**DynamsoftDocumentNormalizer*/
- DSErrorModuleNotFound = -10065,
- /**The file already exists but overwriting is disabled.*/
- DSErrorFileAlreadyExists = -10067,
- /**The file path does not exist but cannot be created, or cannot be created for any other reason.*/
- DSErrorCreateFileFailed = -10068,
- /**The input ImageData object contains invalid parameter(s).*/
- DSErrorImageDataInvalid = -10069,
- /**The size of the input image does not meet the requirements.*/
- DSErrorImageSizeNotMatch = -10070,
- /**The pixel format of the input image does not meet the requirements.*/
- DSErrorImagePixelFormatNotMatch = -10071,
- /**The section level result is irreplaceable.*/
- DSErrorSectionLevelResultIrreplaceable = -10072,
- /**The axis definition is incorrect.*/
- DSErrorAxisDefinitionIncorrect = -10073,
- /**The result is not replaceable due to type mismatch*/
- DSErrorResultTypeMismatchIrreplaceable = -10074,
- /**Failed to load the PDF library.*/
- DSErrorPDFLibraryLoadFailed = -10075,
- /*The license is initialized successfully but detected invalid content in your key.*/
- DSErrorLicenseWarning = -10076,
- /**No license.*/
- DSErrorNoLicense = -20000,
- /**The handshake code is invalid. */
- DSErrorHandshakeCodeInvalid = -20001,
- /**Failed to read or write license cache. */
- DSErrorLicenseBufferFailed = -20002,
- /**Falied to synchronize license info wirh license tracking server. */
- DSErrorLicenseSyncFailed = -20003,
- /**Device does not match with license buffer. */
- DSErrorDeviceNotMatch = -20004,
- /**Falied to bind device. */
- DSErrorBindDeviceFailed = -20005,
- /**Install.*/
- DSErrorInstanceCountOverLimit = -20008,
- /**Trial License*/
- DSErrorTrialLicense = -20010,
- /**The license is not valid for current version*/
- DSErrorLicenseVersionNotMatch = -20011,
- /**Failed to reach License Tracking Server.*/
- DSErrorFailedToReachDLS = -20200
- /** -30000~-39999: DBR error code. */
- /** The barcode format is invalid. */
- DSErrorBarcodeFormatInvalid = -30009,
- /** The QR Code license is invalid. */
- DSErrorQRLicenseInvalid = -30016,
- /** The 1D Barcode license is invalid. */
- DSError1DLicenseInvalid = -30017,
- /** The PDF417 license is invalid. */
- DSErrorPDF417LicenseInvalid = -30019,
- /** The DATAMATRIX license is invalid. */
- DSErrorDATAMATRIXLicenseInvalid = -30020,
- /** The custom module size is invalid. */
- DSErrorCustomModuleSizeInvalid = -30025,
- /** The AZTEC license is invalid. */
- DSErrorAztecLicenseInvalid = -30041,
- /** The Patchcode license is invalid. */
- DSErrorPatchCodeLicenseInvalid = -30046,
- /** The Postal code license is invalid. */
- DSErrorPostalCodeLicenseInvalid = -30047,
- /** The DPM license is invalid. */
- DSErrorDPMLicenseInvalid = -30048,
- /** The frame decoding thread already exists. */
- DSErrorFrameDecodingThreadExists = -30049,
- /** Failed to stop the frame decoding thread. */
- DSErrorStopDecodingThreadFailed = -30050,
- /** The Maxicode license is invalid. */
- DSErrorMaxiCodeLicenseInvalid = -30057,
- /** The GS1 Databar license is invalid. */
- DSErrorGS1DatabarLicenseInvalid = -30058,
- /** The GS1 Composite code license is invalid. */
- DSErrorGS1CompositeLicenseInvalid = -30059,
- /** The DotCode license is invalid. */
- DSErrorDotCodeLicenseInvalid = -30061,
- /** The Pharmacode license is invalid. */
- DSErrorPharmaCodeLicenseInvalid = -30062,
- /*[Barcode Reader] No license found.*/
- DSErrorDBRLicenseNotFound = -30063,
- /** -40000~-49999: DLR error code */
- /** Character Model file is not found. */
- DSErrorCharacterModelFileNotFound = -40100,
- /** There is a conflict in the layout of TextLineGroup. */
- DSErrorTextLineGroupLayoutConflict = -40101,
- /** There is a conflict in the regex of TextLineGroup. */
- DSErrorTextLineGroupRegexConflict = -40102,
- /*[Label Recognizer] No license found.*/
- DSErrorDLRLicenseNotFound = -40103,
- /** -50000~-59999: DDN error code. */
- /**No content has been detected. */
- DSErrorContentNotFound = -50056,
- /*The quardrilateral is invalid. */
- DSErrorQuardrilateralInvalid = -50057,
- /*[Document Normalizer] No license found.*/
- DSErrorDDNLicenseNotFound = -50058,
- /** -60000~-69999: DCE error code. */
- /** The camera module is not exist. */
- DSErrorCameraModelNotExist = -60003,
- /** The camera id does not exist. */
- DSErrorCameraIDNotExist = -60006,
- /** The sensor does not exist. */
- DSErrorNoSensor = -60045,
- /** The camera type is not supported.*/
- DSErrorCameraTypeNotSupported = -60046;
- /**-70000~-79999: Panorama error code. */
- /**The panorama license is invalid. */
- DSErrorPanoramaLicenseInvalid = -70060,
- /** -80000~-89999: Reserved error code. */
- /**-90000~-99999: DCP error code. */
- /** The resource path is not exist. */
- DSErrorResourcePathNotExist = -90001,
- /** Failed to load resource. */
- DSErrorResourceLoadFailed = -90002,
- /** The code specification is not found. */
- DSErrorSpecificationNotFound = -90003,
- /** The full code string is empty. */
- DSErrorFullCodeEmpty = -90004,
- /** Failed to preprocess the full code string */
- DSErrorFullCodePreprocessFailed = -90005,
- /** The license for parsing South Africa Driver License is invalid. */
- DSErrorZADLLicenseInvalid = -90006,
- /** The license for parsing North America DL/ID is invalid. */
- DSErrorAAMVADLIDLicenseInvalid = -90007,
- /** The license for parsing Aadhaar is invalid. */
- DSErrorAADHAARLicenseInvalid = -90008,
- /** The license for parsing Machine Readable Travel Documents is invalid. */
- DSErrorMRTDLicenseInvalid = -90009,
- /** The license for parsing Vehicle Identification Number is invalid. */
- DSErrorVINLicenseInvalid = -90010,
- /** The license for parsing customized code type is invalid. */
- DSErrorCustomizedCodeTypeLicenseInvalid = -90011,
- /*[Code Parser] No license found.*/
- DSErrorDCPLicenseNotFound = -90012
-};
-```
->
-```swift
-public enum ErrorCode : Int
-{
- /**Successful. */
- oK = 0
- /**Unknown error. */
- unknown = -10000
- /**Not enough memory to perform the operation. */
- noMemory = -10001
- /**Null pointer */
- nullPointer = -10002
- /**License invalid*/
- licenseInvalid = -10003
- /**License expired*/
- licenseExpired = -10004
- /**File not found*/
- fileNotFound = -10005
- /**The file type is not supported. */
- filetypeNotSupported = -10006
- /**The BPP (Bits Per Pixel) is not supported. */
- bppNotSupported = -10007
- /**Failed to read the image. */
- imageReadFailed = -10012
- /**Failed to read the TIFF image. */
- tiffReadFailed = -10013
- /**The DIB (Device-Independent Bitmaps) buffer is invalid. */
- dibBufferInvalid = -10018,
- /**Failed to read the PDF image. */
- pdfReadFailed = -10021
- /**The PDF DLL is missing. */
- pdfDllMissing = -10022
- /**The page number is invalid. */
- pageNumberInvalid = -10023
- /**The custom size is invalid. */
- customSizeInvalid = -10024
- /** timeout. */
- timeout = -10026
- /**Json parse failed*/
- jsonParseFailed = -10030
- /**Json type invalid*/
- jsonTypeInvalid = -10031
- /**Json key invalid*/
- jsonKeyInvalid = -10032
- /**Json value invalid*/
- jsonValueInvalid = -10033
- /**Json name key missing*/
- jsonNameKeyMissing = -10034
- /**The value of the key "Name" is duplicated.*/
- jsonNameValueDuplicated = -10035
- /**Template name invalid*/
- templateNameInvalid = -10036
- /**The name reference is invalid.*/
- jsonNameReferenceInvalid = -10037
- /**Parameter value invalid*/
- parameterValueInvalid = -10038
- /**The domain of your current site does not match the domain bound in the current product key.*/
- domainNotMatch = -10039
- /**The reserved info does not match the reserved info bound in the current product key.*/
- reservedInfoNotMatch = -10040
- /**The license key does not match the license content.*/
- licenseKeyNotMatch = -10043
- /**Failed to request the license content.*/
- requestFailed = -10044
- /**Failed to init the license.*/
- licenseInitFailed = -10045
- /**Failed to set mode's argument.*/
- setModeArgumentError = -10051
- /**The license content is invalid.*/
- licenseContentInvalid = -10052
- /**The license key is invalid.*/
- licenseKeyInvalid = -10053
- /**The license key has no remaining quota.*/
- licenseDeviceRunsOut = -10054
- /**Failed to get mode's argument.*/
- getModeArgumentError = -10055
- /**The Intermediate Result Types license is invalid.*/
- irtLicenseInvalid = -10056
- /**Failed to save file.*/
- fileSaveFailed = -10058
- /**The stage type is invalid.*/
- stageTypeInvalid = -10059
- /**The image orientation is invalid.*/
- imageOrientationInvalid = -10060
- /**Failed to convert complex tempalte to simplified settings.*/
- convertComplexTemplateError = -10061
- /**Reject function call while capturing in progress.*/
- callRejectedWhenCapturing = -10062
- /**The input image source was not found.*/
- noImageSource = -10063
- /**Failed to read directory.*/
- readDirectoryFailed = -10064
- /**[Name] Module not found.*/
- /**Name : */
- /**DynamsoftBarcodeReader*/
- /**DynamsoftLabelRecognizer*/
- /**DynamsoftDocumentNormalizer*/
- moduleNotFound = -10065
- /**The file already exists but overwriting is disabled.*/
- fileAlreadyExists = -10067
- /**The file path does not exist but cannot be created, or cannot be created for any other reason.*/
- createFileFailed = -10068
- /**The input ImageData object contains invalid parameter(s).*/
- imageDataInvalid = -10069
- /**The size of the input image does not meet the requirements.*/
- imageSizeNotMatch = -10070
- /**The pixel format of the input image does not meet the requirements.*/
- imagePixelFormatNotMatch = -10071
- /**The section level result is irreplaceable.*/
- sectionLevelResultIrreplaceable = -10072
- /**The axis definition is incorrect.*/
- axisDefinitionIncorrect = -10073
- /**The result is not replaceable due to type mismatch*/
- resultTypeMismatchIrreplaceable = -10074
- /**Failed to load the PDF library.*/
- pdfLibraryLoadFailed = -10075
- /*The license is initialized successfully but detected invalid content in your key.*/
- licenseWarning = -10076
- /**No license.*/
- noLicense = -20000
- /**The handshake code is invalid. */
- handshakeCodeInvalid = -20001
- /**Failed to read or write license cache. */
- licenseBufferFailed = -20002
- /**Falied to synchronize license info wirh license tracking server. */
- licenseSyncFailed = -20003
- /**Device does not match with license buffer. */
- deviceNotMatch = -20004
- /**Falied to bind device. */
- bindDeviceFailed = -20005
- /**Install.*/
- instanceCountOverLimit = -20008
- /**Trial License*/
- trialLicense = -20010
- /**The license is not valid for current version*/
- licenseVersionNotMatch = -20011
- /**Failed to reach License Tracking Server.*/
- failedToReachDLS = -20200
- /** -30000~-39999: DBR error code. */
- /** The barcode format is invalid. */
- barcodeFormatInvalid = -30009
- /** The QR Code license is invalid. */
- qrLicenseInvalid = -30016
- /** The 1D Barcode license is invalid. */
- 1DLicenseInvalid = -30017
- /** The PDF417 license is invalid. */
- pdf417LicenseInvalid = -30019
- /** The DATAMATRIX license is invalid. */
- dataMatrixLicenseInvalid = -30020
- /** The custom module size is invalid. */
- customModuleSizeInvalid = -30025
- /** The AZTEC license is invalid. */
- aztecLicenseInvalid = -30041
- /** The Patchcode license is invalid. */
- patchCodeLicenseInvalid = -30046
- /** The Postal code license is invalid. */
- postalCodeLicenseInvalid = -30047
- /** The DPM license is invalid. */
- dpmLicenseInvalid = -30048
- /** The frame decoding thread already exists. */
- frameDecodingThreadExists = -30049
- /** Failed to stop the frame decoding thread. */
- stopDecodingThreadFailed = -30050
- /** The Maxicode license is invalid. */
- maxiCodeLicenseInvalid = -30057
- /** The GS1 Databar license is invalid. */
- gs1DatabarLicenseInvalid = -30058
- /** The GS1 Composite code license is invalid. */
- gs1CompositeLicenseInvalid = -30059
- /** The DotCode license is invalid. */
- dotCodeLicenseInvalid = -30061
- /** The Pharmacode license is invalid. */
- pharmaCodeLicenseInvalid = -30062
- /*[Barcode Reader] No license found.*/
- dbrLicenseNotFound = -30063
- /** -40000~-49999: DLR error code */
- /** Character Model file is not found. */
- characterModelFileNotFound = -40100
- /** There is a conflict in the layout of TextLineGroup. */
- textLineGroupLayoutConflict = -40101
- /** There is a conflict in the regex of TextLineGroup. */
- textLineGroupRegexConflict = -40102
- /*[Label Recognizer] No license found.*/
- dlrLicenseNotFound = -40103
- /** -50000~-59999: DDN error code. */
- /** No content has been detected. */
- contentNotFound = -50056
- /*The quardrilateral is invalid. */
- quardrilateralInvalid = -50057
- /*[Document Normalizer] No license found.*/
- ddnLicenseNotFound = -50058
- /** -60000~-69999: DCE error code. */
- /** The camera module is not exist. */
- cameraModelNotExist = -60003
- /** The camera id does not exist. */
- cameraIDNotExist = -60006
- /** The sensor does not exist. */
- noSensor = -60045
- /** The camera type is not supported.*/
- cameraTypeNotSupported = -60046;
- /**-70000~-79999: Panorama error code. */
- /**The panorama license is invalid. */
- panoramaLicenseInvalid = -70060
- /** -80000~-89999: Reserved error code. */
- /**-90000~-99999: DCP error code. */
- /** The resource path is not exist. */
- resourcePathNotExist = -90001
- /** Failed to load resource. */
- resourceLoadFailed = -90002
- /** The code specification is not found. */
- codeSpecificationNotFound = -90003
- /** The full code string is empty. */
- fullCodeEmpty = -90004
- /** Failed to preprocess the full code string */
- fullCodePreprocessFailed = -90005
- /** The license for parsing South Africa Driver License is invalid. */
- zadlLicenseInvalid = -90006
- /** The license for parsing North America DL/ID is invalid. */
- aamvadlidLicenseInvalid = -90007
- /** The license for parsing Aadhaar is invalid. */
- aadhaarLicenseInvalid = -90008
- /** The license for parsing Machine Readable Travel Documents is invalid. */
- mrtdLicenseInvalid = -90009
- /** The license for parsing Vehicle Identification Number is invalid. */
- vinLicenseInvalid = -90010
- /** The license for parsing customized code type is invalid. */
- customizedCodeTypeLicenseInvalid = -90011
- /*[Code Parser] No license found.*/
- dcpLicenseNotFound = -90012
-}
-```
diff --git a/programming/ios/api-reference/core/enum/grayscale-enhancement-mode-v2.6.1004.md b/programming/ios/api-reference/core/enum/grayscale-enhancement-mode-v2.6.1004.md
deleted file mode 100644
index cb61b297..00000000
--- a/programming/ios/api-reference/core/enum/grayscale-enhancement-mode-v2.6.1004.md
+++ /dev/null
@@ -1,60 +0,0 @@
----
-layout: default-layout
-title: GrayscaleEnhancementMode - Dynamsoft Core Enumerations
-description: The enumeration GrayscaleEnhancementMode of Dynamsoft Core describes all available grayscale enhancement modes.
-keywords: Grayscale enhancement modes
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
-breadcrumbText: GrayscaleEnhancementMode
-codeAutoHeight: true
----
-
-# Enumeration GrayscaleEnhancementMode
-
-`GrayscaleEnhancementMode` specifies the method employed to enhance images in grayscale.
-
-
- >- Objective-C
- >- Swift
- >
->
-```objc
-typedef NS_ENUM(NSInteger, DSGrayscaleEnhancementMode)
-{
- /**Not supported yet. */
- DSGrayscaleEnhancementModeAuto = 1,
- /**Takes the unpreprocessed image for following operations.*/
- DSGrayscaleEnhancementModeGeneral = 2,
- /**Preprocesses the image using the gray equalization algorithm. Check @ref IPM for available argument settings.*/
- DSGrayscaleEnhancementModeGrayEqualize = 4,
- /**Preprocesses the image using the gray smoothing algorithm. Check @ref IPM for available argument settings.*/
- DSGrayscaleEnhancementModeGraySmooth = 8,
- /**Preprocesses the image using the sharpening and smoothing algorithm. Check @ref IPM for available argument settings.*/
- DSGrayscaleEnhancementModeSharpenSmooth = 16,
- /**Reserved setting for image preprocessing mode.*/
- DSGrayscaleEnhancementModeRev = -2147483648,
- /**Skips image preprocessing. */
- DSGrayscaleEnhancementModeSkip = 0
-};
-```
->
-```swift
-public enum GrayscaleEnhancementMode : Int
-{
- /**Not supported yet. */
- auto = 1
- /**Takes the unpreprocessed image for following operations.*/
- general = 2
- /**Preprocesses the image using the gray equalization algorithm. Check @ref IPM for available argument settings.*/
- grayEqualize = 4
- /**Preprocesses the image using the gray smoothing algorithm. Check @ref IPM for available argument settings.*/
- graySmooth = 8
- /**Preprocesses the image using the sharpening and smoothing algorithm. Check @ref IPM for available argument settings.*/
- sharpenSmooth = 16
- /**Reserved setting for image preprocessing mode.*/
- rev = -2147483648
- /**Skips image preprocessing. */
- skip = 0
-}
-```
diff --git a/programming/ios/api-reference/core/enum/grayscale-transformation-mode-v2.6.1004.md b/programming/ios/api-reference/core/enum/grayscale-transformation-mode-v2.6.1004.md
deleted file mode 100644
index 57d15843..00000000
--- a/programming/ios/api-reference/core/enum/grayscale-transformation-mode-v2.6.1004.md
+++ /dev/null
@@ -1,52 +0,0 @@
----
-layout: default-layout
-title: GrayscaleTransformationMode - Dynamsoft Core Enumerations
-description: The enumeration GrayscaleTransformationMode of Dynamsoft Core describes all available grayscale transformation modes.
-keywords: Grayscale transformation modes
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
-breadcrumbText: GrayscaleTransformationMode
-codeAutoHeight: true
----
-
-# Enumeration GrayscaleTransformationMode
-
-`GrayscaleTransformationMode` specifies the method employed to transform images in grayscale.
-
-
- >- Objective-C
- >- Swift
- >
->
-```objc
-typedef NS_ENUM(NSInteger, DSGrayscaleTransformationMode)
-{
- /** Transforms to the inverted grayscale for further reference. This value is recommended for light on dark images. */
- DSGrayscaleTransformationModeInverted = 0x01,
- /** Keeps the original grayscale for further reference. This value is recommended for dark on light images. */
- DSGrayscaleTransformationModeOriginal = 0x02,
- /**Lets the library choose an algorithm automatically for grayscale transformation.*/
- DSGrayscaleTransformationModeAuto = 0x04,
- /** Skips grayscale transformation. */
- DSGrayscaleTransformationModeSkip = 0x00,
- /** Reserved setting for grayscale transformation mode. */
- DSGrayscaleTransformationModeRev = -2147483648
-};
-```
->
-```swift
-public enum GrayscaleTransformationMode : Int
-{
- /** Transforms to the inverted grayscale for further reference. This value is recommended for light on dark images. */
- inverted = 0x01
- /** Keeps the original grayscale for further reference. This value is recommended for dark on light images. */
- original = 0x02
- /**Lets the library choose an algorithm automatically for grayscale transformation.*/
- auto = 0x04
- /** Skips grayscale transformation. */
- skip = 0x00
- /** Reserved setting for grayscale transformation mode. */
- rev = -2147483648
-}
-```
diff --git a/programming/ios/api-reference/core/enum/intermediate-result-unit-type-v2.6.1004.md b/programming/ios/api-reference/core/enum/intermediate-result-unit-type-v2.6.1004.md
deleted file mode 100644
index 63168ce4..00000000
--- a/programming/ios/api-reference/core/enum/intermediate-result-unit-type-v2.6.1004.md
+++ /dev/null
@@ -1,158 +0,0 @@
----
-layout: default-layout
-title: IntermediateResultUnitType - Dynamsoft Core Enumerations
-description: The enumeration IntermediateResultUnitType of Dynamsoft Core describes the type of the intermediate result unit.
-keywords: Intermediate result unit type
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
-breadcrumbText: IntermediateResultUnitType
-codeAutoHeight: true
----
-
-# Enumeration IntermediateResultUnitType
-
-`IntermediateResultUnitType` defines different types of intermediate results generated or expected to be generated during image processing.
-
-
- >- Objective-C
- >- Swift
- >
->
-```objc
-typedef NS_OPTIONS(NSUInteger, DSIntermediateResultUnitType) {
- /** No intermediate result. */
- DSIntermediateResultUnitTypeNull = 0,
- /** A full-color image. */
- DSIntermediateResultUnitTypeColourImage = 1,
- /** A color image that has been scaled down for efficiency. */
- DSIntermediateResultUnitTypeScaledDownColourImage = 1 << 1,
- /** A grayscale image derived from the original input. */
- DSIntermediateResultUnitTypeGrayscaleImage = 1 << 2,
- /** A grayscale image that has undergone transformation. */
- DSIntermediateResultUnitTypeTransformedGrayscaleImage = 1 << 3,
- /** A grayscale image enhanced for further processing. */
- DSIntermediateResultUnitTypeEnhancedGrayscaleImage = 1 << 4,
- /** Regions pre-detected as potentially relevant for further analysis. */
- DSIntermediateResultUnitTypePredetectedRegions = 1 << 5,
- /** A binary (black and white) image. */
- DSIntermediateResultUnitTypeBinaryImage = 1 << 6,
- /** Results from detecting textures within the image. */
- DSIntermediateResultUnitTypeTextureDetectionResult = 1 << 7,
- /** A grayscale image with textures removed to enhance subject details like text or barcodes. */
- DSIntermediateResultUnitTypeTextureRemovedGrayscaleImage = 1 << 8,
- /** A binary image with textures removed, useful for clear detection of subjects without background noise. */
- DSIntermediateResultUnitTypeTextureRemovedBinaryImage = 1 << 9,
- /** Detected contours within the image, which can help in identifying shapes and objects. */
- DSIntermediateResultUnitTypeContours = 1 << 10,
- /** Detected line segments, useful in structural analysis of the image content. */
- DSIntermediateResultUnitTypeLineSegments = 1 << 11,
- /** Identified text zones, indicating areas with potential textual content. */
- DSIntermediateResultUnitTypeTextZones = 1 << 12,
- /** A binary image with text regions removed. */
- DSIntermediateResultUnitTypeTextRemovedBinaryImage = 1 << 13,
- /** Zones identified as potential barcode areas, aiding in focused barcode detection. */
- DSIntermediateResultUnitTypeCandidateBarcodeZones = 1 << 14,
- /** Barcodes that have been localized but not yet decoded. */
- DSIntermediateResultUnitTypeLocalizedBarcodes = 1 << 15,
- /** Barcode images scaled up for improved readability or decoding accuracy. */
- DSIntermediateResultUnitTypeScaledUpBarcodeImage = 1 << 16,
- /** Images of barcodes processed to resist deformation and improve decoding success. */
- DSIntermediateResultUnitTypeDeformationResistedBarcodeImage = 1 << 17,
- /** Barcode images that have been complemented. */
- DSIntermediateResultUnitTypeComplementedBarcodeImage = 1 << 18,
- /** Successfully decoded barcodes. */
- DSIntermediateResultUnitTypeDecodedBarcodes = 1 << 19,
- /** Detected long lines. */
- DSIntermediateResultUnitTypeLongLines = 1 << 20,
- /** Detected corners within the image. */
- DSIntermediateResultUnitTypeCorners = 1 << 21,
- /** Candidate edges identified as potential components of quadrilaterals. */
- DSIntermediateResultUnitTypeCandidateQuadEdges = 1 << 22,
- /** Successfully detected quadrilaterals. */
- DSIntermediateResultUnitTypeDetectedQuads = 1 << 23,
- /** Text lines that have been localized in preparation for recognition. */
- DSIntermediateResultUnitTypeLocalizedTextLines = 1 << 24,
- /** Successfully recognized text lines. */
- DSIntermediateResultUnitTypeRecognizedTextLines = 1 << 25,
- /** Successfully normalized images. */
- DSIntermediateResultUnitTypeNormalizedImages = 1 << 26,
- /** Detected short lines. */
- DSIntermediateResultUnitTypeShortLines = 1 << 27,
- /** Recognized raw text lines. */
- DSIntermediateResultUnitTypeRawTextLines = 1 << 28,
- /**Detected logic lines.*/
- DSIntermediateResultUnitTypeLogicLines = 1 << 29,
- /** A mask to select all types of intermediate results. */
- DSIntermediateResultUnitTypeAll = 0xFFFFFFFFFFFFFFFF
-};
-```
->
-```swift
-public enum IntermediateResultUnitType: Int {
- /** No intermediate result. */
- case null = 0
- /** A full-color image. */
- case colourImage = 1
- /** A color image that has been scaled down for efficiency. */
- case scaledDownColourImage = 1 << 1
- /** A grayscale image derived from the original input. */
- case grayscaleImage = 1 << 2
- /** A grayscale image that has undergone transformation. */
- case transformedGrayscaleImage = 1 << 3
- /** A grayscale image enhanced for further processing. */
- case enhancedGrayscaleImage = 1 << 4
- /** Regions pre-detected as potentially relevant for further analysis. */
- case predetectedRegions = 1 << 5
- /** A binary (black and white) image. */
- case binaryImage = 1 << 6
- /** Results from detecting textures within the image. */
- case textureDetectionResult = 1 << 7
- /** A grayscale image with textures removed to enhance subject details like text or barcodes. */
- case textureRemovedGrayscaleImage = 1 << 8
- /** A binary image with textures removed, useful for clear detection of subjects without background noise. */
- case textureRemovedBinaryImage = 1 << 9
- /** Detected contours within the image, which can help in identifying shapes and objects. */
- case contours = 1 << 10
- /** Detected line segments, useful in structural analysis of the image content. */
- case lineSegments = 1 << 11
- /** Identified text zones, indicating areas with potential textual content. */
- case textZones = 1 << 12
- /** A binary image with text regions removed. */
- case textRemovedBinaryImage = 1 << 13
- /** Zones identified as potential barcode areas, aiding in focused barcode detection. */
- case candidateBarcodeZones = 1 << 14
- /** Barcodes that have been localized but not yet decoded. */
- case localizedBarcodes = 1 << 15
- /** Barcode images scaled up for improved readability or decoding accuracy. */
- case scaledUpBarcodeImage = 1 << 16
- /** Images of barcodes processed to resist deformation and improve decoding success. */
- case deformationResistedBarcodeImage = 1 << 17
- /** Barcode images that have been complemented. */
- case complementedBarcodeImage = 1 << 18
- /** Successfully decoded barcodes. */
- case decodedBarcodes = 1 << 19
- /** Detected long lines. */
- case longLines = 1 << 20
- /** Detected corners within the image. */
- case corners = 1 << 21
- /** Candidate edges identified as potential components of quadrilaterals. */
- case candidateQuadEdges = 1 << 22
- /** Successfully detected quadrilaterals. */
- case detectedQuads = 1 << 23
- /** Text lines that have been localized in preparation for recognition. */
- case localizedTextLines = 1 << 24
- /** Successfully recognized text lines. */
- case recognizedTextLines = 1 << 25
- /** Successfully normalized images. */
- case normalizedImages = 1 << 26
- /** Detected short lines. */
- case shortLines = 1 << 27
- /** Recognized raw text lines. */
- rawTextLines = 1 << 28
- /**Detected logic lines.*/
- logicLines = 1 << 29
- /** A mask to select all types of intermediate results. */
- case all = 0xFFFFFFFFFFFFFFFF
-}
-```
diff --git a/programming/ios/api-reference/core/enum/region-object-element-type-v2.6.1004.md b/programming/ios/api-reference/core/enum/region-object-element-type-v2.6.1004.md
deleted file mode 100644
index f0030611..00000000
--- a/programming/ios/api-reference/core/enum/region-object-element-type-v2.6.1004.md
+++ /dev/null
@@ -1,60 +0,0 @@
----
-layout: default-layout
-title: RegionObjectElementType - Dynamsoft Core Enumerations
-description: The enumeration RegionObjectElementType of Dynamsoft Core describes the types of RegionObjectElement.
-keywords: Region object element type
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
-breadcrumbText: RegionObjectElementType
-codeAutoHeight: true
----
-
-# Enumeration RegionObjectElementType
-
-`RegionObjectElementType` specifies the exact subclass type within the `RegionObjectElement` hierarchy. This enumeration facilitates the identification and differentiation of various processed elements in an image.
-
-
- >- Objective-C
- >- Swift
- >
->
-```objc
-typedef NS_ENUM(NSInteger, DSRegionObjectElementType)
-{
- /**The type of subclass PredetectedRegionElement.*/
- DSRegionObjectElementTypePredetectedRegion = 0,
- /**The type of subclass LocalizedBarcodeElement.*/
- DSRegionObjectElementTypeLocalizedBarcode = 1,
- /**The type of subclass DecodedBarcodeElement.*/
- DSRegionObjectElementTypeDecodedBarcode = 2,
- /**The type of subclass LocalizedTextLineElement.*/
- DSRegionObjectElementTypeLocalizedTextLine = 3,
- /**The type of subclass RecognizedTextLineElement.*/
- DSRegionObjectElementTypeRecognizedTextLine = 4,
- /**The type of subclass DetectedQuadElement.*/
- DSRegionObjectElementTypeDetectedQuad = 5,
- /**The type of subclass NormalizedImageElement.*/
- DSRegionObjectElementTypeNormalizedImage = 6
-};
-```
->
-```swift
-public enum RegionObjectElementType : Int
-{
- /**The type of subclass PredetectedRegionElement.*/
- predetectedRegion = 0,
- /**The type of subclass LocalizedBarcodeElement.*/
- localizedBarcode = 1,
- /**The type of subclass DecodedBarcodeElement.*/
- decodedBarcode = 2,
- /**The type of subclass LocalizedTextLineElement.*/
- localizedTextLine = 3,
- /**The type of subclass RecognizedTextLineElement.*/
- recognizedTextLine = 4,
- /**The type of subclass DetectedQuadElement.*/
- detectedQuad = 5,
- /**The type of subclass NormalizedImageElement.*/
- normalizedImage = 6
-}
-```
diff --git a/programming/ios/api-reference/core/enum/section-type-v2.6.1004.md b/programming/ios/api-reference/core/enum/section-type-v2.6.1004.md
deleted file mode 100644
index 9a45ab88..00000000
--- a/programming/ios/api-reference/core/enum/section-type-v2.6.1004.md
+++ /dev/null
@@ -1,65 +0,0 @@
----
-layout: default-layout
-title: SectionType - Dynamsoft Core Enumerations
-description: The enumeration SectionType of Dynamsoft Core describes the section of the algorithm.
-keywords: Section type
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
-breadcrumbText: SectionType
-codeAutoHeight: true
----
-
-# Enumeration SectionType
-
-`SectionType` categorizes the distinct segments within the image processing algorithm, pinpointing the exact phase responsible for generating a specific `IntermediateResult`.
-
-
-
- >- Objective-C
- >- Swift
- >
->
-```objc
-typedef NS_ENUM(NSInteger, DSSectionType)
-{
- /**No section type is specified.*/
- DSSectionTypeNull = 0,
- /**The result is output by "region prediction" section.*/
- DSSectionTypeRegionPredection = 1,
- /**The result is output by "barcode localization" section.*/
- DSSectionTypeBarcodeLocalization = 2,
- /**The result is output by "barcode decoding" section.*/
- DSSectionTypeBarcodeDecoding = 3,
- /**The result is output by "text line localization" section.*/
- DSSectionTypeTextLineLocalization = 4,
- /**The result is output by "text line recognition" section.*/
- DSSectionTypeTextLineRecognition = 5,
- /**The result is output by "document detection" section.*/
- DSSectionTypeDocumentDetection = 6,
- /**The result is output by "document normalization" section.*/
- DSSectionTypeDocumentNormalization = 7
-};
-```
->
-```swift
-public enum SectionType : Int
-{
- /**No section type is specified.*/
- null = 0,
- /**The result is output by "region prediction" section.*/
- regionPredection = 1,
- /**The result is output by "barcode localization" section.*/
- barcodeLocalization = 2,
- /**The result is output by "barcode decoding" section.*/
- barcodeDecoding = 3,
- /**The result is output by "text line localization" section.*/
- textLineLocalization = 4,
- /**The result is output by "text line recognition" section.*/
- textLineRecognition = 5,
- /**The result is output by "document detection" section.*/
- documentDetection = 6,
- /**The result is output by "document normalization" section.*/
- documentNormalization = 7
-}
-```
diff --git a/programming/ios/api-reference/core/enum/transform-matrix-type-v2.6.1004.md b/programming/ios/api-reference/core/enum/transform-matrix-type-v2.6.1004.md
deleted file mode 100644
index 31c768fe..00000000
--- a/programming/ios/api-reference/core/enum/transform-matrix-type-v2.6.1004.md
+++ /dev/null
@@ -1,47 +0,0 @@
----
-layout: default-layout
-title: TransformMatrixType - Dynamsoft Core Enumerations
-description: The enumeration TransformMatrixType of Dynamsoft Core describes transform matrix types.
-keywords: Target type
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
-breadcrumbText: TransformMatrixType
----
-
-# Enumeration TransformMatrixType
-
-`TransformMatrixType` describes the transform matrix types.
-
-
- >- Objective-C
- >- Swift
- >
->
-```objc
-typedef NS_ENUM(NSInteger, DSTransformMatrixType)
-{
- /**Represents a transformation matrix that converts coordinates from the local image to the original image.*/
- DSTransformMatrixTypeLocalToOriginalImage = 0,
- /**Represents a transformation matrix that converts coordinates from the original image to the local image.*/
- DSTransformMatrixTypeOriginalToLocalImage = 1,
- /**Represents a transformation matrix that converts coordinates from the rotated image to the original image.*/
- DSTransformMatrixTypeRotatedToOriginalImage = 2,
- /**Represents a transformation matrix that converts coordinates from the original image to the rotated image.*/
- DSTransformMatrixTypeOriginalToRotatedImage = 3
-}NS_SWIFT_NAME(TransformMatrixType);
-```
->
-```swift
-public enum TransformMatrixType : Int
-{
- /**Represents a transformation matrix that converts coordinates from the local image to the original image.*/
- localToOriginalImage = 0,
- /**Represents a transformation matrix that converts coordinates from the original image to the local image.*/
- originalToLocalImage = 1,
- /**Represents a transformation matrix that converts coordinates from the rotated image to the original image.*/
- rotatedToOriginalImage = 2,
- /**Represents a transformation matrix that converts coordinates from the original image to the rotated image.*/
- originalToRotatedImage = 3
-}
-```
diff --git a/programming/ios/api-reference/core/intermediate-results/predetected-region-element-v2.6.1004.md b/programming/ios/api-reference/core/intermediate-results/predetected-region-element-v2.6.1004.md
deleted file mode 100644
index 561c0069..00000000
--- a/programming/ios/api-reference/core/intermediate-results/predetected-region-element-v2.6.1004.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-layout: default-layout
-title: DSPredetectedRegionElement - Dynamsoft Core Module iOS Edition API Reference
-description: The class DSPredetectedRegionElement of Dynamsoft Core Module represents a pre-detected region element, which is a subclass of DSRegionObjectElement.
-keywords: pre-detected region element, objective-c, swift
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# DSPredetectedRegionElement
-
-The `DSPredetectedRegionElement` class extends the `DSRegionObjectElement` class and represents a pre-detected region element in an image.
-
-## Definition
-
-*Assembly:* DynamsoftCore.xcframework
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@interface DSPredetectedRegionElement: DSRegionObjectElement
-```
-2.
-```swift
-class PredetectedRegionElement : RegionObjectElement
-```
-
-## Attributes
-
-| Attributes | Description |
-| ---------- | ----------- |
-| [`getModeName`](#getmodename) | Gets the name of the detection mode used to detect this region element. |
-
-### getModeName
-
-The name of the detection mode used to detect this region element. It can be one of the following:
-
-- "RPM_AUTO"
-- "RPM_GENERAL"
-- "RPM_GENERAL_RGB_CONTRAST"
-- "RPM_GENERAL_GRAY_CONTRAST"
-- "RPM_GENERAL_HSV_CONTRAST"
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (NSString *)getModeName;
-```
-2.
-```swift
-func getModeName() -> String
-```
diff --git a/programming/ios/api-reference/core/intermediate-results/region-object-element-v2.6.1004.md b/programming/ios/api-reference/core/intermediate-results/region-object-element-v2.6.1004.md
deleted file mode 100644
index 251fa60e..00000000
--- a/programming/ios/api-reference/core/intermediate-results/region-object-element-v2.6.1004.md
+++ /dev/null
@@ -1,123 +0,0 @@
----
-layout: default-layout
-title: DSRegionObjectElement - Dynamsoft Core Module iOS Edition API Reference
-description: The class DSRegionObjectElement of Dynamsoft Core Module represents an element of a region object in 2D space, which provides the interface for region object elements.
-keywords: region object element, 2D space, objective-c, swift
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# DSRegionObjectElement
-
-The `DSRegionObjectElement` class represents a basic element of a region object, including its type, location and reference to another element.
-
-## Definition
-
-*Assembly:* DynamsoftCore.xcframework
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@interface DSRegionObjectElement : NSObject
-```
-2.
-```swift
-class RegionObjectElement : NSObject
-```
-
-## Methods
-
-| Method | Description |
-|------- |-------------|
-| [`getLocation`](#getlocation) | Gets the location of the region object, represented as a quadrilateral. |
-| [`setLocation`](#setlocation) | Sets the location of the region object. |
-| [`getReferencedElement`](#getreferencedelement) | Gets the referenced element that supports the capturing of this element. |
-| [`getRegionObjectElementType`](#getregionobjectelementtype) | Gets the type of the region object element, defined by the enumeration [`DSRegionObjectElementType`]({{ site.dcv_ios_api }}core/enum/region-object-element-type.html?lang=objc,swift). |
-
-### getLocation
-
-Gets the location of the region object, represented as a [`Quadrilateral`]({{ site.dcv_ios_api }}core/basic-structures/quadrilateral.html).
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(DSQuadrilateral*)getLocation;
-```
-2.
-```swift
-func getLocation() -> DSQuadrilateral?
-```
-
-**Return Value**
-
-The location info of the element that defined in DSQuadrilateral.
-
-### setLocation
-
-Sets the location of the region object.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(void)setLocation:(DSQuadrilateral *)location;
-```
-2.
-```swift
-func setLocation(_ location: DSQuadrilateral?)
-```
-
-**Parameters**
-
-`location`: The location info of the element that defined in DSQuadrilateral.
-
-### getReferencedElement
-
-Get the referenced element that supports the capturing of this element.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(nullable DSRegionObjectElement*)getReferencedElement;
-```
-2.
-```swift
-func getReferencedElement() -> RegionObjectElement?
-```
-
-**Return Value**
-
-The referenced element that supports the capturing of this element.
-
-### getRegionObjectElementType
-
-Gets the type of the region object element, defined by the enumeration [`DSRegionObjectElementType`]({{ site.dcv_ios_api }}core/enum/region-object-element-type.html?lang=objc,swift).
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(DSRegionObjectElementType)getRegionObjectElementType;
-```
-2.
-```swift
-func getRegionObjectElementType() -> RegionObjectElementType
-```
-
-**Return Value**
-
-The type of the region object element.
diff --git a/programming/ios/api-reference/core/intermediate-results/scaled-down-colour-image-unit-v2.6.1004.md b/programming/ios/api-reference/core/intermediate-results/scaled-down-colour-image-unit-v2.6.1004.md
deleted file mode 100644
index dc43ef54..00000000
--- a/programming/ios/api-reference/core/intermediate-results/scaled-down-colour-image-unit-v2.6.1004.md
+++ /dev/null
@@ -1,97 +0,0 @@
----
-layout: default-layout
-title: DSScaledDownColourImageUnit - Dynamsoft Core Module iOS Edition API Reference
-description: The class DSScaledDownColourImageUnit of Dynamsoft Core Module represents a unit that contains a down-scaled colour image.
-keywords: scaled down colour image unit, objective-c, swift
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# DSScaledDownColourImageUnit
-
-The `ScaledDownColourImageUnit` class extends the `IntermediateResultUnit` class and represents a scaled-down colour image unit.
-
-## Definition
-
-*Assembly:* DynamsoftCore.xcframework
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@interface DSScaledDownColourImageUnit : DSIntermediateResultUnit
-```
-2.
-```swift
-class ScaledDownColourImageUnit : DSIntermediateResultUnit
-```
-
-## Methods
-
-| Method | Description |
-|------- |-------------|
-| [`setImageData`](#setimagedata) | Sets the image data for the scaled-down colour image. |
-| [`getImageData`](#getimagedata) | Gets the image data for the scaled-down colour image. |
-
-## Inherited Methods
-
-The following methods are inherited from class [`IntermediateResultUnit`]({{ site.dcv_ios_api }}core/intermediate-results/intermediate-result-unit.html).
-
-| Method | Description |
-|------- |-------------|
-| [`getHashId`]({{ site.dcv_ios_api }}core/intermediate-results/intermediate-result-unit.html#gethashid) | Gets the hash ID of the unit. The hash ID is the unique identifier for the intermediate result unit. |
-| [`getOriginalImageHashId`]({{ site.dcv_ios_api }}core/intermediate-results/intermediate-result-unit.html#getoriginalimagehashid) | Gets the hash ID of the original image associated with this unit. |
-| [`getOriginalImageTag`]({{ site.dcv_ios_api }}core/intermediate-results/intermediate-result-unit.html#getoriginalimagetag) | Gets the tag associated with the original image. |
-| [`getType`]({{ site.dcv_ios_api }}core/intermediate-results/intermediate-result-unit.html#gettype) | Gets the type of the intermediate result unit, defined by the enumeration [`IntermediateResultUnitType`]({{ site.dcv_ios_api }}core/enum/intermediate-result-unit-type.html?lang=objc,swift). |
-| [`getTransformMatrix`]({{ site.dcv_ios_api }}core/intermediate-results/intermediate-result-unit.html#gettransformmatrix) | Gets the transformation matrix via [`DSTransformMatrixType`]({{ site.dcv_enumerations }}core/transform-matrix-type.html). |
-| [`clone`]({{ site.dcv_ios_api }}core/intermediate-results/intermediate-result-unit.html#clone) | Creates a copy of the intermediate result unit. |
-| [`replace`]({{ site.dcv_ios_api }}core/intermediate-results/intermediate-result-unit.html#replace) | Replaces the content of the intermediate result unit. |
-
-### setImageData
-
-Sets the image data for the scaled-down colour image.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(NSInteger)setImageData:(DSImageData *)imageData;
-```
-2.
-```swift
-func setImageData(_ imageData: DSImageData?) -> Int
-```
-
-**Parameters**
-
-`imageData`: A `DSImageData` object as the image data of the down-scaled colour image.
-
-**Return Value**
-
-Returns the `ErrorCode` if failed. Otherwise, returns 0.
-
-### getImageData
-
-Gets the image data for the scaled-down colour image.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(nullable DSImageData *)getImageData;
-```
-2.
-```swift
-func getImageData() -> DSImageData?
-```
-
-**Return Value**
-
-The `DSImageData` for the scaled-down colour image.
diff --git a/programming/ios/api-reference/index-v2.6.1004.md b/programming/ios/api-reference/index-v2.6.1004.md
deleted file mode 100644
index b42b1558..00000000
--- a/programming/ios/api-reference/index-v2.6.1004.md
+++ /dev/null
@@ -1,103 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Capture Vision iOS API Reference - Main Page
-description: This is the main page of Dynamsoft Capture Vision SDK API Reference for iOS.
-keywords: api reference, iOS
-needAutoGenerateSidebar: true
-noTitleIndex: true
-needGenerateH3Content: true
----
-
-# SDK Overview: Modules and Main APIs
-
-This page provides an overview of the various modules and highlights the most essential APIs that form the backbone of Dynamsoft Capture Vision SDKs.
-
-## Modules Summary
-
-**DynamsoftCaptureVisionBundle** is a bundle package that includes all libraries of Dynamsoft Capture Vision (DCV) architecture. The DCV libraries work together to achieve barcode reading, MRZ recognizing, document scanning and other image processing features. The hierarchical structure diagram below illustrates the various modules of the DCV SDKs (with modules at the top depending on those below).
-
-
-

-
Modules hierarchical of the DCV SDK
-
-
-The table below describes details the functionalities of these modules:
-
-| File | Description |
-|:-----|:------------|
-| `DynamsoftCaptureVisionRouter.xcframework` | The Dynamsoft Capture Vision Router module is the cornerstone of the Dynamsoft Capture Vision (DCV) architecture. It focuses on coordinating batch image processing and provides APIs for setting up image sources and result receivers, configuring workflows with parameters, and controlling processes. |
-| `DynamsoftBarcodeReader.xcframework`(DBR) | The Dynamsoft Barcode Reader module recognizes and decodes multiple barcode formats such as QR codes, Code 39, Code 128, and Data Matrix, among many others. |
-| `DynamsoftDocumentNormalizer.xcframework`(DBR) | The Dynamsoft Document Normalizer module extracts structural information from document images, including document boundaries, shadow areas, and text areas. It uses this information to generate normalized document images through processes such as deskewing, shadow removal, and distortion correction. |
-| `DynamsoftLabelRecognizer.xcframework` (DLR) | The Dynamsoft Label Recognizer module identifies and recognizes text labels such as passport MRZs, ID cards, and VIN numbers. |
-| `DynamsoftCore.xcframework` | The Dynamsoft Core module lays the foundation for Dynamsoft SDKs based on the DCV (Dynamsoft Capture Vision) architecture. It encapsulates the basic classes, interfaces, and enumerations shared by these SDKs.|
-| `DynamsoftImageProcessing.xcframework` | The Dynamsoft Image Processing module facilitates digital image processing and supports operations for other modules, including the Barcode Reader, Label Recognizer, and Document Normalizer. |
-| `DynamsoftNeuralNetwork.xcframework` | The Dynamsoft Neural Network module allows SDKs compliant with the DCV (Dynamsoft Capture Vision) architecture to leverage the power of deep learning when processing digital images. |
-| `DynamsoftLicense.xcframework` | The Dynamsoft License module manages the licensing aspects of Dynamsoft SDKs based on the DCV (Dynamsoft Capture Vision) architecture. |
-| `DynamsoftCameraEnhancer.xcframework` | The Dynamsoft Camera Enhancer (DCE) module controls the camera, transforming it into an image source for the DCV (Dynamsoft Capture Vision) architecture through ISA implementation. It also enhances image quality during acquisition and provides basic viewers for user interaction. |
-| `DynamsoftUtility.xcframework` | The Dynamsoft Utility module defines auxiliary classes, including the ImageManager, and implementations of the CRF (Captured Result Filter) and ISA (Image Source Adapter). These are shared by all Dynamsoft SDKs based on the DCV (Dynamsoft Capture Vision) architecture. |
-| `DynamsoftCodeParser.xcframework` | The Dynamsoft Code Parser module converts data strings, typically encrypted in barcodes and machine-readable zones, into human-readable information. |
-| `DynamsoftCodeParserDedicator.xcframework` | The Dynamsoft Code Parser Dedicator module provides auxiliary functionality to enhance and extend the capabilities of DCP module. |
-
-## Main APIs
-
-### Capture Vision Router
-
-The main class [`CaptureVisionRouter`]({{ site.dcv_ios_api }}capture-vision-router/capture-vision-router.html) acts as the SDK entry point and provides the following essential APIs:
-
-- [Set input]({{ site.dcv_ios_api }}capture-vision-router/multiple-file-processing.html#setinput)
-- [Config capture vision settings]({{ site.dcv_ios_api }}capture-vision-router/settings.html)
-- [Add result receiver]({{ site.dcv_ios_api }}capture-vision-router/multiple-file-processing.html#addresultreceiver)
-- [Start capturing]({{ site.dcv_ios_api }}capture-vision-router/multiple-file-processing.html#startcapturing)
-
-### Image Source Adapter
-
-The [`ImageSourceAdapter`]({{ site.dcv_ios_api }}core/basic-structures/image-source-adapter.html) class is an abstract class representing an adapter for image sources, providing a framework for fetching, buffering, and managing images from various sources. It serves as the input for the [`CaptureVisionRouter`]({{ site.dcv_ios_api }}capture-vision-router/capture-vision-router.html). You can either use the typical implementations of [`ImageSourceAdapter`]({{ site.dcv_ios_api }}core/basic-structures/image-source-adapter.html) or implement your own.
-
-Class [`CameraEnhancer`]({{ site.dce_ios_api }}primary-api/camera-enhancer.html) is one of the typical implementations of [`ImageSourceAdapter`]({{ site.dcv_ios_api }}core/basic-structures/image-source-adapter.html). It is a class that not only implements the video frame obtaining APIs but also enable you to improve the video quality by adjusting the camera settings.
-
-### Captured Result Receiver
-
-Implement the callback methods of [`CapturedResultReceiver`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html) to receive the corresponding results you required. The callbacks are triggered when the processing of an image/vide frame is finished or timeout.
-
-#### Barcode Decoding
-
-Callback methods that are related to barcode decoding:
-
-- [`onDecodedBarcodesReceived`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html#ondecodedbarcodesreceived): The callback of barcode decoding. The result you received in the callback method is a [`DecodedBarcodesResult`]({{ site.dbr_ios_api }}decoded-barcodes-result.html) object, which contains all the decoded barcodes from the processed image.
-
-Related APIs:
-
-- [`DecodedBarcodesResult`]({{ site.dbr_ios_api }}decoded-barcodes-result.html): All barcodes that decoded from the processed image.
-- [`BarcodeResultItem`]({{ site.dbr_ios_api }}barcode-result-item.html): The barcode decoding result of a single barcode.
-
-#### Document Scanning
-
-Callback methods that are related to document scanning:
-
-- [`onDetectedQuadsReceived`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html#ondetectedquadsreceived): The callback of document boundary detection. The result you received in the callback method is a [`DetectedQuadResult`]({{ site.ddn_ios_api }}detected-quads-result.html) object, which contains all the detected quads from the processed image.
-- [`onNormalizedImagesReceived`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html#onnormalizedimagesreceived): The callback of image normalization. The result you received in the callback method is a [`NormalizedImagesResult`]({{ site.ddn_ios_api }}normalized-images-result.html) object, which contains all the normalized images from the processed image.
-
-Related APIs:
-
-- [`DetectedQuadResult`]({{ site.ddn_ios_api }}detected-quads-result.html): All quads that detected from the processed image.
-- [`DetectedQuadResultItem`]({{ site.ddn_ios_api }}detected-quad-result-item.html): The boundary detection result of a single document page.
-- [`NormalizedImagesResult`]({{ site.ddn_ios_api }}normalized-images-result.html): All normalized images that deskewed from the processed image.
-- [`NormalizedImageResultItem`]({{ site.ddn_ios_api }}normalized-image-result-item.html): The deskewing result of a single document page.
-
-#### MRZ Scanning
-
-Callback methods that are related to MRZ scanning:
-
-- [`onParsedResultsReceived`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html#onparsedresultsreceived): The callback of content parsing. The result you received in the callback method is a [`ParsedResult`]({{ site.dcp_ios_api }}parsed-result.html) object, which contains all the parsed results from the processed image.
-- [`onRecognizedTextLinesReceived`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html#onrecognizedtextlinesreceived): The callback of text recognition. The result you received in the callback method is a [`RecognizedTextLinesResult`]({{ site.dlr_ios_api }}recognized-text-lines-result.html) object, which contains all the original MRZ text of the processed image.
-
-Related APIs:
-
-- [`ParsedResult`]({{ site.dcp_ios_api }}parsed-result.html): All parsed results that captured from the processed image.
-- [`ParsedResultItem`]({{ site.dcp_ios_api }}parsed-result-item.html): The parsing result of a single parsable content.
-- [`RecognizedTextLinesResult`]({{ site.dlr_ios_api }}recognized-text-lines-result.html): All text lines that recognized from the processed image.
-- [`TextLineResultItem`]({{ site.dlr_ios_api }}text-line-result-item.html): The text recognition result of a single text line.
-
-### Camera View
-
-[`CameraView`]({{ site.dce_ios_api }}auxiliary-api/dcecameraview.html) is a view class that design for visualizing the real time video streaming and the barcode decoding result. If the [`CameraEnhancer`]({{ site.dce_ios_api }}primary-api/camera-enhancer.html) is set as the input of your CVR, the decoded barcodes will be highlighted automatically on the [`CameraView`]({{ site.dce_ios_api }}auxiliary-api/dcecameraview.html).
diff --git a/programming/ios/api-reference/utility/directory-fetcher-v2.2.3000.md b/programming/ios/api-reference/utility/directory-fetcher-v2.2.3000.md
deleted file mode 100644
index 4439a8b9..00000000
--- a/programming/ios/api-reference/utility/directory-fetcher-v2.2.3000.md
+++ /dev/null
@@ -1,166 +0,0 @@
----
-layout: default-layout
-title: DSDirectoryFetcher - Dynamsoft Capture Vision Router Module iOS Edition API Reference
-description: The class DSDirectoryFetcher of Dynamsoft Capture Vision Router Module is a utility class that retrieves a list of files from a specified directory based on certain criteria.
-keywords: directory fetcher, objective-c, swift
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# DSDirectoryFetcher
-
-The `DSDirectoryFetcher` class is a utility class that retrieves a list of files from a specified directory based on certain criteria. It inherits from the `DSImageSourceAdapter` class.
-
-## Definition
-
-*Assembly:* DynamsoftUtility.xcframework
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-NS_SWIFT_NAME(DirectoryFetcher)
-@interface DSDirectoryFetcher : DSImageSourceAdapter
-```
-2.
-```swift
-class DirectoryFetcher : ImageSourceAdapter
-```
-
-## Methods
-
-| Method | Description |
-| ------ | ----------- |
-| [`init`](#init) | Create an instance of DSDirectoryFetcher. |
-| [`setDirectory`](#setdirectory) | Sets the directory path and filter for the file search. |
-| [`setPages`](#setpages) | Set the pages to read. |
-
-### init
-
-Create an instance of DSDirectoryFetcher.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (instancetype)init;
-```
-2.
-```swift
-init()
-```
-
-**Return Value**
-
-An instance of `DSDirectoryFetcher`.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DSDirectoryFetcher *fetcher = [[DSDirectoryFetcher alloc] init];
-```
-2.
-```swift
-let fetcher = DirectoryFetcher()
-```
-
-### setDirectory
-
-Sets the directory path and filter for the file search.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (BOOL)setDirectory:(NSString *)directoryPath
- filter:(nullable NSString *)filter
- recursive:(BOOL)recursive
- error:(NSError * _Nullable * _Nullable)error;
-```
-2.
-```swift
-func setDirectory(_ directoryPath: String, filter: String?, recursive: Bool) throws
-```
-
-**Parameters**
-
-`directoryPath`: The directory path.
-
-`filter`: A string that specifies file extensions. It determines which kinds of files to read. e.g "\*.BMP;\*.JPG;\*.GIF".
-
-`recursive`: Specifies whether to load files recursively.
-
-`error`: An `NSError` pointer. If an error occurs, it will represent the error information.
-
-**Error**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_READ_DIRECTORY_FAILED | -10064 | Failed to read the directory. |
-
-**Return Value**
-
-A `BOOL` value that indicates whether the directory is set successfully.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-NSError *error;
-BOOL success = [fetcher setDirectory:directoryPath filter:nil recursive:YES error:&error];
-```
-2.
-```swift
-do {
- try fetcher.setDirectory(directoryPath, filter: nil, recursive: true)
-} catch {
- // Add your code to deal with exceptions.
-}
-```
-
-### setPages
-
-Set the pages to read.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
--(BOOL)setPages:(NSArray *)pages
- error:(NSError *_Nullable *_Nullable)error;
-```
-2.
-```swift
-func setPages(_ pages: NSArray) throws -> BOOL
-```
-
-**Parameters**
-
-`pages`: An array that contains all the pages to read.
-`error`: An `NSError` pointer. If an error occurs, it will represent the error information.
-
-**Error**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_FILE_NOT_FOUND | -10005 | File not found. |
-| EC_FILE_TYPE_NOT_SUPPORTED | -10006 | The file type is not supported. |
-| EC_IMAGE_READ_FAILED | -10012 | Failed to read the image. |
diff --git a/programming/ios/api-reference/utility/multi-frame-result-cross-filter-v2.2.3000.md b/programming/ios/api-reference/utility/multi-frame-result-cross-filter-v2.2.3000.md
deleted file mode 100644
index 191930b8..00000000
--- a/programming/ios/api-reference/utility/multi-frame-result-cross-filter-v2.2.3000.md
+++ /dev/null
@@ -1,188 +0,0 @@
----
-layout: default-layout
-title: DSMultiFrameResultCrossFilter - Dynamsoft Capture Vision Router Module iOS Edition API Reference
-description: The class DSMultiFrameResultCrossFilter of Dynamsoft Capture Vision Router Module is responsible for filtering captured results.
-keywords: multi-frame result cross filter, objective-c, swift
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# DSMultiFrameResultCrossFilter
-
-The `DSMultiFrameResultCrossFilter` class is responsible for filtering captured results.
-
-## Definition
-
-*Assembly:* DynamsoftUtility.xcframework
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@interface DSMultiFrameResultCrossFilter ()
-```
-2.
-```swift
-class MultiFrameResultCrossFilter: NSObject, CapturedResultFilter
-```
-
-## Methods
-
-| Method | Description |
-| ------ | ----------- |
-| [`enableResultDeduplication`](#enableresultdeduplication) | Enables or disables the deduplication process for one or multiple specific result item types. |
-| [`enableResultCrossVerification`](#enableresultcrossverification) | Enables or disables the verification of one or multiple specific result item types. |
-| [`setDuplicateForgetTime`](#setduplicateforgettime) | Sets the interval during which duplicates are disregarded for specific result item types. |
-| [`isResultDeduplicationEnabled`](#isresultdeduplicationenabled) | Checks if deduplication is active for a given result item type. |
-| [`isResultCrossVerificationEnabled`](#isresultcrossverificationenabled) | Checks if verification is active for a given result item type. |
-| [`getDuplicateForgetTime`](#getduplicateforgettime) | Gets the interval during which duplicates are disregarded for specific result item types. |
-
-### enableResultDeduplication
-
-Enables or disables the deduplication process for one or multiple specific result item types.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (void)enableResultDeduplication:(DSCapturedResultItemType)resultItemType
- isEnabled:(BOOL)isEnabled;
-```
-2.
-```swift
-func enableResultDeduplication(resultItemType: DSCapturedResultItemType, isEnabled: Bool)
-```
-
-**Parameters**
-
-`resultItemType`: Specifies one or multiple specific result item types, which can be defined using [`DSCapturedResultItemType`]({{ site.dcv_ios_api }}core/enum/captured-result-item-type.html?lang=objc,swift).
-
-`isEnabled`: A BOOL value that indicates whether to enable the result deduplication feature.
-
-### enableResultCrossVerification
-
-Enables or disables the verification of one or multiple specific result item types.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (void)enableResultCrossVerification:(DSCapturedResultItemType)resultItemType
- isEnabled:(BOOL)isEnabled;
-```
-2.
-```swift
-func enableResultCrossVerification(resultItemType: DSCapturedResultItemType, isEnabled: Bool)
-```
-
-**Parameters**
-
-`resultItemType`: Specifies one or multiple specific result item types, which can be defined using [`DSCapturedResultItemType`]({{ site.dcv_ios_api }}core/enum/captured-result-item-type.html?lang=objc,swift).
-
-`isEnabled`: A BOOL value that indicates whether to enable the result cross verification feature.
-
-### setDuplicateForgetTime
-
-Sets the interval during which duplicates are disregarded for specific result item types.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (void)setDuplicateForgetTime:(DSCapturedResultItemType)resultItemType
- duplicateForgetTime:(NSInteger)duplicateForgetTime;
-```
-2.
-```swift
-func setDuplicateForgetTime(resultItemType: DSCapturedResultItemType, duplicateForgetTime: Int)
-```
-
-**Parameters**
-
-`resultItemType`: Specifies one or multiple specific result item types, which can be defined using [`DSCapturedResultItemType`]({{ site.dcv_ios_api }}core/enum/captured-result-item-type.html?lang=objc,swift).
-
-`duplicateForgetTime`: The duplicate forget time of the specified capture result type.
-
-### isResultDeduplicationEnabled
-
-Checks if deduplication is active for a given result item type.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (bool)isResultDeduplicationEnabled:(DSCapturedResultItemType)resultItemType;
-```
-2.
-```swift
-func isResultDeduplicationEnabled(resultItemType: DSCapturedResultItemType) -> Bool
-```
-
-**Parameters**
-
-`resultItemType`: Specifies the result item type with [`DSCapturedResultItemType`]({{ site.dcv_ios_api }}core/enum/captured-result-item-type.html?lang=objc,swift).
-
-**Return Value**
-
-Boolean indicating the deduplication status for the specified type.
-
-### isResultCrossVerificationEnabled
-
-Checks if verification is active for a given result item type.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (bool)isResultCrossVerificationEnabled:(DSCapturedResultItemType)resultItemType;
-```
-2.
-```swift
-func isResultCrossVerificationEnabled(resultItemType: DSCapturedResultItemType) -> Bool
-```
-
-**Parameters**
-
-`resultItemType`: Specifies the result item type with [`DSCapturedResultItemType`]({{ site.dcv_ios_api }}core/enum/captured-result-item-type.html?lang=objc,swift).
-
-**Return Value**
-
-Boolean indicating the status of verification for the specified type.
-
-### getDuplicateForgetTime
-
-Gets the interval during which duplicates are disregarded for specific result item types.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (NSInteger)getDuplicateForgetTime:(DSCapturedResultItemType)resultItemType;
-```
-2.
-```swift
-func getDuplicateForgetTime(resultItemType: DSCapturedResultItemType) -> Int
-```
-
-**Parameters**
-
-`resultItemType`: Specifies the result item type with [`DSCapturedResultItemType`]({{ site.dcv_ios_api }}core/enum/captured-result-item-type.html?lang=objc,swift).
-
-**Return Value**
-
-The set interval for the specified item type.
diff --git a/programming/ios/release-notes/index.md b/programming/ios/release-notes/index.md
index 7192f168..5b09791e 100644
--- a/programming/ios/release-notes/index.md
+++ b/programming/ios/release-notes/index.md
@@ -13,10 +13,10 @@ noTitleIndex: true
- [3.0.5100 (08/05/2025)](ios-3.html#305100-08052025)
- [3.0.5000 (07/29/2025)](ios-3.html#305000-07292025)
- [3.0.3000 (05/15/2025)](ios-3.html#303000-05152025)
-- [2.6.1004 (03/07/2025)](ios-2.html#261004-03072025)
-- [2.6.1003 (01/23/2025)](ios-2.html#261003-01232025)
-- [2.6.1002 (01/14/2025)](ios-2.html#261002-01142025)
-- [2.6.1001 (12/16/2024)](ios-2.html#261001-12162024)
-- [2.6.1000 (12/03/2024)](ios-2.html#261000-12032024)
-- [2.4.2000 (10/11/2024)](ios-2.html#242000-10112024)
-- [2.2.3000 (08/21/2024)](ios-2.html#223000-08212024)
+- [2.6.1004 (03/07/2025)]({{ site.dcv_ios_v2 }}release-notes/ios-2.html#261004-03072025)
+- [2.6.1003 (01/23/2025)]({{ site.dcv_ios_v2 }}release-notes/ios-2.html#261003-01232025)
+- [2.6.1002 (01/14/2025)]({{ site.dcv_ios_v2 }}release-notes/ios-2.html#261002-01142025)
+- [2.6.1001 (12/16/2024)]({{ site.dcv_ios_v2 }}release-notes/ios-2.html#261001-12162024)
+- [2.6.1000 (12/03/2024)]({{ site.dcv_ios_v2 }}release-notes/ios-2.html#261000-12032024)
+- [2.4.2000 (10/11/2024)]({{ site.dcv_ios_v2 }}release-notes/ios-2.html#242000-10112024)
+- [2.2.3000 (08/21/2024)]({{ site.dcv_ios_v2 }}release-notes/ios-2.html#223000-08212024)
diff --git a/programming/ios/release-notes/ios-2.md b/programming/ios/release-notes/ios-2.md
deleted file mode 100644
index 971fe27e..00000000
--- a/programming/ios/release-notes/ios-2.md
+++ /dev/null
@@ -1,335 +0,0 @@
----
-layout: default-layout
-title: Release Notes - DynamsoftCaptureVisionBundle iOS Edition
-description: The release notes of DynamsoftCaptureVisionBundle iOS Edition.
-keywords: release notes, capture vision bundle, iOS, dcv
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# Release Notes - DynamsoftCaptureVisionRouter Module
-
-## 2.6.1004 (03/07/2025)
-
-### Fixed
-
-- Fixed a bug where the `scanRegion` might not effect when configured before the creation of `CameraView`.
-
-## 2.6.1003 (01/23/2025)
-
-### Fixed
-
-- Fixed a camera adaptation bug when using the iPad device.
-
-## 2.6.1002 (01/14/2025)
-
-### Fixed
-
-- Fixed a crash bug when initializing the instance of the `DSImageEditorView` with `init`.
-
-## 2.6.1001 (12/16/2024)
-
-### Fixed
-
-- Fixed a bug where the app might be blocked by the method `initLicense`.
-
-## 2.6.1000 (12/03/2024)
-
-### Highlights
-
-- Enhanced document detection delivers more reliable results, particularly for single-document scenarios. Key improvements include:
- - Strengthened detection algorithms for greater accuracy and robustness.
- - Optimized parameter configurations for better adaptability across diverse scenarios.
- - Refined cross-verification rules to ensure more consistent detection outcomes.
-
-### Changelogs
-
-#### New
-
-- Added a new mode, `CICM_EDGE_ENHANCEMENT`, to the `ColourConversionModes` parameter, designed to enhance edge details when converting a color image to grayscale.
-- Introduced the concept of `LogicLines` to enhance the processing and analysis of document structures.
- - Added a new value, `DSIntermediateResultUnitTypeLogicLines`, to the `IntermediateResultUnitType` enumeration.
- - Added a new function `onLogicLinesReceived` to the class `DSIntermediateResultReceiver` which will be called when logic lines have been received.
- - Added a new class, `DSLogicLinesUnit`, to represent an intermediate result unit containing logic lines.
-- Added the `crossVerificationStatus` property to both the `DSDetectedQuadResultItem` and `DSNormalizedImageResultItem` classes, along with a new `DSCrossVerificationStatus` enumeration, to retrieve the cross-verification status of the result.
-- Added the `getTemplateNames` method to the `DSCaptureVisionRouter` class to improve accessibility and usability of templates.
-- Added the `getFieldRawValue` method to the `DSParsedResultItem` class to retrieve the raw value of the field.
-
-#### Fixed
-
-- Fixed a bug in `DSTextZone` caused by the absence of a custom copy constructor, which led to improper memory management with the default copy constructor.
-- Fixed a bug where the `Default` preset template was not used when the default value was passed for the `templateName` parameter.
-- Fixed a potential crash bug during template reading.
-- Fixed a bug in DPM mode where the `isMirrored` value in the `DSBarcodeResultItem` was not correctly assigned.
-- Fixed a bug where DotCode could not be decoded in certain scenarios.
-- Small fixes and tweaks.
-
-#### Changed
-
-- Updated the parameter configurations for the `DetectDocumentBoundaries_Default` and `DetectAndNormalizeDocument_Default` preset templates to default to single-document mode.
-- Changed default value of `ExpectedDocumentsCount` paramter from 0 to 1 to better support single-document mode.
-- Changed default value of `CornerAngleRange` paramter from [70, 110] to [60, 120] to support a wider range of document capture angles.
-- Modified the return logic for `DetectedQuadResultItem` and `NormalizedImageResultItem` when `ResultCrossVerification` is `enabled`. Previously, only verified results were returned; now, results are returned regardless of verification status, and the results include a `CrossVerificationStatus` to indicate the verification state.
-- Removed the `LineExtractMode` parameter and replaced it with `ShortlineDetectionMode` and `LineAssemblyMode` for more flexible and precise configuration.
-
-## 2.4.2000 (10/11/2024)
-
-### Highlights
-
-- Improved the read rate and the speed of the following barcode formats:
- - EAN13
- - DotCode
-- Added support for decoding add-on codes (also known as Extension Codes) for UPC-A, UPC-E, EAN-8 and EAN-13 codes.
-- Added "Recognize Raw TextLines" stage for recognizing raw text lines.
-- Introduced a feature to track and accumulate recognized barcodes across multiple frames in real-time video, enabling seamless multi-barcode recognition.
-
-### DynamsoftCaptureVisionRouter
-
-#### Improved
-
-- Updated the error handling logic of `capturing` & `startCapturing` methods. The methods will be able to clearly report where the error occurred if the capturing fails due to a licensing issue.
-
-#### New
-
-- Added internal logics for usage count.
-- Added a new callback method [`onRawTextLinesReceived`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/intermediate-result-receiver.html#onrawtextlinesreceived) to the class `DSIntermediateResultReceiver`.
-
-### DynamsoftCore
-
-#### New
-
-- Added new error codes
- - -10076: The license is initialized successfully but detected invalid content in your key.
- - -30063: [Barcode Reader] No license found.
- - -40103: [Label Recognizer] No license found.
- - -50058: [Document Normalizer] No license found.
- - -90012: [Code Parser] No license found.
-- Added a new enumeration member `IntermediateResultUnitTypeRawTextLines` to the enumeration [`DSIntermediateResultUnitType`]({{ site.dcv_ios_api }}core/enum/intermediate-result-unit-type.html?lang=objc,swift).
-
-#### Fixed
-
-- Fixed a bug where the `CharacterModel` is not correctly loaded under macOS operation system.
-- Small fixes and tweaks.
-
-### DynamsoftLicense
-
-#### Improved
-
-- Updated the error message of `initLicense` method. The method will return more detailed messages when failed to initialize the license. Warnings will be available if license initialization is successful but a part of the license key is invalid.
-
-#### New
-
-- Add a new charge way, `TimeSliceCount`.
-
-#### Fixed
-
-- Changed the maximum length of the `deviceFriendlyName` to 255.
-
-### DynamsoftImageProcessing
-
-#### Fixed
-
-- Fixed a crash bug caused by the usage of RegEx.
-- Small fixes and tweaks.
-
-#### Changed
-
-- Changed the template loading mode. The library will read all template files under the Templates folder where the DLL file is located.
-
-### DynamsoftUtility
-
-#### New
-
-- Added to-the-latest overlapping feature. You can use [`enableLatestOverlapping`]({{ site.dcv_ios_api }}utility/multi-frame-result-cross-filter.html#enablelatestoverlapping) method of `DSMultiFrameResultCrossFilter` class to enable this feature.
-- Added a new class [`DSProactiveImageSourceAdapter`]({{ site.dcv_ios_api }}utility/proactive-image-source-adapter.html). The class [`DSDirectoryFetcher`]({{ site.dcv_ios_api }}utility/directory-fetcher.html) will extends the class `DSProactiveImageSourceAdapter` instead of the class `DSImageSourceAdapter`.
-
-#### Fixed
-
-- Fixed a bug where `DSCaptureVisionRouter.startCapturing` would erroneously halt the fetching process when its status was running, leading to an unnecessary stop and restart of the fetching operation.
-- Fixed a bug where `DSDirectoryFetcher` would prematurely read an image before verifying if the buffer was full, resulting in potential loss of the image that did not make it into the buffer upon calling `stopFetching`.
-
-### DynamsoftBarcodeReader
-
-#### Improved
-
-- Improved the read rate and the speed of the following barcode formats:
- - EAN13
- - DotCode
-
-#### New
-
-- Added internal logics for usage count.
-- Added support for decoding add-on barcodes.
-- Added new properties to the [`QRCodeDetails`]({{ site.dbr_ios_api }}auxiliary-iQRCodeDetails.html) class
- - `dataMaskPattern`
- - `codewords`
-
-#### Changed
-
-- Updated the Enumeration number of `BarcodeFormatAll` to 0xFFFFFFFEFFFFFFFF.
-- Updated the internal logic of licensing error message reporting.
-
-#### Fixed
-
-- Fixed a bug that might cause `GS1DatabarExpandedStacked` barcode unread.
-
-### DynamsoftLabelRecognizer
-
-#### New
-
-- Added internal logics for usage count.
-- Added a new parameter [`CharSet`]({{ site.dcv_parameters_reference }}character-model/char-set.html) to the `CharacterModel` object to include or exclude characters for recognition.
-- Added a new algorithm stage `RawTextLines`. Corresponding APIs are added to obtain the intermediate result of this stage.
- - Class [`DSRawTextLinesUnit`]({{ site.dlr_ios_api }}raw-text-lines-unit.html)
- - Class [`DSRawTextLine`]({{ site.dlr_ios_api }}raw-text-line.html)
- - Enumeration [`DSRawTextLineStatus`]({{ site.dlr_ios_api }}enumlabel-recognizer/raw-text-line-status.html?lang=objc,swift)
-- Changed the intermediate result altering methods of the class [`DSRecognizedTextLinesUnit`]({{ site.dlr_ios_api }}recognized-text-lines-unit.html).
- - Added a new method `removeRecognizedTextLine`
- - Added a new method `addRecognizedTextLine`
- - Added a new method `setRecognizedTextLine(index,element,matrixToOriginalImage)`
- - Deprecated method `setRecognizedTextLine(element,matrixToOriginalImage)`
-- Added a new method `getRawText` to the class [`DSRecognizedTextLineELement`]({{ site.dlr_ios_api }}recognized-text-line-element.html).
-- Added a new property `rawText` to the class [`DSTextLineResultItem`]({{ site.dlr_ios_api }}text-line-result-item.html).
-
-#### Fixed
-
-- Fixed a bug where the `CharacterModel` is not correctly loaded under macOS operation system.
-- Fixed a crash bug caused by the usage of RegEx.
-
-### DynamsoftNocumentNormalizer
-
-#### New
-
-- Added a new parameter `MinDocumentAreaRatio` to define the minimum targeting document area. The parameter is available via both the parameter template and the [`DSSimplifiedDocumentNormalizerSettings`]({{ site.ddn_ios_api }}simplified-document-normalizer-settings.html).
-- Added a new parameter `ExpectedDocumentsCount` to define the expected document count for detection. The parameter is available via both the parameter template and the [`DSSimplifiedDocumentNormalizerSettings`]({{ site.ddn_ios_api }}simplified-document-normalizer-settings.html).
-
-#### Changes
-
-- Updated internal logics to to use the latest version of `DynamsoftCore` module.
-
-#### Fixed
-
-- Small fixes and tweaks.
-
-### DynamsoftCodeParser
-
-#### Changed
-
-- Updated the internal logic of licensing error message reporting.
-
-### DynamsoftCodeParserDedicator
-
-#### Fixed
-
-- Fixed a bug where the South African Driver's license might be parsed incorrectly.
-
-## 2.2.3000 (08/21/2024)
-
-### Highlights
-
-- Added confusable character distinguishing: this feature enhances the library’s ability to distinguish between common confusable character sets including {0, o, O}, {1, I, l}, and {5, s, S}, across popular fonts like Arial, Times New Roman, and Verdana, etc.
-- Supported confusable character set customization: leveraging the new caching mechanism in the `CaptureVisionRouter (CVR)` module, the library now enables users to customize confusable character sets to meet the needs of specific scenarios.
-- Introduced the capability for users to influence the image processing process by altering intermediate results. Users can now clone, edit, and substitute intermediate result units within the callback method of each type. Subsequent operations will then proceed based on the updated unit.
-- Introduced a feature for multi-condition filtering across products. Users can now specify filtering criteria for the task results of a [`TargetROIDef`]({{ site.dcv_parameters_reference }}target-roi-def/) by implementing an OutputTaskSetting based on the task results of varying products from descendant `TargetROIDef` objects.
-- Enhanced the [`Offset`]({{ site.dcv_parameters_reference }}target-roi-def/location.html#offset) parameter in `TargetROIDef`. Users now have the capability to meticulously customize components of the coordinate system, including the origin, X-axis, and Y-axis, for precise offset calculation.
-- Introduced a feature for grouping text lines. A text line group consists of spatially adjacent lines of text. Through the [`TextLineSpecification`]({{ site.dcv_parameters_reference }}text-line-specification/) parameters, users can now do two things:
- - Put text lines in groups and also define the spatial relationship between different groups;
- - Specify whether to concatenate text line results within a group, how to do the concatenation and whether to output the concatenated result.
-
-### DynamsoftCaptureVisionRouter
-
-#### New
-
-- Added a new class [`BufferedItemsManager`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/buffered-items-manager.html) to manage the buffered character items.
-- Added a new method [`getBufferedItemsManager`]({{ site.dcv_android_api }}capture-vision-router/buffered-items.html#getbuffereditemsmanager) to get an object of `BufferedItemsManager`.
-
-#### Fixed
-
-- Fixed a bug where the `DynamsoftNeuralNetwork` module failed to load due to a path error.
-
-### DynamsoftCore
-
-- Small fixes and tweaks.
-
-### DynamsoftBarcodeReader
-
-- Added new methods `toJson` & `fromJson` to `SimplifiedBarcodeReaderSettings` class.
-
-### DynamsoftCameraEnhancer
-
-- Added a new constructor of class [`CameraEnhancer`]({{ site.android-api }}camera-enhancer.html).
-- Updated the enumeration value of [`EnumCameraPosition`]({{ site.dce-enums }}camera-position.html?lang=android).
-
-### DynamsoftCodeParser
-
-#### Improved
-
-- Security update for `DynamsoftCodeParser` library.
-
-#### Fixed
-
-- Small fixes and tweaks.
-
-### DynamsoftCodeParserDedicator
-
-#### Improved
-
-- Security update for `DynamsoftCodeParserDedicator` library.
-
-#### Fixed
-
-- Small fixes and tweaks.
-
-### DynamsoftImageProcessing
-
-- Fixed a bug where users would not receive proper error messages when attempting to configure `SimplifiedLabelRecognizerSettings` with an incorrect `CharacterModel`.
-
-### DynamsoftLabelRecognizer
-
-#### Improved
-
-- Improved the speed of `TextLineGroup` detection by optimizing internal logic.
-- Security update for `DynamsoftLabelRecognizer` library and other corresponding libraries.
-- Supported the filter configuration of the characters that are not recognized by the Deep Neural Network via the Filter.txt file.
-- Improved the `CharacterModel` loading mechanism. If a model file is available under the assets folder, the `CharacterModel` will be loaded autometically. Otherwise, it will be downloaded from the server.
-
-#### New
-
-- Added a new class [`BufferedCharacterItemSet`]({{ site.dlr_android_api }}buffered-character-item-set.html) to represent a collection of buffered character items and cluster information.
-- Added a new class [`BufferedCharacterItem`]({{ site.dlr_android_api }}buffered-character-item.html) to represent a basic item of the buffered characters with its image and features information.
-- Added a new class [`CharacterCluster`]({{ site.dlr_android_api }}character-cluster.html) to represent a character cluster generated from the collected buffered character items.
-- Added a new method [`getSpecificationName`]({{ site.dlr_android_api }}text-line-result-item.html#getspecificationname) to the `TextLineResultItem` class to get the name of the [`TextLineSpecificationObject`]({{ site.dcv_parameter }}file/auxiliary/textline-specification.html) that generated this `TextLineResultItem`.
-- Added a new method [`getSpecificationName`]({{ site.dlr_android_api }}recognized-text-line-element.html#getspecificationname) to the `RecognizedTextLineElement` class to get the name of the [`TextLineSpecificationObject`]({{ site.dcv_parameter }}file/auxiliary/textline-specification.html) that generated this `RecognizedTextLineElement`.
-- Added new methods to the [`LocalizedTextLinesUnit`]({{ site.dlr_android_api }}localized-text-lines-unit.html) class to add, set or remove the localized text line elements.
-- Added new methods to the [`RecognizedTextLinesUnit`]({{ site.dlr_android_api }}recognized-text-lines-unit.html) class to add, set or remove the recognized text line elements.
-- Added a new method `setText` to the [`RecognizedTextLineElement`]({{ site.dlr_android_api }}recognized-text-line-element.html) class.
-- Added the following methods to the [`RecognizedTextLinesResult`]({{ site.dlr_android_api }}recognized-text-lines-result.html) class.
- - `retain`
- - `release`
-- Added new constructors to the following classes.
- - [`RecognizedTextLineElement`]({{ site.dlr_android_api }}recognized-text-line-element.html)
- - [`LocalizedTextLineElement`]({{ site.dlr_android_api }}localized-text-line-element.html)
-- Updated the template system
- - Added new [`LabelRecognizerTaskSettings`]({{ site.dcv_parameter }}reference/label-recognizer-task-settings/) parameters.
- - Added `ConfusableCharactersPath` to define the path of the resource files that store the confusable characters' information.
- - Added `ClusterSamplesCountThreshold` to specify the lowest required sample count for clustering.
- - Added new [`TextLineSpecification`]({{ site.dcv_parameter }}reference/text-line-specification/) parameters.
- - Added `ConfusableCharactersCorrection` to define which confusable characters you are going to distinguish. You can also specify the font type of the characters.
- - Added `ExpectedGroupCount` to define the count of `TextLineGroups` that might exist on the image.
-
-### DynamsoftNeuralNetwork
-
-- Separated from the `DynamsoftImageProcessing` module.
-
-### DynamsoftLicense
-
-#### Improved
-
-- Improved the usage count logic of the concurrent license mode.
-- Improved the experience of local cache usage when failing to connect the license server. The renewal of the local cache is optimized as well.
-
-### DynamsoftUtility
-
-#### Fixed
-
-- Small fixes and tweaks.
diff --git a/programming/ios/user-guide/mrz-v2.2.3000.md b/programming/ios/user-guide/mrz-v2.2.3000.md
deleted file mode 100644
index d738e513..00000000
--- a/programming/ios/user-guide/mrz-v2.2.3000.md
+++ /dev/null
@@ -1,321 +0,0 @@
----
-layout: default-layout
-title: Scan & Parse MRZ - Dynamsoft Capture Vision iOS Edition
-description: This page introduce how to scan and parse a MRZ with Dynamsoft Capture Vision iOS Edition.
-keywords: iOS, MRZ, passport, id card, visa
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# iOS User Guide for MRZ Integration
-
-In this guide, you will learn step by step on how to build a MRZ scanner application with Dynamsoft Capture Vision iOS SDK.
-
-- [iOS User Guide for MRZ Integration](#ios-user-guide-for-mrz-integration)
- - [Supported Machine-Readable Travel Document Types](#supported-machine-readable-travel-document-types)
- - [ID (TD1 Size)](#id-td1-size)
- - [ID (TD2 Size)](#id-td2-size)
- - [Passport (TD3 Size)](#passport-td3-size)
- - [Requirements](#requirements)
- - [Add the SDK](#add-the-sdk)
- - [Add the xcframeworks via CocoaPods](#add-the-xcframeworks-via-cocoapods)
- - [Add the xcframeworks via Swift Package Manager](#add-the-xcframeworks-via-swift-package-manager)
- - [Build Your First Application](#build-your-first-application)
- - [Create a New Project](#create-a-new-project)
- - [Include the Library](#include-the-library)
- - [Deploy the CharacterModel \& Template](#deploy-the-charactermodel--template)
- - [Initialize the License](#initialize-the-license)
- - [Initialize the Camera Module](#initialize-the-camera-module)
- - [Initialize the Capture Vision Router](#initialize-the-capture-vision-router)
- - [Implement Result Receiver](#implement-result-receiver)
- - [Extract Parsed Results](#extract-parsed-results)
- - [Configure viewWillAppear, viewWillDisappear, viewDidLoad](#configure-viewwillappear-viewwilldisappear-viewdidload)
- - [Configure Camera Privacy](#configure-camera-privacy)
- - [Build and Run the Project](#build-and-run-the-project)
-
-## Supported Machine-Readable Travel Document Types
-
-The Machine Readable Travel Documents (MRTD) standard specified by the International Civil Aviation Organization (ICAO) defines how to encode information for optical character recognition on official travel documents.
-
-Currently, the SDK supports three types of MRTD:
-
-> Note: If you need support for other types of MRTDs, our SDK can be easily customized. Please contact support@dynamsoft.com.
-
-### ID (TD1 Size)
-
-The MRZ (Machine Readable Zone) in TD1 format consists of 3 lines, each containing 30 characters.
-
-
-

-
-
-### ID (TD2 Size)
-
-The MRZ (Machine Readable Zone) in TD2 format consists of 2 lines, with each line containing 36 characters.
-
-
-

-
-
-### Passport (TD3 Size)
-
-The MRZ (Machine Readable Zone) in TD3 format consists of 2 lines, with each line containing 44 characters.
-
-
-

-
-
-
-## Requirements
-
-- Supported OS: iOS 11+ (iOS 13+ recommended).
-- Supported ABI: arm64 and x86_64.
-- Development Environment: Xcode 13+ (Xcode 14.1+ recommended).
-
-## Add the SDK
-
-There are two ways to add the SDK into your project - **CocoaPods**, or via **Swift Package Manager**.
-
-### Add the xcframeworks via CocoaPods
-
-1. Add the frameworks in your **Podfile**, replace *TargetName* with your real target name.
-
- ```pod
- target '{Your project name}' do
- use_frameworks!
-
- pod 'DynamsoftCaptureVisionBundle','2.2.3000'
-
- end
- ```
-
- > Read more about the modules of [DynamsoftCaptureVisionBundle](../api-reference/index.md)
-
-2. Execute the pod command to install the frameworks and generate workspace(**{Your project name}.xcworkspace**):
-
- ```bash
- pod install
- ```
-
-### Add the xcframeworks via Swift Package Manager
-
-1. In your Xcode project, go to **File --> AddPackages**.
-
-2. In the top-right section of the window, search "https://github.com/Dynamsoft/capture-vision-spm"
-
-3. Select `capture-vision-spm`, choose `Exact version`, enter **2.2.3000**, then click **Add Package**.
-
-4. Check all the frameworks and add.
-
-## Build Your First Application
-
-In this section, we will explain how to create a `HelloWorld` implementation similar to our simple `MRZScanner` app for reading the MRZ zone from camera video input.
-
->Note:
->
->- The following steps are completed in XCode 14.2
->- You can get similar source code from MRZScanner Sample(Swift)
-
-### Create a New Project
-
-1. Open XCode and select *Create a new Xcode Project* or in the *File > New > Project* menu to create a new project.
-
-2. Select **iOS -> App** for your application.
-
-3. Input your product name (HelloWorld), interface (StoryBoard) and language (Swift)
-
-4. Click on **Next** and select the location to save the project.
-
-5. Click on **Create** to finish creating the new project.
-
-### Include the Library
-
-To add the SDK to your new project, please read [Add the SDK](#add-the-sdk) section for more details.
-
-### Deploy the CharacterModel & Template
-
-A `CharacterModel` is a model file trained using deep neural networks for character recognition. A `Template` file in the Dynamsoft Capture Vision SDK offers a customizable configuration for optimizing barcode recognition, label recognition, document normalization, and bytes parsing settings. This enables users to tailor the capture process to their specific needs. For MRZ scanning, you have to include the required the MRZ `CharacterModel` and `Template` in your project first.
-
-1. Create a **DynamsoftResources** folder in the finder. Under the **DynamsoftResources** folder create two new folders, **CharacterModel** and **Templates**.
-
-2. Copy the **MRZ.data** to the `CharacterModel` folder.
-
-3. Copy your template file **MRZScanner.json** to the **Templates** folder.
-
-4. Rename the **DynamsoftResources** folder's extension name to **.bundle** and drag the **DynamsoftResources.bundle** into your project on Xcode. Select **Create groups** for the **Added folders** option.
-
-### Initialize the License
-
-1. Use the `LicenseManager` class and initialize the license in **AppDelegate**.
-
- ```swift
- import DynamsoftLicense
- class AppDelegate: UIResponder, UIApplicationDelegate, LicenseVerificationListener {
- func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
- LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", verificationDelegate:self)
- return true
- }
- func onLicenseVerified(_ isSuccess: Bool, error: Error?) {
- if(error != nil)
- {
- if let msg = error?.localizedDescription {
- print("Server license verify failed, error:\(msg)")
- }
- }
- }
- }
- ```
-
- >Note:
- >
- >- The license string here grants a time-limited free trial which requires network connection to work.
- >- You can request for a 30-day trial license via the Trial License link.
-
-### Initialize the Camera Module
-
-Create the instances of `CameraEnhancer` and `CameraView` in **ViewController**.
-
-```swift
-import DynamsoftCameraEnhancer
-...
-class ViewController: UIViewController {
- private var dce: CameraEnhancer!
- private var dceView: CameraView!
- private var dlrDrawingLayer: DrawingLayer!
-
- private func configureDCE() -> Void {
- dceView = .init(frame: view.bounds)
- dceView.scanLaserVisible = true
- dceView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
- self.view.addSubview(dceView)
-
- dlrDrawingLayer = dceView.getDrawingLayer(DrawingLayerId.DLR.rawValue)
- dlrDrawingLayer!.visible = true
- dce = CameraEnhancer(view: dceView)
- dce.enableEnhancedFeatures(.frameFilter)
- }
-}
-```
-
-### Initialize the Capture Vision Router
-
-Create an instance of `CaptureVisionRouter` and bind it with the already created instance of `DynamsoftCameraEnhancer`.
-
-```swift
-import DynamsoftCaptureVisionRouter
-import DynamsoftUtility
-...
-class ViewController: UIViewController {
- private var cvr: CaptureVisionRouter!
- private var resultFilter: MultiFrameResultCrossFilter!
- ...
- private func configureCVR() -> Void {
- cvr = CaptureVisionRouter()
-
- try? cvr.initSettingsFromFile("MRZScanner.json")
- try? cvr.setInput(dce)
-
- // Add filter.
- resultFilter = MultiFrameResultCrossFilter()
- resultFilter.enableResultCrossVerification(.textLine, isEnabled: true)
- cvr.addResultFilter(resultFilter)
- }
-}
-```
-
-### Implement Result Receiver
-
-Set up result callback in order to receive the parsed MRZ results after the capturing starts.
-
-```swift
-import DynamsoftCodeParser
-...
-// Add CapturedResultReceiver to the class.
-class ViewController: UIViewController, CapturedResultReceiver {
- ...
- private func configureCVR() -> Void {
- ...
- // Add a CaptureResultReceiver to receive results.
- cvr.addResultReceiver(self)
- }
-
- func onParsedResultsReceived(_ result: ParsedResult) {
- // Deal with the parsed results.
- }
-}
-```
-
-### Extract Parsed Results
-
-```swift
-class ViewController: UIViewController, CapturedResultReceiver {
- ...
- func onParsedResultsReceived(_ result: ParsedResult) {
- guard let items = result.items else { return }
- guard let firstItem = items.first else { return }
- let parsedFields = firstItem.parsedFields
- let passportNumber = parsedFields["passportNumber"] ?? parsedFields["documentNumber"] ?? ""
- let sex = parsedFields["sex"] ?? ""
- let issuingState = parsedFields["issuingState"] ?? ""
- let nationality = parsedFields["nationality"] ?? ""
- let secondaryIdentifier = parsedFields["secondaryIdentifier"] ?? ""
- let primaryIdentifier = parsedFields["primaryIdentifier"] ?? ""
- let dateOfBirth = parsedFields["dateOfBirth"] ?? ""
- let dateOfExpiry = parsedFields["dateOfExpiry"] ?? ""
- let parsedString = "Name: " + secondaryIdentifier + " " + primaryIdentifier + "\n" + "Gender: " + sex + "\n" + "Issuing State: " + issuingState + "\n" + "Nationality: " + nationality + "\n" + "Date of Birth(YY-MM-DD): " + dateOfBirth + "\n" + "Date of Expiry(YY-MM-DD): " + dateOfExpiry
- print(parsedString)
- }
-}
-```
-
-### Configure viewWillAppear, viewWillDisappear, viewDidLoad
-
-Time to configure these core functions that will connect everything together. All of the configuration code such as the *configureCVR* and *configureDCE* goes in *viewDidLoad*. While *viewWillAppear* contains the method that will open the camera and start MRZ scanning.
-
-```swift
-class ViewController: UIViewController, CapturedResultReceiver {
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do any additional setup after loading the view.
- self.title = "MRZScanner"
-
- configureDCE()
- configureCVR()
- dce.open()
- print("Open")
- cvr.startCapturing("ReadPassportAndId") {
- isSuccess, error in
- if let error = error {
- print(error.localizedDescription)
- }
- }
- }
-
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- self.navigationController?.navigationBar.tintColor = .white
- self.navigationController?.navigationBar.titleTextAttributes = [
- NSAttributedString.Key.foregroundColor: UIColor.white]
- self.navigationController?.navigationBar.barTintColor = UIColor(red: 59.003 / 255.0, green: 61.9991 / 255.0, blue: 69.0028 / 255.0, alpha: 1)
-
-
- }
-
- override func viewWillDisappear(_ animated: Bool) {
- super.viewWillDisappear(animated)
- dce.close()
- }
-}
-```
-
-### Configure Camera Privacy
-
-Add Privacy - Camera Usage Description to the info.plist of your project to request camera permission. An easy way to do this is to access your project settings, go to Info and then add this Privacy property to the iOS target properties list.
-
-### Build and Run the Project
-
-1. Before deploying the project, select the device that you want to run your app on.
-2. Run the project, then your app will be installed on your device.
-
->Note: View the similar source code from MRZScanner Sample(Swift)
diff --git a/programming/ios/user-guide/mrz-v2.4.2000.md b/programming/ios/user-guide/mrz-v2.4.2000.md
deleted file mode 100644
index 79c723dd..00000000
--- a/programming/ios/user-guide/mrz-v2.4.2000.md
+++ /dev/null
@@ -1,313 +0,0 @@
----
-layout: default-layout
-title: Scan & Parse MRZ - Dynamsoft Capture Vision iOS Edition
-description: This page introduce how to scan and parse a MRZ with Dynamsoft Capture Vision iOS Edition.
-keywords: iOS, MRZ, passport, id card, visa
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# iOS User Guide for MRZ Integration
-
-In this guide, you will learn step by step on how to build a MRZ scanner application with Dynamsoft Capture Vision iOS SDK.
-
-- [iOS User Guide for MRZ Integration](#ios-user-guide-for-mrz-integration)
- - [Supported Machine-Readable Travel Document Types](#supported-machine-readable-travel-document-types)
- - [ID (TD1 Size)](#id-td1-size)
- - [ID (TD2 Size)](#id-td2-size)
- - [Passport (TD3 Size)](#passport-td3-size)
- - [Requirements](#requirements)
- - [Add the SDK](#add-the-sdk)
- - [Add the xcframeworks via CocoaPods](#add-the-xcframeworks-via-cocoapods)
- - [Add the xcframeworks via Swift Package Manager](#add-the-xcframeworks-via-swift-package-manager)
- - [Build Your First Application](#build-your-first-application)
- - [Create a New Project](#create-a-new-project)
- - [Include the Library](#include-the-library)
- - [Initialize the License](#initialize-the-license)
- - [Initialize the Camera Module](#initialize-the-camera-module)
- - [Initialize the Capture Vision Router](#initialize-the-capture-vision-router)
- - [Implement Result Receiver](#implement-result-receiver)
- - [Extract Parsed Results](#extract-parsed-results)
- - [Configure viewWillAppear, viewWillDisappear, viewDidLoad](#configure-viewwillappear-viewwilldisappear-viewdidload)
- - [Configure Camera Privacy](#configure-camera-privacy)
- - [Build and Run the Project](#build-and-run-the-project)
-
-## Supported Machine-Readable Travel Document Types
-
-The Machine Readable Travel Documents (MRTD) standard specified by the International Civil Aviation Organization (ICAO) defines how to encode information for optical character recognition on official travel documents.
-
-Currently, the SDK supports three types of MRTD:
-
-> Note: If you need support for other types of MRTDs, our SDK can be easily customized. Please contact support@dynamsoft.com.
-
-### ID (TD1 Size)
-
-The MRZ (Machine Readable Zone) in TD1 format consists of 3 lines, each containing 30 characters.
-
-
-

-
-
-### ID (TD2 Size)
-
-The MRZ (Machine Readable Zone) in TD2 format consists of 2 lines, with each line containing 36 characters.
-
-
-

-
-
-### Passport (TD3 Size)
-
-The MRZ (Machine Readable Zone) in TD3 format consists of 2 lines, with each line containing 44 characters.
-
-
-

-
-
-## Requirements
-
-- Supported OS: iOS 11+ (iOS 13+ recommended).
-- Supported ABI: arm64 and x86_64.
-- Development Environment: Xcode 13+ (Xcode 14.1+ recommended).
-
-## Add the SDK
-
-There are two ways to add the SDK into your project - **CocoaPods**, or via **Swift Package Manager**.
-
-### Add the xcframeworks via CocoaPods
-
-1. Add the frameworks in your **Podfile**, replace *TargetName* with your real target name.
-
- ```pod
- target '{Your project name}' do
- use_frameworks!
-
- pod 'DynamsoftCaptureVisionBundle','2.4.2000'
- pod 'DynamsoftMRZ', '3.4.20'
-
- end
- ```
-
- > Read more about the modules of [DynamsoftCaptureVisionBundle](../api-reference/index.md)
-
-2. Execute the pod command to install the frameworks and generate workspace(**{Your project name}.xcworkspace**):
-
- ```bash
- pod install
- ```
-
-### Add the xcframeworks via Swift Package Manager
-
-1. In your Xcode project, go to **File --> AddPackages**.
-
-2. In the top-right section of the window, search "https://github.com/Dynamsoft/capture-vision-spm"
-
-3. Select `capture-vision-spm`, choose `Exact version`, enter **2.4.2000**, then click **Add Package**.
-
-4. Check all the frameworks and add.
-
-## Build Your First Application
-
-In this section, we will explain how to create a `HelloWorld` implementation similar to our simple `MRZScanner` app for reading the MRZ zone from camera video input.
-
->Note:
->
->- The following steps are completed in XCode 14.2
->- You can get similar source code from MRZScanner Sample(Swift)
-
-### Create a New Project
-
-1. Open XCode and select *Create a new Xcode Project* or in the *File > New > Project* menu to create a new project.
-
-2. Select **iOS -> App** for your application.
-
-3. Input your product name (HelloWorld), interface (StoryBoard) and language (Swift)
-
-4. Click on **Next** and select the location to save the project.
-
-5. Click on **Create** to finish creating the new project.
-
-### Include the Library
-
-To add the SDK to your new project, please read [Add the SDK](#add-the-sdk) section for more details.
-
-### Initialize the License
-
-1. Use the `LicenseManager` class and initialize the license in **AppDelegate**.
-
- ```swift
- import DynamsoftLicense
- class AppDelegate: UIResponder, UIApplicationDelegate, LicenseVerificationListener {
- func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
- LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", verificationDelegate:self)
- return true
- }
- func onLicenseVerified(_ isSuccess: Bool, error: Error?) {
- if(error != nil)
- {
- if let msg = error?.localizedDescription {
- print("Server license verify failed, error:\(msg)")
- }
- }
- }
- }
- ```
-
- >Note:
- >
- >- The license string here grants a time-limited free trial which requires network connection to work.
- >- You can request for a 30-day trial license via the Trial License link.
-
-### Initialize the Camera Module
-
-Create the instances of `CameraEnhancer` and `CameraView` in **ViewController**.
-
-```swift
-import DynamsoftCameraEnhancer
-...
-class ViewController: UIViewController {
- private var dce: CameraEnhancer!
- private var dceView: CameraView!
- private var dlrDrawingLayer: DrawingLayer!
-
- private func configureDCE() -> Void {
- dceView = .init(frame: view.bounds)
- dceView.scanLaserVisible = true
- dceView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
- self.view.addSubview(dceView)
-
- dlrDrawingLayer = dceView.getDrawingLayer(DrawingLayerId.DLR.rawValue)
- dlrDrawingLayer!.visible = true
- dce = CameraEnhancer(view: dceView)
- dce.enableEnhancedFeatures(.frameFilter)
- }
-}
-```
-
-### Initialize the Capture Vision Router
-
-Create an instance of `CaptureVisionRouter` and bind it with the already created instance of `DynamsoftCameraEnhancer`.
-
-```swift
-import DynamsoftCaptureVisionRouter
-import DynamsoftUtility
-...
-class ViewController: UIViewController {
- private var cvr: CaptureVisionRouter!
- private var resultFilter: MultiFrameResultCrossFilter!
- ...
- private func configureCVR() -> Void {
- cvr = CaptureVisionRouter()
-
- try? cvr.setInput(dce)
-
- // Add filter.
- resultFilter = MultiFrameResultCrossFilter()
- resultFilter.enableResultCrossVerification(.textLine, isEnabled: true)
- cvr.addResultFilter(resultFilter)
- }
-}
-```
-
-### Implement Result Receiver
-
-Set up result callback in order to receive the parsed MRZ results after the capturing starts.
-
-```swift
-import DynamsoftCodeParser
-...
-// Add CapturedResultReceiver to the class.
-class ViewController: UIViewController, CapturedResultReceiver {
- ...
- private func configureCVR() -> Void {
- ...
- // Add a CaptureResultReceiver to receive results.
- cvr.addResultReceiver(self)
- }
-
- func onParsedResultsReceived(_ result: ParsedResult) {
- // Deal with the parsed results.
- }
-}
-```
-
-### Extract Parsed Results
-
-```swift
-class ViewController: UIViewController, CapturedResultReceiver {
- ...
- func onParsedResultsReceived(_ result: ParsedResult) {
- guard let items = result.items else { return }
- guard let firstItem = items.first else { return }
- let parsedFields = firstItem.parsedFields
- let passportNumber = parsedFields["passportNumber"] ?? parsedFields["documentNumber"] ?? ""
- let sex = parsedFields["sex"] ?? ""
- let issuingState = parsedFields["issuingState"] ?? ""
- let nationality = parsedFields["nationality"] ?? ""
- let secondaryIdentifier = parsedFields["secondaryIdentifier"] ?? ""
- let primaryIdentifier = parsedFields["primaryIdentifier"] ?? ""
- let dateOfBirth = parsedFields["dateOfBirth"] ?? ""
- let dateOfExpiry = parsedFields["dateOfExpiry"] ?? ""
- let parsedString = "Name: " + secondaryIdentifier + " " + primaryIdentifier + "\n" + "Gender: " + sex + "\n" + "Issuing State: " + issuingState + "\n" + "Nationality: " + nationality + "\n" + "Date of Birth(YY-MM-DD): " + dateOfBirth + "\n" + "Date of Expiry(YY-MM-DD): " + dateOfExpiry
- print(parsedString)
- }
-}
-```
-
-### Configure viewWillAppear, viewWillDisappear, viewDidLoad
-
-Time to configure these core functions that will connect everything together. All of the configuration code such as the *configureCVR* and *configureDCE* goes in *viewDidLoad*. While *viewWillAppear* contains the method that will open the camera and start MRZ scanning.
-
-```swift
-class ViewController: UIViewController, CapturedResultReceiver {
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do any additional setup after loading the view.
- self.title = "MRZScanner"
-
- configureDCE()
- configureCVR()
- dce.open()
- print("Open")
- cvr.startCapturing("ReadPassportAndId") {
- isSuccess, error in
- if let error = error {
- print(error.localizedDescription)
- }
- }
- }
-
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- self.navigationController?.navigationBar.tintColor = .white
- self.navigationController?.navigationBar.titleTextAttributes = [
- NSAttributedString.Key.foregroundColor: UIColor.white]
- self.navigationController?.navigationBar.barTintColor = UIColor(red: 59.003 / 255.0, green: 61.9991 / 255.0, blue: 69.0028 / 255.0, alpha: 1)
-
-
- }
-
- override func viewWillDisappear(_ animated: Bool) {
- super.viewWillDisappear(animated)
- dce.close()
- }
-}
-```
-
->Note:
->
->- When using `startCapturing`, set the template to "ReadPassportAndId" to capture both Passports and ID cards.
->- If you only need to capture Passports, set the template to "ReadPassport" when calling `startCapturing`.
->- To capture only ID cards, set the template to "ReadId" during `startCapturing`.
-
-### Configure Camera Privacy
-
-Add Privacy - Camera Usage Description to the info.plist of your project to request camera permission. An easy way to do this is to access your project settings, go to Info and then add this Privacy property to the iOS target properties list.
-
-### Build and Run the Project
-
-1. Before deploying the project, select the device that you want to run your app on.
-2. Run the project, then your app will be installed on your device.
-
->Note: View the similar source code from MRZScanner Sample(Swift)
diff --git a/programming/ios/user-guide/mrz-v2.6.1000.md b/programming/ios/user-guide/mrz-v2.6.1000.md
deleted file mode 100644
index ae9612f8..00000000
--- a/programming/ios/user-guide/mrz-v2.6.1000.md
+++ /dev/null
@@ -1,312 +0,0 @@
----
-layout: default-layout
-title: Scan & Parse MRZ - Dynamsoft Capture Vision iOS Edition
-description: This page introduce how to scan and parse a MRZ with Dynamsoft Capture Vision iOS Edition.
-keywords: iOS, MRZ, passport, id card, visa
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# iOS User Guide for MRZ Integration
-
-In this guide, you will learn step by step on how to build a MRZ scanner application with Dynamsoft Capture Vision iOS SDK.
-
-- [iOS User Guide for MRZ Integration](#ios-user-guide-for-mrz-integration)
- - [Supported Machine-Readable Travel Document Types](#supported-machine-readable-travel-document-types)
- - [ID (TD1 Size)](#id-td1-size)
- - [ID (TD2 Size)](#id-td2-size)
- - [Passport (TD3 Size)](#passport-td3-size)
- - [Requirements](#requirements)
- - [Add the SDK](#add-the-sdk)
- - [Add the xcframeworks via CocoaPods](#add-the-xcframeworks-via-cocoapods)
- - [Add the xcframeworks via Swift Package Manager](#add-the-xcframeworks-via-swift-package-manager)
- - [Build Your First Application](#build-your-first-application)
- - [Create a New Project](#create-a-new-project)
- - [Include the Library](#include-the-library)
- - [Initialize the License](#initialize-the-license)
- - [Initialize the Camera Module](#initialize-the-camera-module)
- - [Initialize the Capture Vision Router](#initialize-the-capture-vision-router)
- - [Implement Result Receiver](#implement-result-receiver)
- - [Extract Parsed Results](#extract-parsed-results)
- - [Configure viewWillAppear, viewWillDisappear, viewDidLoad](#configure-viewwillappear-viewwilldisappear-viewdidload)
- - [Configure Camera Privacy](#configure-camera-privacy)
- - [Build and Run the Project](#build-and-run-the-project)
-
-## Supported Machine-Readable Travel Document Types
-
-The Machine Readable Travel Documents (MRTD) standard specified by the International Civil Aviation Organization (ICAO) defines how to encode information for optical character recognition on official travel documents.
-
-Currently, the SDK supports three types of MRTD:
-
-> Note: If you need support for other types of MRTDs, our SDK can be easily customized. Please contact support@dynamsoft.com.
-
-### ID (TD1 Size)
-
-The MRZ (Machine Readable Zone) in TD1 format consists of 3 lines, each containing 30 characters.
-
-
-

-
-
-### ID (TD2 Size)
-
-The MRZ (Machine Readable Zone) in TD2 format consists of 2 lines, with each line containing 36 characters.
-
-
-

-
-
-### Passport (TD3 Size)
-
-The MRZ (Machine Readable Zone) in TD3 format consists of 2 lines, with each line containing 44 characters.
-
-
-

-
-
-## Requirements
-
-- Supported OS: iOS 11+ (iOS 13+ recommended).
-- Supported ABI: arm64 and x86_64.
-- Development Environment: Xcode 13+ (Xcode 14.1+ recommended).
-
-## Add the SDK
-
-There are two ways to add the SDK into your project - **CocoaPods**, or via **Swift Package Manager**.
-
-### Add the xcframeworks via CocoaPods
-
-1. Add the frameworks in your **Podfile**, replace *TargetName* with your real target name.
-
- ```pod
- target '{Your project name}' do
- use_frameworks!
-
- pod 'DynamsoftCaptureVisionBundle','2.6.1000'
- pod 'DynamsoftMRZ', '3.4.20'
-
- end
- ```
-
- > Read more about the modules of [DynamsoftCaptureVisionBundle](../api-reference/index.md)
-
-2. Execute the pod command to install the frameworks and generate workspace(**{Your project name}.xcworkspace**):
-
- ```bash
- pod install
- ```
-
-### Add the xcframeworks via Swift Package Manager
-
-1. In your Xcode project, go to **File --> AddPackages**.
-
-2. In the top-right section of the window, search "https://github.com/Dynamsoft/capture-vision-spm"
-
-3. Select `capture-vision-spm`, choose `Exact version`, enter **2.4.2000**, then click **Add Package**.
-
-4. Check all the frameworks and add.
-
-## Build Your First Application
-
-In this section, we will explain how to create a `HelloWorld` implementation similar to our simple `MRZScanner` app for reading the MRZ zone from camera video input.
-
->Note:
->
->- The following steps are completed in XCode 14.2
->- You can get similar source code from MRZScanner Sample(Swift)
-
-### Create a New Project
-
-1. Open XCode and select *Create a new Xcode Project* or in the *File > New > Project* menu to create a new project.
-
-2. Select **iOS -> App** for your application.
-
-3. Input your product name (HelloWorld), interface (StoryBoard) and language (Swift)
-
-4. Click on **Next** and select the location to save the project.
-
-5. Click on **Create** to finish creating the new project.
-
-### Include the Library
-
-To add the SDK to your new project, please read [Add the SDK](#add-the-sdk) section for more details.
-
-### Initialize the License
-
-1. Use the `LicenseManager` class and initialize the license in **AppDelegate**.
-
- ```swift
- import DynamsoftLicense
- class AppDelegate: UIResponder, UIApplicationDelegate, LicenseVerificationListener {
- func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
- LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", verificationDelegate:self)
- return true
- }
- func onLicenseVerified(_ isSuccess: Bool, error: Error?) {
- if(error != nil)
- {
- if let msg = error?.localizedDescription {
- print("Server license verify failed, error:\(msg)")
- }
- }
- }
- }
- ```
-
- >Note:
- >
- >- The license string here grants a time-limited free trial which requires network connection to work.
- >- You can request for a 30-day trial license via the Trial License link.
-
-### Initialize the Camera Module
-
-Create the instances of `CameraEnhancer` and `CameraView` in **ViewController**.
-
-```swift
-import DynamsoftCameraEnhancer
-...
-class ViewController: UIViewController {
- private var dce: CameraEnhancer!
- private var dceView: CameraView!
- private var dlrDrawingLayer: DrawingLayer!
-
- private func configureDCE() -> Void {
- dceView = .init(frame: view.bounds)
- dceView.scanLaserVisible = true
- dceView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
- self.view.addSubview(dceView)
-
- dlrDrawingLayer = dceView.getDrawingLayer(DrawingLayerId.DLR.rawValue)
- dlrDrawingLayer!.visible = true
- dce = CameraEnhancer(view: dceView)
- dce.enableEnhancedFeatures(.frameFilter)
- }
-}
-```
-
-### Initialize the Capture Vision Router
-
-Create an instance of `CaptureVisionRouter` and bind it with the already created instance of `DynamsoftCameraEnhancer`.
-
-```swift
-import DynamsoftCaptureVisionRouter
-import DynamsoftUtility
-...
-class ViewController: UIViewController {
- private var cvr: CaptureVisionRouter!
- private var resultFilter: MultiFrameResultCrossFilter!
- ...
- private func configureCVR() -> Void {
- cvr = CaptureVisionRouter()
-
- try? cvr.setInput(dce)
-
- // Add filter.
- resultFilter = MultiFrameResultCrossFilter()
- resultFilter.enableResultCrossVerification(.textLine, isEnabled: true)
- cvr.addResultFilter(resultFilter)
- }
-}
-```
-
-### Implement Result Receiver
-
-Set up result callback in order to receive the parsed MRZ results after the capturing starts.
-
-```swift
-import DynamsoftCodeParser
-...
-// Add CapturedResultReceiver to the class.
-class ViewController: UIViewController, CapturedResultReceiver {
- ...
- private func configureCVR() -> Void {
- ...
- // Add a CaptureResultReceiver to receive results.
- cvr.addResultReceiver(self)
- }
-
- func onParsedResultsReceived(_ result: ParsedResult) {
- // Deal with the parsed results.
- }
-}
-```
-
-### Extract Parsed Results
-
-```swift
-class ViewController: UIViewController, CapturedResultReceiver {
- ...
- func onParsedResultsReceived(_ result: ParsedResult) {
- guard let items = result.items else { return }
- guard let firstItem = items.first else { return }
- let parsedFields = firstItem.parsedFields
- let passportNumber = parsedFields["passportNumber"] ?? parsedFields["documentNumber"] ?? ""
- let sex = parsedFields["sex"] ?? ""
- let issuingState = parsedFields["issuingState"] ?? ""
- let nationality = firstItem.getFieldRawValue("nationality")
- let secondaryIdentifier = parsedFields["secondaryIdentifier"] ?? ""
- let primaryIdentifier = parsedFields["primaryIdentifier"] ?? ""
- let dateOfBirth = parsedFields["dateOfBirth"] ?? ""
- let dateOfExpiry = parsedFields["dateOfExpiry"] ?? ""
- let parsedString = "Name: " + secondaryIdentifier + " " + primaryIdentifier + "\n" + "Gender: " + sex + "\n" + "Issuing State: " + issuingState + "\n" + "Nationality: " + nationality + "\n" + "Date of Birth(YY-MM-DD): " + dateOfBirth + "\n" + "Date of Expiry(YY-MM-DD): " + dateOfExpiry
- }
-}
-```
-
-### Configure viewWillAppear, viewWillDisappear, viewDidLoad
-
-Time to configure these core functions that will connect everything together. All of the configuration code such as the *configureCVR* and *configureDCE* goes in *viewDidLoad*. While *viewWillAppear* contains the method that will open the camera and start MRZ scanning.
-
-```swift
-class ViewController: UIViewController, CapturedResultReceiver {
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do any additional setup after loading the view.
- self.title = "MRZScanner"
-
- configureDCE()
- configureCVR()
- dce.open()
- print("Open")
- cvr.startCapturing("ReadPassportAndId") {
- isSuccess, error in
- if let error = error {
- print(error.localizedDescription)
- }
- }
- }
-
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- self.navigationController?.navigationBar.tintColor = .white
- self.navigationController?.navigationBar.titleTextAttributes = [
- NSAttributedString.Key.foregroundColor: UIColor.white]
- self.navigationController?.navigationBar.barTintColor = UIColor(red: 59.003 / 255.0, green: 61.9991 / 255.0, blue: 69.0028 / 255.0, alpha: 1)
-
-
- }
-
- override func viewWillDisappear(_ animated: Bool) {
- super.viewWillDisappear(animated)
- dce.close()
- }
-}
-```
-
->Note:
->
->- When using `startCapturing`, set the template to "ReadPassportAndId" to capture both Passports and ID cards.
->- If you only need to capture Passports, set the template to "ReadPassport" when calling `startCapturing`.
->- To capture only ID cards, set the template to "ReadId" during `startCapturing`.
-
-### Configure Camera Privacy
-
-Add Privacy - Camera Usage Description to the info.plist of your project to request camera permission. An easy way to do this is to access your project settings, go to Info and then add this Privacy property to the iOS target properties list.
-
-### Build and Run the Project
-
-1. Before deploying the project, select the device that you want to run your app on.
-2. Run the project, then your app will be installed on your device.
-
->Note: View the similar source code from MRZScanner Sample(Swift)
diff --git a/programming/ios/user-guide/mrz-v2.6.1001.md b/programming/ios/user-guide/mrz-v2.6.1001.md
deleted file mode 100644
index d724ade8..00000000
--- a/programming/ios/user-guide/mrz-v2.6.1001.md
+++ /dev/null
@@ -1,312 +0,0 @@
----
-layout: default-layout
-title: Scan & Parse MRZ - Dynamsoft Capture Vision iOS Edition
-description: This page introduce how to scan and parse a MRZ with Dynamsoft Capture Vision iOS Edition.
-keywords: iOS, MRZ, passport, id card, visa
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# iOS User Guide for MRZ Integration
-
-In this guide, you will learn step by step on how to build a MRZ scanner application with Dynamsoft Capture Vision iOS SDK.
-
-- [iOS User Guide for MRZ Integration](#ios-user-guide-for-mrz-integration)
- - [Supported Machine-Readable Travel Document Types](#supported-machine-readable-travel-document-types)
- - [ID (TD1 Size)](#id-td1-size)
- - [ID (TD2 Size)](#id-td2-size)
- - [Passport (TD3 Size)](#passport-td3-size)
- - [Requirements](#requirements)
- - [Add the SDK](#add-the-sdk)
- - [Add the xcframeworks via CocoaPods](#add-the-xcframeworks-via-cocoapods)
- - [Add the xcframeworks via Swift Package Manager](#add-the-xcframeworks-via-swift-package-manager)
- - [Build Your First Application](#build-your-first-application)
- - [Create a New Project](#create-a-new-project)
- - [Include the Library](#include-the-library)
- - [Initialize the License](#initialize-the-license)
- - [Initialize the Camera Module](#initialize-the-camera-module)
- - [Initialize the Capture Vision Router](#initialize-the-capture-vision-router)
- - [Implement Result Receiver](#implement-result-receiver)
- - [Extract Parsed Results](#extract-parsed-results)
- - [Configure viewWillAppear, viewWillDisappear, viewDidLoad](#configure-viewwillappear-viewwilldisappear-viewdidload)
- - [Configure Camera Privacy](#configure-camera-privacy)
- - [Build and Run the Project](#build-and-run-the-project)
-
-## Supported Machine-Readable Travel Document Types
-
-The Machine Readable Travel Documents (MRTD) standard specified by the International Civil Aviation Organization (ICAO) defines how to encode information for optical character recognition on official travel documents.
-
-Currently, the SDK supports three types of MRTD:
-
-> Note: If you need support for other types of MRTDs, our SDK can be easily customized. Please contact support@dynamsoft.com.
-
-### ID (TD1 Size)
-
-The MRZ (Machine Readable Zone) in TD1 format consists of 3 lines, each containing 30 characters.
-
-
-

-
-
-### ID (TD2 Size)
-
-The MRZ (Machine Readable Zone) in TD2 format consists of 2 lines, with each line containing 36 characters.
-
-
-

-
-
-### Passport (TD3 Size)
-
-The MRZ (Machine Readable Zone) in TD3 format consists of 2 lines, with each line containing 44 characters.
-
-
-

-
-
-## Requirements
-
-- Supported OS: iOS 11+ (iOS 13+ recommended).
-- Supported ABI: arm64 and x86_64.
-- Development Environment: Xcode 13+ (Xcode 14.1+ recommended).
-
-## Add the SDK
-
-There are two ways to add the SDK into your project - **CocoaPods**, or via **Swift Package Manager**.
-
-### Add the xcframeworks via CocoaPods
-
-1. Add the frameworks in your **Podfile**, replace *TargetName* with your real target name.
-
- ```pod
- target '{Your project name}' do
- use_frameworks!
-
- pod 'DynamsoftCaptureVisionBundle','2.6.1001'
- pod 'DynamsoftMRZ', '3.4.20'
-
- end
- ```
-
- > Read more about the modules of [DynamsoftCaptureVisionBundle](../api-reference/index.md)
-
-2. Execute the pod command to install the frameworks and generate workspace(**{Your project name}.xcworkspace**):
-
- ```bash
- pod install
- ```
-
-### Add the xcframeworks via Swift Package Manager
-
-1. In your Xcode project, go to **File --> AddPackages**.
-
-2. In the top-right section of the window, search "https://github.com/Dynamsoft/capture-vision-spm"
-
-3. Select `capture-vision-spm`, choose `Exact version`, enter **2.4.2000**, then click **Add Package**.
-
-4. Check all the frameworks and add.
-
-## Build Your First Application
-
-In this section, we will explain how to create a `HelloWorld` implementation similar to our simple `MRZScanner` app for reading the MRZ zone from camera video input.
-
->Note:
->
->- The following steps are completed in XCode 14.2
->- You can get similar source code from MRZScanner Sample(Swift)
-
-### Create a New Project
-
-1. Open XCode and select *Create a new Xcode Project* or in the *File > New > Project* menu to create a new project.
-
-2. Select **iOS -> App** for your application.
-
-3. Input your product name (HelloWorld), interface (StoryBoard) and language (Swift)
-
-4. Click on **Next** and select the location to save the project.
-
-5. Click on **Create** to finish creating the new project.
-
-### Include the Library
-
-To add the SDK to your new project, please read [Add the SDK](#add-the-sdk) section for more details.
-
-### Initialize the License
-
-1. Use the `LicenseManager` class and initialize the license in **AppDelegate**.
-
- ```swift
- import DynamsoftLicense
- class AppDelegate: UIResponder, UIApplicationDelegate, LicenseVerificationListener {
- func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
- LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", verificationDelegate:self)
- return true
- }
- func onLicenseVerified(_ isSuccess: Bool, error: Error?) {
- if(error != nil)
- {
- if let msg = error?.localizedDescription {
- print("Server license verify failed, error:\(msg)")
- }
- }
- }
- }
- ```
-
- >Note:
- >
- >- The license string here grants a time-limited free trial which requires network connection to work.
- >- You can request for a 30-day trial license via the Trial License link.
-
-### Initialize the Camera Module
-
-Create the instances of `CameraEnhancer` and `CameraView` in **ViewController**.
-
-```swift
-import DynamsoftCameraEnhancer
-...
-class ViewController: UIViewController {
- private var dce: CameraEnhancer!
- private var dceView: CameraView!
- private var dlrDrawingLayer: DrawingLayer!
-
- private func configureDCE() -> Void {
- dceView = .init(frame: view.bounds)
- dceView.scanLaserVisible = true
- dceView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
- self.view.addSubview(dceView)
-
- dlrDrawingLayer = dceView.getDrawingLayer(DrawingLayerId.DLR.rawValue)
- dlrDrawingLayer!.visible = true
- dce = CameraEnhancer(view: dceView)
- dce.enableEnhancedFeatures(.frameFilter)
- }
-}
-```
-
-### Initialize the Capture Vision Router
-
-Create an instance of `CaptureVisionRouter` and bind it with the already created instance of `DynamsoftCameraEnhancer`.
-
-```swift
-import DynamsoftCaptureVisionRouter
-import DynamsoftUtility
-...
-class ViewController: UIViewController {
- private var cvr: CaptureVisionRouter!
- private var resultFilter: MultiFrameResultCrossFilter!
- ...
- private func configureCVR() -> Void {
- cvr = CaptureVisionRouter()
-
- try? cvr.setInput(dce)
-
- // Add filter.
- resultFilter = MultiFrameResultCrossFilter()
- resultFilter.enableResultCrossVerification(.textLine, isEnabled: true)
- cvr.addResultFilter(resultFilter)
- }
-}
-```
-
-### Implement Result Receiver
-
-Set up result callback in order to receive the parsed MRZ results after the capturing starts.
-
-```swift
-import DynamsoftCodeParser
-...
-// Add CapturedResultReceiver to the class.
-class ViewController: UIViewController, CapturedResultReceiver {
- ...
- private func configureCVR() -> Void {
- ...
- // Add a CaptureResultReceiver to receive results.
- cvr.addResultReceiver(self)
- }
-
- func onParsedResultsReceived(_ result: ParsedResult) {
- // Deal with the parsed results.
- }
-}
-```
-
-### Extract Parsed Results
-
-```swift
-class ViewController: UIViewController, CapturedResultReceiver {
- ...
- func onParsedResultsReceived(_ result: ParsedResult) {
- guard let items = result.items else { return }
- guard let firstItem = items.first else { return }
- let parsedFields = firstItem.parsedFields
- let passportNumber = parsedFields["passportNumber"] ?? parsedFields["documentNumber"] ?? ""
- let sex = parsedFields["sex"] ?? ""
- let issuingState = parsedFields["issuingState"] ?? ""
- let nationality = firstItem.getFieldRawValue("nationality")
- let secondaryIdentifier = parsedFields["secondaryIdentifier"] ?? ""
- let primaryIdentifier = parsedFields["primaryIdentifier"] ?? ""
- let dateOfBirth = parsedFields["dateOfBirth"] ?? ""
- let dateOfExpiry = parsedFields["dateOfExpiry"] ?? ""
- let parsedString = "Name: " + secondaryIdentifier + " " + primaryIdentifier + "\n" + "Gender: " + sex + "\n" + "Issuing State: " + issuingState + "\n" + "Nationality: " + nationality + "\n" + "Date of Birth(YY-MM-DD): " + dateOfBirth + "\n" + "Date of Expiry(YY-MM-DD): " + dateOfExpiry
- }
-}
-```
-
-### Configure viewWillAppear, viewWillDisappear, viewDidLoad
-
-Time to configure these core functions that will connect everything together. All of the configuration code such as the *configureCVR* and *configureDCE* goes in *viewDidLoad*. While *viewWillAppear* contains the method that will open the camera and start MRZ scanning.
-
-```swift
-class ViewController: UIViewController, CapturedResultReceiver {
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do any additional setup after loading the view.
- self.title = "MRZScanner"
-
- configureDCE()
- configureCVR()
- dce.open()
- print("Open")
- cvr.startCapturing("ReadPassportAndId") {
- isSuccess, error in
- if let error = error {
- print(error.localizedDescription)
- }
- }
- }
-
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- self.navigationController?.navigationBar.tintColor = .white
- self.navigationController?.navigationBar.titleTextAttributes = [
- NSAttributedString.Key.foregroundColor: UIColor.white]
- self.navigationController?.navigationBar.barTintColor = UIColor(red: 59.003 / 255.0, green: 61.9991 / 255.0, blue: 69.0028 / 255.0, alpha: 1)
-
-
- }
-
- override func viewWillDisappear(_ animated: Bool) {
- super.viewWillDisappear(animated)
- dce.close()
- }
-}
-```
-
->Note:
->
->- When using `startCapturing`, set the template to "ReadPassportAndId" to capture both Passports and ID cards.
->- If you only need to capture Passports, set the template to "ReadPassport" when calling `startCapturing`.
->- To capture only ID cards, set the template to "ReadId" during `startCapturing`.
-
-### Configure Camera Privacy
-
-Add Privacy - Camera Usage Description to the info.plist of your project to request camera permission. An easy way to do this is to access your project settings, go to Info and then add this Privacy property to the iOS target properties list.
-
-### Build and Run the Project
-
-1. Before deploying the project, select the device that you want to run your app on.
-2. Run the project, then your app will be installed on your device.
-
->Note: View the similar source code from MRZScanner Sample(Swift)
diff --git a/programming/ios/user-guide/mrz-v2.6.1002.md b/programming/ios/user-guide/mrz-v2.6.1002.md
deleted file mode 100644
index f02a6826..00000000
--- a/programming/ios/user-guide/mrz-v2.6.1002.md
+++ /dev/null
@@ -1,312 +0,0 @@
----
-layout: default-layout
-title: Scan & Parse MRZ - Dynamsoft Capture Vision iOS Edition
-description: This page introduce how to scan and parse a MRZ with Dynamsoft Capture Vision iOS Edition.
-keywords: iOS, MRZ, passport, id card, visa
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# iOS User Guide for MRZ Integration
-
-In this guide, you will learn step by step on how to build a MRZ scanner application with Dynamsoft Capture Vision iOS SDK.
-
-- [iOS User Guide for MRZ Integration](#ios-user-guide-for-mrz-integration)
- - [Supported Machine-Readable Travel Document Types](#supported-machine-readable-travel-document-types)
- - [ID (TD1 Size)](#id-td1-size)
- - [ID (TD2 Size)](#id-td2-size)
- - [Passport (TD3 Size)](#passport-td3-size)
- - [Requirements](#requirements)
- - [Add the SDK](#add-the-sdk)
- - [Add the xcframeworks via CocoaPods](#add-the-xcframeworks-via-cocoapods)
- - [Add the xcframeworks via Swift Package Manager](#add-the-xcframeworks-via-swift-package-manager)
- - [Build Your First Application](#build-your-first-application)
- - [Create a New Project](#create-a-new-project)
- - [Include the Library](#include-the-library)
- - [Initialize the License](#initialize-the-license)
- - [Initialize the Camera Module](#initialize-the-camera-module)
- - [Initialize the Capture Vision Router](#initialize-the-capture-vision-router)
- - [Implement Result Receiver](#implement-result-receiver)
- - [Extract Parsed Results](#extract-parsed-results)
- - [Configure viewWillAppear, viewWillDisappear, viewDidLoad](#configure-viewwillappear-viewwilldisappear-viewdidload)
- - [Configure Camera Privacy](#configure-camera-privacy)
- - [Build and Run the Project](#build-and-run-the-project)
-
-## Supported Machine-Readable Travel Document Types
-
-The Machine Readable Travel Documents (MRTD) standard specified by the International Civil Aviation Organization (ICAO) defines how to encode information for optical character recognition on official travel documents.
-
-Currently, the SDK supports three types of MRTD:
-
-> Note: If you need support for other types of MRTDs, our SDK can be easily customized. Please contact support@dynamsoft.com.
-
-### ID (TD1 Size)
-
-The MRZ (Machine Readable Zone) in TD1 format consists of 3 lines, each containing 30 characters.
-
-
-

-
-
-### ID (TD2 Size)
-
-The MRZ (Machine Readable Zone) in TD2 format consists of 2 lines, with each line containing 36 characters.
-
-
-

-
-
-### Passport (TD3 Size)
-
-The MRZ (Machine Readable Zone) in TD3 format consists of 2 lines, with each line containing 44 characters.
-
-
-

-
-
-## Requirements
-
-- Supported OS: iOS 11+ (iOS 13+ recommended).
-- Supported ABI: arm64 and x86_64.
-- Development Environment: Xcode 13+ (Xcode 14.1+ recommended).
-
-## Add the SDK
-
-There are two ways to add the SDK into your project - **CocoaPods**, or via **Swift Package Manager**.
-
-### Add the xcframeworks via CocoaPods
-
-1. Add the frameworks in your **Podfile**, replace *TargetName* with your real target name.
-
- ```pod
- target '{Your project name}' do
- use_frameworks!
-
- pod 'DynamsoftCaptureVisionBundle','2.6.1002'
- pod 'DynamsoftMRZ', '3.4.20'
-
- end
- ```
-
- > Read more about the modules of [DynamsoftCaptureVisionBundle](../api-reference/index.md)
-
-2. Execute the pod command to install the frameworks and generate workspace(**{Your project name}.xcworkspace**):
-
- ```bash
- pod install
- ```
-
-### Add the xcframeworks via Swift Package Manager
-
-1. In your Xcode project, go to **File --> AddPackages**.
-
-2. In the top-right section of the window, search "https://github.com/Dynamsoft/capture-vision-spm"
-
-3. Select `capture-vision-spm`, choose `Exact version`, enter **2.4.2000**, then click **Add Package**.
-
-4. Check all the frameworks and add.
-
-## Build Your First Application
-
-In this section, we will explain how to create a `HelloWorld` implementation similar to our simple `MRZScanner` app for reading the MRZ zone from camera video input.
-
->Note:
->
->- The following steps are completed in XCode 14.2
->- You can get similar source code from MRZScanner Sample(Swift)
-
-### Create a New Project
-
-1. Open XCode and select *Create a new Xcode Project* or in the *File > New > Project* menu to create a new project.
-
-2. Select **iOS -> App** for your application.
-
-3. Input your product name (HelloWorld), interface (StoryBoard) and language (Swift)
-
-4. Click on **Next** and select the location to save the project.
-
-5. Click on **Create** to finish creating the new project.
-
-### Include the Library
-
-To add the SDK to your new project, please read [Add the SDK](#add-the-sdk) section for more details.
-
-### Initialize the License
-
-1. Use the `LicenseManager` class and initialize the license in **AppDelegate**.
-
- ```swift
- import DynamsoftLicense
- class AppDelegate: UIResponder, UIApplicationDelegate, LicenseVerificationListener {
- func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
- LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", verificationDelegate:self)
- return true
- }
- func onLicenseVerified(_ isSuccess: Bool, error: Error?) {
- if(error != nil)
- {
- if let msg = error?.localizedDescription {
- print("Server license verify failed, error:\(msg)")
- }
- }
- }
- }
- ```
-
- >Note:
- >
- >- The license string here grants a time-limited free trial which requires network connection to work.
- >- You can request for a 30-day trial license via the Trial License link.
-
-### Initialize the Camera Module
-
-Create the instances of `CameraEnhancer` and `CameraView` in **ViewController**.
-
-```swift
-import DynamsoftCameraEnhancer
-...
-class ViewController: UIViewController {
- private var dce: CameraEnhancer!
- private var dceView: CameraView!
- private var dlrDrawingLayer: DrawingLayer!
-
- private func configureDCE() -> Void {
- dceView = .init(frame: view.bounds)
- dceView.scanLaserVisible = true
- dceView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
- self.view.addSubview(dceView)
-
- dlrDrawingLayer = dceView.getDrawingLayer(DrawingLayerId.DLR.rawValue)
- dlrDrawingLayer!.visible = true
- dce = CameraEnhancer(view: dceView)
- dce.enableEnhancedFeatures(.frameFilter)
- }
-}
-```
-
-### Initialize the Capture Vision Router
-
-Create an instance of `CaptureVisionRouter` and bind it with the already created instance of `DynamsoftCameraEnhancer`.
-
-```swift
-import DynamsoftCaptureVisionRouter
-import DynamsoftUtility
-...
-class ViewController: UIViewController {
- private var cvr: CaptureVisionRouter!
- private var resultFilter: MultiFrameResultCrossFilter!
- ...
- private func configureCVR() -> Void {
- cvr = CaptureVisionRouter()
-
- try? cvr.setInput(dce)
-
- // Add filter.
- resultFilter = MultiFrameResultCrossFilter()
- resultFilter.enableResultCrossVerification(.textLine, isEnabled: true)
- cvr.addResultFilter(resultFilter)
- }
-}
-```
-
-### Implement Result Receiver
-
-Set up result callback in order to receive the parsed MRZ results after the capturing starts.
-
-```swift
-import DynamsoftCodeParser
-...
-// Add CapturedResultReceiver to the class.
-class ViewController: UIViewController, CapturedResultReceiver {
- ...
- private func configureCVR() -> Void {
- ...
- // Add a CaptureResultReceiver to receive results.
- cvr.addResultReceiver(self)
- }
-
- func onParsedResultsReceived(_ result: ParsedResult) {
- // Deal with the parsed results.
- }
-}
-```
-
-### Extract Parsed Results
-
-```swift
-class ViewController: UIViewController, CapturedResultReceiver {
- ...
- func onParsedResultsReceived(_ result: ParsedResult) {
- guard let items = result.items else { return }
- guard let firstItem = items.first else { return }
- let parsedFields = firstItem.parsedFields
- let passportNumber = parsedFields["passportNumber"] ?? parsedFields["documentNumber"] ?? ""
- let sex = parsedFields["sex"] ?? ""
- let issuingState = parsedFields["issuingState"] ?? ""
- let nationality = firstItem.getFieldRawValue("nationality")
- let secondaryIdentifier = parsedFields["secondaryIdentifier"] ?? ""
- let primaryIdentifier = parsedFields["primaryIdentifier"] ?? ""
- let dateOfBirth = parsedFields["dateOfBirth"] ?? ""
- let dateOfExpiry = parsedFields["dateOfExpiry"] ?? ""
- let parsedString = "Name: " + secondaryIdentifier + " " + primaryIdentifier + "\n" + "Gender: " + sex + "\n" + "Issuing State: " + issuingState + "\n" + "Nationality: " + nationality + "\n" + "Date of Birth(YY-MM-DD): " + dateOfBirth + "\n" + "Date of Expiry(YY-MM-DD): " + dateOfExpiry
- }
-}
-```
-
-### Configure viewWillAppear, viewWillDisappear, viewDidLoad
-
-Time to configure these core functions that will connect everything together. All of the configuration code such as the *configureCVR* and *configureDCE* goes in *viewDidLoad*. While *viewWillAppear* contains the method that will open the camera and start MRZ scanning.
-
-```swift
-class ViewController: UIViewController, CapturedResultReceiver {
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do any additional setup after loading the view.
- self.title = "MRZScanner"
-
- configureDCE()
- configureCVR()
- dce.open()
- print("Open")
- cvr.startCapturing("ReadPassportAndId") {
- isSuccess, error in
- if let error = error {
- print(error.localizedDescription)
- }
- }
- }
-
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- self.navigationController?.navigationBar.tintColor = .white
- self.navigationController?.navigationBar.titleTextAttributes = [
- NSAttributedString.Key.foregroundColor: UIColor.white]
- self.navigationController?.navigationBar.barTintColor = UIColor(red: 59.003 / 255.0, green: 61.9991 / 255.0, blue: 69.0028 / 255.0, alpha: 1)
-
-
- }
-
- override func viewWillDisappear(_ animated: Bool) {
- super.viewWillDisappear(animated)
- dce.close()
- }
-}
-```
-
->Note:
->
->- When using `startCapturing`, set the template to "ReadPassportAndId" to capture both Passports and ID cards.
->- If you only need to capture Passports, set the template to "ReadPassport" when calling `startCapturing`.
->- To capture only ID cards, set the template to "ReadId" during `startCapturing`.
-
-### Configure Camera Privacy
-
-Add Privacy - Camera Usage Description to the info.plist of your project to request camera permission. An easy way to do this is to access your project settings, go to Info and then add this Privacy property to the iOS target properties list.
-
-### Build and Run the Project
-
-1. Before deploying the project, select the device that you want to run your app on.
-2. Run the project, then your app will be installed on your device.
-
->Note: View the similar source code from MRZScanner Sample(Swift)
diff --git a/programming/ios/user-guide/mrz-v2.6.1003.md b/programming/ios/user-guide/mrz-v2.6.1003.md
deleted file mode 100644
index 023cea56..00000000
--- a/programming/ios/user-guide/mrz-v2.6.1003.md
+++ /dev/null
@@ -1,312 +0,0 @@
----
-layout: default-layout
-title: Scan & Parse MRZ - Dynamsoft Capture Vision iOS Edition
-description: This page introduce how to scan and parse a MRZ with Dynamsoft Capture Vision iOS Edition.
-keywords: iOS, MRZ, passport, id card, visa
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# iOS User Guide for MRZ Integration
-
-In this guide, you will learn step by step on how to build a MRZ scanner application with Dynamsoft Capture Vision iOS SDK.
-
-- [iOS User Guide for MRZ Integration](#ios-user-guide-for-mrz-integration)
- - [Supported Machine-Readable Travel Document Types](#supported-machine-readable-travel-document-types)
- - [ID (TD1 Size)](#id-td1-size)
- - [ID (TD2 Size)](#id-td2-size)
- - [Passport (TD3 Size)](#passport-td3-size)
- - [Requirements](#requirements)
- - [Add the SDK](#add-the-sdk)
- - [Add the xcframeworks via CocoaPods](#add-the-xcframeworks-via-cocoapods)
- - [Add the xcframeworks via Swift Package Manager](#add-the-xcframeworks-via-swift-package-manager)
- - [Build Your First Application](#build-your-first-application)
- - [Create a New Project](#create-a-new-project)
- - [Include the Library](#include-the-library)
- - [Initialize the License](#initialize-the-license)
- - [Initialize the Camera Module](#initialize-the-camera-module)
- - [Initialize the Capture Vision Router](#initialize-the-capture-vision-router)
- - [Implement Result Receiver](#implement-result-receiver)
- - [Extract Parsed Results](#extract-parsed-results)
- - [Configure viewWillAppear, viewWillDisappear, viewDidLoad](#configure-viewwillappear-viewwilldisappear-viewdidload)
- - [Configure Camera Privacy](#configure-camera-privacy)
- - [Build and Run the Project](#build-and-run-the-project)
-
-## Supported Machine-Readable Travel Document Types
-
-The Machine Readable Travel Documents (MRTD) standard specified by the International Civil Aviation Organization (ICAO) defines how to encode information for optical character recognition on official travel documents.
-
-Currently, the SDK supports three types of MRTD:
-
-> Note: If you need support for other types of MRTDs, our SDK can be easily customized. Please contact support@dynamsoft.com.
-
-### ID (TD1 Size)
-
-The MRZ (Machine Readable Zone) in TD1 format consists of 3 lines, each containing 30 characters.
-
-
-

-
-
-### ID (TD2 Size)
-
-The MRZ (Machine Readable Zone) in TD2 format consists of 2 lines, with each line containing 36 characters.
-
-
-

-
-
-### Passport (TD3 Size)
-
-The MRZ (Machine Readable Zone) in TD3 format consists of 2 lines, with each line containing 44 characters.
-
-
-

-
-
-## Requirements
-
-- Supported OS: iOS 11+ (iOS 13+ recommended).
-- Supported ABI: arm64 and x86_64.
-- Development Environment: Xcode 13+ (Xcode 14.1+ recommended).
-
-## Add the SDK
-
-There are two ways to add the SDK into your project - **CocoaPods**, or via **Swift Package Manager**.
-
-### Add the xcframeworks via CocoaPods
-
-1. Add the frameworks in your **Podfile**, replace *TargetName* with your real target name.
-
- ```pod
- target '{Your project name}' do
- use_frameworks!
-
- pod 'DynamsoftCaptureVisionBundle','2.6.1003'
- pod 'DynamsoftMRZ', '3.4.20'
-
- end
- ```
-
- > Read more about the modules of [DynamsoftCaptureVisionBundle](../api-reference/index.md)
-
-2. Execute the pod command to install the frameworks and generate workspace(**{Your project name}.xcworkspace**):
-
- ```bash
- pod install
- ```
-
-### Add the xcframeworks via Swift Package Manager
-
-1. In your Xcode project, go to **File --> AddPackages**.
-
-2. In the top-right section of the window, search "https://github.com/Dynamsoft/capture-vision-spm"
-
-3. Select `capture-vision-spm`, choose `Exact version`, enter **2.4.2000**, then click **Add Package**.
-
-4. Check all the frameworks and add.
-
-## Build Your First Application
-
-In this section, we will explain how to create a `HelloWorld` implementation similar to our simple `MRZScanner` app for reading the MRZ zone from camera video input.
-
->Note:
->
->- The following steps are completed in XCode 14.2
->- You can get similar source code from MRZScanner Sample(Swift)
-
-### Create a New Project
-
-1. Open XCode and select *Create a new Xcode Project* or in the *File > New > Project* menu to create a new project.
-
-2. Select **iOS -> App** for your application.
-
-3. Input your product name (HelloWorld), interface (StoryBoard) and language (Swift)
-
-4. Click on **Next** and select the location to save the project.
-
-5. Click on **Create** to finish creating the new project.
-
-### Include the Library
-
-To add the SDK to your new project, please read [Add the SDK](#add-the-sdk) section for more details.
-
-### Initialize the License
-
-1. Use the `LicenseManager` class and initialize the license in **AppDelegate**.
-
- ```swift
- import DynamsoftLicense
- class AppDelegate: UIResponder, UIApplicationDelegate, LicenseVerificationListener {
- func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
- LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", verificationDelegate:self)
- return true
- }
- func onLicenseVerified(_ isSuccess: Bool, error: Error?) {
- if(error != nil)
- {
- if let msg = error?.localizedDescription {
- print("Server license verify failed, error:\(msg)")
- }
- }
- }
- }
- ```
-
- >Note:
- >
- >- The license string here grants a time-limited free trial which requires network connection to work.
- >- You can request for a 30-day trial license via the Trial License link.
-
-### Initialize the Camera Module
-
-Create the instances of `CameraEnhancer` and `CameraView` in **ViewController**.
-
-```swift
-import DynamsoftCameraEnhancer
-...
-class ViewController: UIViewController {
- private var dce: CameraEnhancer!
- private var dceView: CameraView!
- private var dlrDrawingLayer: DrawingLayer!
-
- private func configureDCE() -> Void {
- dceView = .init(frame: view.bounds)
- dceView.scanLaserVisible = true
- dceView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
- self.view.addSubview(dceView)
-
- dlrDrawingLayer = dceView.getDrawingLayer(DrawingLayerId.DLR.rawValue)
- dlrDrawingLayer!.visible = true
- dce = CameraEnhancer(view: dceView)
- dce.enableEnhancedFeatures(.frameFilter)
- }
-}
-```
-
-### Initialize the Capture Vision Router
-
-Create an instance of `CaptureVisionRouter` and bind it with the already created instance of `DynamsoftCameraEnhancer`.
-
-```swift
-import DynamsoftCaptureVisionRouter
-import DynamsoftUtility
-...
-class ViewController: UIViewController {
- private var cvr: CaptureVisionRouter!
- private var resultFilter: MultiFrameResultCrossFilter!
- ...
- private func configureCVR() -> Void {
- cvr = CaptureVisionRouter()
-
- try? cvr.setInput(dce)
-
- // Add filter.
- resultFilter = MultiFrameResultCrossFilter()
- resultFilter.enableResultCrossVerification(.textLine, isEnabled: true)
- cvr.addResultFilter(resultFilter)
- }
-}
-```
-
-### Implement Result Receiver
-
-Set up result callback in order to receive the parsed MRZ results after the capturing starts.
-
-```swift
-import DynamsoftCodeParser
-...
-// Add CapturedResultReceiver to the class.
-class ViewController: UIViewController, CapturedResultReceiver {
- ...
- private func configureCVR() -> Void {
- ...
- // Add a CaptureResultReceiver to receive results.
- cvr.addResultReceiver(self)
- }
-
- func onParsedResultsReceived(_ result: ParsedResult) {
- // Deal with the parsed results.
- }
-}
-```
-
-### Extract Parsed Results
-
-```swift
-class ViewController: UIViewController, CapturedResultReceiver {
- ...
- func onParsedResultsReceived(_ result: ParsedResult) {
- guard let items = result.items else { return }
- guard let firstItem = items.first else { return }
- let parsedFields = firstItem.parsedFields
- let passportNumber = parsedFields["passportNumber"] ?? parsedFields["documentNumber"] ?? ""
- let sex = parsedFields["sex"] ?? ""
- let issuingState = parsedFields["issuingState"] ?? ""
- let nationality = firstItem.getFieldRawValue("nationality")
- let secondaryIdentifier = parsedFields["secondaryIdentifier"] ?? ""
- let primaryIdentifier = parsedFields["primaryIdentifier"] ?? ""
- let dateOfBirth = parsedFields["dateOfBirth"] ?? ""
- let dateOfExpiry = parsedFields["dateOfExpiry"] ?? ""
- let parsedString = "Name: " + secondaryIdentifier + " " + primaryIdentifier + "\n" + "Gender: " + sex + "\n" + "Issuing State: " + issuingState + "\n" + "Nationality: " + nationality + "\n" + "Date of Birth(YY-MM-DD): " + dateOfBirth + "\n" + "Date of Expiry(YY-MM-DD): " + dateOfExpiry
- }
-}
-```
-
-### Configure viewWillAppear, viewWillDisappear, viewDidLoad
-
-Time to configure these core functions that will connect everything together. All of the configuration code such as the *configureCVR* and *configureDCE* goes in *viewDidLoad*. While *viewWillAppear* contains the method that will open the camera and start MRZ scanning.
-
-```swift
-class ViewController: UIViewController, CapturedResultReceiver {
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do any additional setup after loading the view.
- self.title = "MRZScanner"
-
- configureDCE()
- configureCVR()
- dce.open()
- print("Open")
- cvr.startCapturing("ReadPassportAndId") {
- isSuccess, error in
- if let error = error {
- print(error.localizedDescription)
- }
- }
- }
-
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- self.navigationController?.navigationBar.tintColor = .white
- self.navigationController?.navigationBar.titleTextAttributes = [
- NSAttributedString.Key.foregroundColor: UIColor.white]
- self.navigationController?.navigationBar.barTintColor = UIColor(red: 59.003 / 255.0, green: 61.9991 / 255.0, blue: 69.0028 / 255.0, alpha: 1)
-
-
- }
-
- override func viewWillDisappear(_ animated: Bool) {
- super.viewWillDisappear(animated)
- dce.close()
- }
-}
-```
-
->Note:
->
->- When using `startCapturing`, set the template to "ReadPassportAndId" to capture both Passports and ID cards.
->- If you only need to capture Passports, set the template to "ReadPassport" when calling `startCapturing`.
->- To capture only ID cards, set the template to "ReadId" during `startCapturing`.
-
-### Configure Camera Privacy
-
-Add Privacy - Camera Usage Description to the info.plist of your project to request camera permission. An easy way to do this is to access your project settings, go to Info and then add this Privacy property to the iOS target properties list.
-
-### Build and Run the Project
-
-1. Before deploying the project, select the device that you want to run your app on.
-2. Run the project, then your app will be installed on your device.
-
->Note: View the similar source code from MRZScanner Sample(Swift)
diff --git a/programming/ios/user-guide/mrz-v2.6.1004.md b/programming/ios/user-guide/mrz-v2.6.1004.md
deleted file mode 100644
index 65ec8683..00000000
--- a/programming/ios/user-guide/mrz-v2.6.1004.md
+++ /dev/null
@@ -1,314 +0,0 @@
----
-layout: default-layout
-title: Scan & Parse MRZ - Dynamsoft Capture Vision iOS Edition
-description: This page introduce how to scan and parse a MRZ with Dynamsoft Capture Vision iOS Edition.
-keywords: iOS, MRZ, passport, id card, visa
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# iOS User Guide for MRZ Integration
-
-In this guide, you will learn step by step on how to build a MRZ scanner application with Dynamsoft Capture Vision iOS SDK.
-
-> This is the guide for developing a full customizable MRZ scanning application. If you'd like to start with a Ready-to-Use component, you can read [MRZScanner documentation](/mrz-scanner/docs/mobile/programming/ios/user-guide/index.html){:target="_blank"} instead.
-
-- [iOS User Guide for MRZ Integration](#ios-user-guide-for-mrz-integration)
- - [Supported Machine-Readable Travel Document Types](#supported-machine-readable-travel-document-types)
- - [ID (TD1 Size)](#id-td1-size)
- - [ID (TD2 Size)](#id-td2-size)
- - [Passport (TD3 Size)](#passport-td3-size)
- - [Requirements](#requirements)
- - [Add the SDK](#add-the-sdk)
- - [Add the xcframeworks via CocoaPods](#add-the-xcframeworks-via-cocoapods)
- - [Add the xcframeworks via Swift Package Manager](#add-the-xcframeworks-via-swift-package-manager)
- - [Build Your First Application](#build-your-first-application)
- - [Create a New Project](#create-a-new-project)
- - [Include the Library](#include-the-library)
- - [Initialize the License](#initialize-the-license)
- - [Initialize the Camera Module](#initialize-the-camera-module)
- - [Initialize the Capture Vision Router](#initialize-the-capture-vision-router)
- - [Implement Result Receiver](#implement-result-receiver)
- - [Extract Parsed Results](#extract-parsed-results)
- - [Configure viewWillAppear, viewWillDisappear, viewDidLoad](#configure-viewwillappear-viewwilldisappear-viewdidload)
- - [Configure Camera Privacy](#configure-camera-privacy)
- - [Build and Run the Project](#build-and-run-the-project)
-
-## Supported Machine-Readable Travel Document Types
-
-The Machine Readable Travel Documents (MRTD) standard specified by the International Civil Aviation Organization (ICAO) defines how to encode information for optical character recognition on official travel documents.
-
-Currently, the SDK supports three types of MRTD:
-
-> Note: If you need support for other types of MRTDs, our SDK can be easily customized. Please contact support@dynamsoft.com.
-
-### ID (TD1 Size)
-
-The MRZ (Machine Readable Zone) in TD1 format consists of 3 lines, each containing 30 characters.
-
-
-

-
-
-### ID (TD2 Size)
-
-The MRZ (Machine Readable Zone) in TD2 format consists of 2 lines, with each line containing 36 characters.
-
-
-

-
-
-### Passport (TD3 Size)
-
-The MRZ (Machine Readable Zone) in TD3 format consists of 2 lines, with each line containing 44 characters.
-
-
-

-
-
-## Requirements
-
-- Supported OS: iOS 11+ (iOS 13+ recommended).
-- Supported ABI: arm64 and x86_64.
-- Development Environment: Xcode 13+ (Xcode 14.1+ recommended).
-
-## Add the SDK
-
-There are two ways to add the SDK into your project - **CocoaPods**, or via **Swift Package Manager**.
-
-### Add the xcframeworks via CocoaPods
-
-1. Add the frameworks in your **Podfile**, replace *TargetName* with your real target name.
-
- ```pod
- target '{Your project name}' do
- use_frameworks!
-
- pod 'DynamsoftCaptureVisionBundle','2.6.1004'
- pod 'DynamsoftMRZ', '3.4.20'
-
- end
- ```
-
- > Read more about the modules of [DynamsoftCaptureVisionBundle](../api-reference/index.md)
-
-2. Execute the pod command to install the frameworks and generate workspace(**{Your project name}.xcworkspace**):
-
- ```bash
- pod install
- ```
-
-### Add the xcframeworks via Swift Package Manager
-
-1. In your Xcode project, go to **File --> AddPackages**.
-
-2. In the top-right section of the window, search "https://github.com/Dynamsoft/capture-vision-spm"
-
-3. Select `capture-vision-spm`, choose `Exact version`, enter **2.4.2000**, then click **Add Package**.
-
-4. Check all the frameworks and add.
-
-## Build Your First Application
-
-In this section, we will explain how to create a `HelloWorld` implementation similar to our simple `MRZScanner` app for reading the MRZ zone from camera video input.
-
->Note:
->
->- The following steps are completed in XCode 14.2
->- You can get similar source code from MRZScanner Sample(Swift)
-
-### Create a New Project
-
-1. Open XCode and select *Create a new Xcode Project* or in the *File > New > Project* menu to create a new project.
-
-2. Select **iOS -> App** for your application.
-
-3. Input your product name (HelloWorld), interface (StoryBoard) and language (Swift)
-
-4. Click on **Next** and select the location to save the project.
-
-5. Click on **Create** to finish creating the new project.
-
-### Include the Library
-
-To add the SDK to your new project, please read [Add the SDK](#add-the-sdk) section for more details.
-
-### Initialize the License
-
-1. Use the `LicenseManager` class and initialize the license in **AppDelegate**.
-
- ```swift
- import DynamsoftLicense
- class AppDelegate: UIResponder, UIApplicationDelegate, LicenseVerificationListener {
- func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
- LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", verificationDelegate:self)
- return true
- }
- func onLicenseVerified(_ isSuccess: Bool, error: Error?) {
- if(error != nil)
- {
- if let msg = error?.localizedDescription {
- print("Server license verify failed, error:\(msg)")
- }
- }
- }
- }
- ```
-
- >Note:
- >
- >- The license string here grants a time-limited free trial which requires network connection to work.
- >- You can request for a 30-day trial license via the Trial License link.
-
-### Initialize the Camera Module
-
-Create the instances of `CameraEnhancer` and `CameraView` in **ViewController**.
-
-```swift
-import DynamsoftCameraEnhancer
-...
-class ViewController: UIViewController {
- private var dce: CameraEnhancer!
- private var dceView: CameraView!
- private var dlrDrawingLayer: DrawingLayer!
-
- private func configureDCE() -> Void {
- dceView = .init(frame: view.bounds)
- dceView.scanLaserVisible = true
- dceView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
- self.view.addSubview(dceView)
-
- dlrDrawingLayer = dceView.getDrawingLayer(DrawingLayerId.DLR.rawValue)
- dlrDrawingLayer!.visible = true
- dce = CameraEnhancer(view: dceView)
- dce.enableEnhancedFeatures(.frameFilter)
- }
-}
-```
-
-### Initialize the Capture Vision Router
-
-Create an instance of `CaptureVisionRouter` and bind it with the already created instance of `DynamsoftCameraEnhancer`.
-
-```swift
-import DynamsoftCaptureVisionRouter
-import DynamsoftUtility
-...
-class ViewController: UIViewController {
- private var cvr: CaptureVisionRouter!
- private var resultFilter: MultiFrameResultCrossFilter!
- ...
- private func configureCVR() -> Void {
- cvr = CaptureVisionRouter()
-
- try? cvr.setInput(dce)
-
- // Add filter.
- resultFilter = MultiFrameResultCrossFilter()
- resultFilter.enableResultCrossVerification(.textLine, isEnabled: true)
- cvr.addResultFilter(resultFilter)
- }
-}
-```
-
-### Implement Result Receiver
-
-Set up result callback in order to receive the parsed MRZ results after the capturing starts.
-
-```swift
-import DynamsoftCodeParser
-...
-// Add CapturedResultReceiver to the class.
-class ViewController: UIViewController, CapturedResultReceiver {
- ...
- private func configureCVR() -> Void {
- ...
- // Add a CaptureResultReceiver to receive results.
- cvr.addResultReceiver(self)
- }
-
- func onParsedResultsReceived(_ result: ParsedResult) {
- // Deal with the parsed results.
- }
-}
-```
-
-### Extract Parsed Results
-
-```swift
-class ViewController: UIViewController, CapturedResultReceiver {
- ...
- func onParsedResultsReceived(_ result: ParsedResult) {
- guard let items = result.items else { return }
- guard let firstItem = items.first else { return }
- let parsedFields = firstItem.parsedFields
- let passportNumber = parsedFields["passportNumber"] ?? parsedFields["documentNumber"] ?? ""
- let sex = parsedFields["sex"] ?? ""
- let issuingState = parsedFields["issuingState"] ?? ""
- let nationality = firstItem.getFieldRawValue("nationality")
- let secondaryIdentifier = parsedFields["secondaryIdentifier"] ?? ""
- let primaryIdentifier = parsedFields["primaryIdentifier"] ?? ""
- let dateOfBirth = parsedFields["dateOfBirth"] ?? ""
- let dateOfExpiry = parsedFields["dateOfExpiry"] ?? ""
- let parsedString = "Name: " + secondaryIdentifier + " " + primaryIdentifier + "\n" + "Gender: " + sex + "\n" + "Issuing State: " + issuingState + "\n" + "Nationality: " + nationality + "\n" + "Date of Birth(YY-MM-DD): " + dateOfBirth + "\n" + "Date of Expiry(YY-MM-DD): " + dateOfExpiry
- }
-}
-```
-
-### Configure viewWillAppear, viewWillDisappear, viewDidLoad
-
-Time to configure these core functions that will connect everything together. All of the configuration code such as the *configureCVR* and *configureDCE* goes in *viewDidLoad*. While *viewWillAppear* contains the method that will open the camera and start MRZ scanning.
-
-```swift
-class ViewController: UIViewController, CapturedResultReceiver {
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do any additional setup after loading the view.
- self.title = "MRZScanner"
-
- configureDCE()
- configureCVR()
- dce.open()
- print("Open")
- cvr.startCapturing("ReadPassportAndId") {
- isSuccess, error in
- if let error = error {
- print(error.localizedDescription)
- }
- }
- }
-
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- self.navigationController?.navigationBar.tintColor = .white
- self.navigationController?.navigationBar.titleTextAttributes = [
- NSAttributedString.Key.foregroundColor: UIColor.white]
- self.navigationController?.navigationBar.barTintColor = UIColor(red: 59.003 / 255.0, green: 61.9991 / 255.0, blue: 69.0028 / 255.0, alpha: 1)
-
-
- }
-
- override func viewWillDisappear(_ animated: Bool) {
- super.viewWillDisappear(animated)
- dce.close()
- }
-}
-```
-
->Note:
->
->- When using `startCapturing`, set the template to "ReadPassportAndId" to capture both Passports and ID cards.
->- If you only need to capture Passports, set the template to "ReadPassport" when calling `startCapturing`.
->- To capture only ID cards, set the template to "ReadId" during `startCapturing`.
-
-### Configure Camera Privacy
-
-Add Privacy - Camera Usage Description to the info.plist of your project to request camera permission. An easy way to do this is to access your project settings, go to Info and then add this Privacy property to the iOS target properties list.
-
-### Build and Run the Project
-
-1. Before deploying the project, select the device that you want to run your app on.
-2. Run the project, then your app will be installed on your device.
-
->Note: View the similar source code from MRZScanner Sample(Swift)
diff --git a/programming/maui/api-reference/capture-vision-router/auxiliary-classes/captured-result-receiver-v2.2.3000.md b/programming/maui/api-reference/capture-vision-router/auxiliary-classes/captured-result-receiver-v2.2.3000.md
deleted file mode 100644
index f6ddcb07..00000000
--- a/programming/maui/api-reference/capture-vision-router/auxiliary-classes/captured-result-receiver-v2.2.3000.md
+++ /dev/null
@@ -1,67 +0,0 @@
----
-layout: default-layout
-title: CapturedResultReceiver Interface - Dynamsoft Capture Vision MAUI Edition
-description: CapturedResultReceiver interface of DCV MAUI edition is designed as a standardized way for retrieving captured results.
-keywords: decoded barcodes, parsed results, captured results, CRR, result receiver, output
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# CapturedResultReceiver
-
-The `CapturedResultReceiver` interface is designed as a standardized way for retrieving captured results in the Dynamsoft Capture Vision architecture. By implementing the `CapturedResultReceiver`, you will receive the callback of the various types of captured results, such as original image, decoded barcode, recognized text line, detected quad, normalized image, or parsed data. The `CapturedResultReceiver` can add a receiver for any type of captured result or for a specific type of captured result, based on the method that is implemented.
-
-## Definition
-
-*Namespace:* Dynamsoft.CaptureVisionRouter.Maui
-
-*Assembly:* Dynamsoft.CaptureVisionRouter.Maui
-
-```csharp
-interface ICapturedResultReceiver
-```
-
-## Methods
-
-| Method | Description |
-| ------ | ----------- |
-| [`OnCapturedResultReceived`](#oncapturedresultreceived) | This callback method delivers a `CapturedResult`, which is an object containning all kinds of captured result items that are captured from the image. |
-| [`OnDecodedBarcodesReceived`](#ondecodedbarcodesreceived) | This callback method delivers a `DecodedBarcodesResult`, which is an object containning all `CRIT_BARCODE` typed captured result items that are captured from the image. |
-| [`OnParsedResultsReceived`](#onparsedresultsreceived) | This callback method delivers a `ParsedResult`, which is an object containning all `CRIT_PARSED_RESULT` typed captured result items that are captured from the image. |
-
-### OnCapturedResultReceived
-
-This callback method delivers a `CapturedResult`, which is an object containning all kinds of captured result items that are captured from the image. The callback is triggered each time when an image finishes its processing.
-
-```csharp
-void OnCapturedResultReceived(CapturedResult result);
-```
-
-**Parameters**
-
-`[in] result`: The captured result, an instance of [`CapturedResult`](captured-result.md).
-
-### OnDecodedBarcodesReceived
-
-This callback method delivers a `DecodedBarcodesResult`, which is an object containning all `CRIT_BARCODE` typed captured result items that are captured from the image. The callback is triggered each time when an image finishes its processing.
-
-```csharp
-void OnDecodedBarcodesReceived(DecodedBarcodesResult result);
-```
-
-**Parameters**
-
-`[in] result`: The decoded barcode result, an instance of `DecodedBarcodesResult`.
-
-### OnParsedResultsReceived
-
-This callback method delivers a `ParsedResult`, which is an object containning all `CRIT_PARSED_RESULT` typed captured result items that are captured from the image. The callback is triggered each time when an image finishes its processing.
-
-```csharp
-void OnParsedResultsReceived(ParsedResult result);
-```
-
-**Parameters**
-
-`[in] result`: The parsed result, an instance of [`ParsedResult`]({{site.dcp_maui_api}}parsed-result.html).
diff --git a/programming/maui/api-reference/capture-vision-router/auxiliary-classes/captured-result-v2.2.3000.md b/programming/maui/api-reference/capture-vision-router/auxiliary-classes/captured-result-v2.2.3000.md
deleted file mode 100644
index 6bbae108..00000000
--- a/programming/maui/api-reference/capture-vision-router/auxiliary-classes/captured-result-v2.2.3000.md
+++ /dev/null
@@ -1,87 +0,0 @@
----
-layout: default-layout
-title: CapturedResult Class - Dynamsoft Capture Vision MAUI Edition
-description: CapturedResult class of DCV MAUI edition represents the result of a capture operation on an image.
-keywords: decoded barcode, parsed result, error code, output, captured result
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# CapturedResult
-
-The `CapturedResult` class represents the result of a capture operation on an image. Internally, `CapturedResult` stores an array that contains multiple items, each of which may be a barcode, text line, detected quad, normalized image, original image, parsed item, etc.
-
-> You might also looking for:
->
-> - [DecodedBarcodesResult]({{ site.dbr_maui_api }}decoded-barcodes-result.html)
-> - [ParsedResults]({{ site.dcp_maui_api }}parsed-result.html)
-
-## Definition
-
-*Namespace:* Dynamsoft.CaptureVisionRouter.Maui
-
-*Assembly:* Dynamsoft.CaptureVisionRouter.Maui
-
-```csharp
-class CapturedResult
-```
-
-## Properties
-
-| Property | Description |
-| --------- | ----------- |
-| [`OriginalImageHashId`](#originalimagehashid) | The hash id of the original image. You can use this ID to get the original image via the `IntermediateResultManager` class. |
-| [`RotationTransformMatrix`](#rotationtransformmatrix) | The rotation transformation matrix of the original image relative to the rotated image. |
-| [`ErrorCode`](#errorcode) | The error code associated with the capture result. |
-| [`ErrorMessage`](#errormessage) | The error message associated with the capture result. |
-| [`DecodedBarcodesResult`](#decodedbarcodesresult) | An array of `BarcodeResultItem` objects, each representing a decoded barcode within the original image. |
-| [`ParsedResult`](#parsedresult) | An array of `ParsedResultItem` objects. |
-
-### OriginalImageHashId
-
-The hash id of the original image. You can use this ID to get the original image via the [`IntermediateResultManager`]({{ site.dcv_maui_api }}capture-vision-router/auxiliary-classes/intermediate-result-manager.html) class.
-
-```csharp
-string OriginalImageHashId { get;}
-```
-
-### RotationTransformMatrix
-
-The rotation transformation matrix of the original image relative to the rotated image.
-
-```csharp
-Matrix RotationTransformMatrix { get; }
-```
-
-### ErrorCode
-
-Error code associated with the capture result.
-
-```csharp
-int ErrorCode { get; }
-```
-
-### ErrorMessage
-
-Error string providing details about the error.
-
-```csharp
-string ErrorMessage { get; }
-```
-
-### DecodedBarcodesResult
-
-A [`DecodedBarcodesResult`]({{ site.dbr_maui_api }}decoded-barcodes-result.html) object that represents all decoded barcode within the original image.
-
-```csharp
-DecodedBarcodesResult DecodedBarcodesResult { get; }
-```
-
-### ParsedResult
-
-A [`ParsedResult`]({{ site.dcp_maui_api }}parsed-result.html) that represents all parsed result items within the original image.
-
-```csharp
-ParsedResult ParsedResult { get; }
-```
diff --git a/programming/maui/api-reference/capture-vision-router/auxiliary-classes/captured-result-v2.6.1001.md b/programming/maui/api-reference/capture-vision-router/auxiliary-classes/captured-result-v2.6.1001.md
deleted file mode 100644
index 41f6aa2a..00000000
--- a/programming/maui/api-reference/capture-vision-router/auxiliary-classes/captured-result-v2.6.1001.md
+++ /dev/null
@@ -1,114 +0,0 @@
----
-layout: default-layout
-title: CapturedResult Class - Dynamsoft Capture Vision MAUI Edition
-description: CapturedResult class of DCV MAUI edition represents the result of a capture operation on an image.
-keywords: decoded barcode, parsed result, error code, output, captured result
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# CapturedResult
-
-The `CapturedResult` class represents the result of a capture operation on an image. Internally, `CapturedResult` stores an array that contains multiple items, each of which may be a barcode, text line, detected quad, normalized image, original image, parsed item, etc.
-
-> You might also looking for:
->
-> - [DecodedBarcodesResult]({{ site.dbr_maui_api }}decoded-barcodes-result.html)
-> - [ParsedResults]({{ site.dcp_maui_api }}parsed-result.html)
-
-## Definition
-
-*Namespace:* Dynamsoft.CaptureVisionRouter.Maui
-
-*Assembly:* Dynamsoft.CaptureVisionRouter.Maui
-
-```csharp
-class CapturedResult
-```
-
-## Properties
-
-| Property | Description |
-| --------- | ----------- |
-| [`OriginalImageHashId`](#originalimagehashid) | The hash id of the original image. You can use this ID to get the original image via the `IntermediateResultManager` class. |
-| [`RotationTransformMatrix`](#rotationtransformmatrix) | The rotation transformation matrix of the original image relative to the rotated image. |
-| [`ErrorCode`](#errorcode) | The error code associated with the capture result. |
-| [`ErrorMessage`](#errormessage) | The error message associated with the capture result. |
-| [`DecodedBarcodesResult`](#decodedbarcodesresult) | An array of `BarcodeResultItem` objects, each representing a decoded barcode within the original image. |
-| [`ParsedResult`](#parsedresult) | An array of `ParsedResultItem` objects. |
-| [`RecognizedTextLinesResult`](#recognizedtextlinesresult) | An array of `RecognizedTextLinesResultItem` objects, each representing a recognized text line within the original image. |
-| [`DetectedQuadsResult`](#detectedquadsresult) | An array of `DetectedQuadsResultItem` objects, each representing a detected quad within the original image. |
-| [`NormalizedImagesResult`](#normalizedimagesresult) | An array of `NormalizedImagesResultItem` objects, each representing a normalized image within the original image. |
-
-### OriginalImageHashId
-
-The hash id of the original image. You can use this ID to get the original image via the [`IntermediateResultManager`]({{ site.dcv_maui_api }}capture-vision-router/auxiliary-classes/intermediate-result-manager.html) class.
-
-```csharp
-string OriginalImageHashId { get;}
-```
-
-### RotationTransformMatrix
-
-The rotation transformation matrix of the original image relative to the rotated image.
-
-```csharp
-Matrix RotationTransformMatrix { get; }
-```
-
-### ErrorCode
-
-Error code associated with the capture result.
-
-```csharp
-int ErrorCode { get; }
-```
-
-### ErrorMessage
-
-Error string providing details about the error.
-
-```csharp
-string ErrorMessage { get; }
-```
-
-### DecodedBarcodesResult
-
-A [`DecodedBarcodesResult`]({{ site.dbr_maui_api }}decoded-barcodes-result.html) object that represents all decoded barcode within the original image.
-
-```csharp
-DecodedBarcodesResult DecodedBarcodesResult { get; }
-```
-
-### ParsedResult
-
-A [`ParsedResult`]({{ site.dcp_maui_api }}parsed-result.html) that represents all parsed result items within the original image.
-
-```csharp
-ParsedResult ParsedResult { get; }
-```
-
-### RecognizedTextLinesResult
-
-A [`RecognizedTextLinesResult`]({{ site.dtr_maui_api }}recognized-text-lines-result.html) object that represents all recognized text lines within the original image.
-
-```csharp
-RecognizedTextLinesResult RecognizedTextLinesResult { get; }
-```
-
-### DetectedQuadsResult
-
-A [`DetectedQuadsResult`]({{ site.dqr_maui_api }}detected-quads-result.html) object that represents all detected quads within the original image.
-
-```csharp
-DetectedQuadsResult DetectedQuadsResult { get; }
-```
-
-### NormalizedImagesResult
-
-A [`NormalizedImagesResult`]({{ site.dnr_maui_api }}normalized-images-result.html) object that represents all normalized images within the original image.
-
-```csharp
-NormalizedImagesResult NormalizedImagesResult { get; }
-```
diff --git a/programming/maui/api-reference/capture-vision-router/auxiliary-classes/simplified-capture-vision-settings-v2.2.3000.md b/programming/maui/api-reference/capture-vision-router/auxiliary-classes/simplified-capture-vision-settings-v2.2.3000.md
deleted file mode 100644
index 75a4fc40..00000000
--- a/programming/maui/api-reference/capture-vision-router/auxiliary-classes/simplified-capture-vision-settings-v2.2.3000.md
+++ /dev/null
@@ -1,91 +0,0 @@
----
-layout: default-layout
-title: SimplifiedCaptureVisionSettings Class - Dynamsoft Capture Vision MAUI Edition
-description: SimplifiedCaptureVisionSettings class of DCV MAUI edition provides settings for capturing and recognizing images with the CaptureVisionRouter class.
-keywords: roi, result item type, min interval, timeout
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# SimplifiedCaptureVisionSettings
-
-The `SimplifiedCaptureVisionSettings` class contains settings for capturing and recognizing images with the `CaptureVisionRouter` class.
-
-## Definition
-
-*Namespace:* Dynamsoft.CaptureVisionRouter.Maui
-
-*Assembly:* Dynamsoft.CaptureVisionRouter.Maui
-
-```csharp
-class SimplifiedCaptureVisionSettings
-```
-
-## Properties
-
-| Property | Type | Description |
-| ---------- | ---- | ----------- |
-| [`CapturedResultItemTypes`](#capturedresultitemtypes) | *EnumCapturedResultItemType* | Specifies the type(s) of CapturedItem(s) that will be captured. |
-| [`Roi`](#roi) | *[Quadrilateral]({{ site.dcv_maui_api }}core/quadrilateral.html)* | Specifies the region of interest (ROI) where the image capture and recognition will take place. |
-| [`RoiMeasuredInPercentage`](#roimeasuredinpercentage) | *bool* | Specifies whether the ROI is measured in pixels or as a percentage of the image size. |
-| [`MaxParallelTasks`](#maxparalleltasks) | *int* | Specifies the maximum number of parallel tasks that can be used for image capture and recognition. |
-| [`MinImageCaptureInterval`](#minimagecaptureinterval) | *int* | Set the minimum capture interval. It is measured in millisecond. |
-| [`Timeout`](#timeout) | *int* | Specifies the maximum time (in milliseconds) allowed for image capture and recognition. |
-| [`BarcodeSettings`](#barcodesettings) | *[SimplifiedBarcodeReaderSettings]({{ site.dbr_maui_api }}simplified-barcode-reader-settings.html)* | Specifies the settings for `DynamsoftBarcodeReader` tasks. |
-
-### CapturedResultItemTypes
-
-Specifies the type(s) of CapturedItem(s) that will be captured.
-
-```csharp
-EnumCapturedResultItemType CapturedResultItemTypes { get; set; }
-```
-
-### Roi
-
-Specifies the region of interest (ROI) where the image capture and recognition will take place.
-
-```csharp
-Quadrilateral Roi { get; set; }
-```
-
-### RoiMeasuredInPercentage
-
-Specifies whether the ROI is measured in pixels or as a percentage of the image size.
-
-```csharp
-bool RoiMeasuredInPercentage { get; set; }
-```
-
-### MaxParallelTasks
-
-Specifies the maximum number of parallel tasks that can be used for image capture and recognition.
-
-```csharp
-int MaxParallelTasks { get; set; }
-```
-
-### MinImageCaptureInterval
-
-Set the minimum capture interval. It is measured in millisecond.
-
-```csharp
-int MinImageCaptureInterval { get; set; }
-```
-
-### Timeout
-
-Specifies the maximum time (in milliseconds) allowed for image capture and recognition.
-
-```csharp
-int Timeout { get; set; }
-```
-
-### BarcodeSettings
-
-Specifies the settings for `DynamsoftBarcodeReader` tasks with a [`SimplifiedBarcodeReaderSettings`]({{ site.dbr_maui_api }}simplified-barcode-reader-settings.html) object.
-
-```csharp
-SimplifiedBarcodeReaderSettings BarcodeSettings { get; set; }
-```
diff --git a/programming/maui/api-reference/capture-vision-router/auxiliary-classes/simplified-capture-vision-settings-v2.6.1001.md b/programming/maui/api-reference/capture-vision-router/auxiliary-classes/simplified-capture-vision-settings-v2.6.1001.md
deleted file mode 100644
index f38e2b63..00000000
--- a/programming/maui/api-reference/capture-vision-router/auxiliary-classes/simplified-capture-vision-settings-v2.6.1001.md
+++ /dev/null
@@ -1,109 +0,0 @@
----
-layout: default-layout
-title: SimplifiedCaptureVisionSettings Class - Dynamsoft Capture Vision MAUI Edition
-description: SimplifiedCaptureVisionSettings class of DCV MAUI edition provides settings for capturing and recognizing images with the CaptureVisionRouter class.
-keywords: roi, result item type, min interval, timeout
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# SimplifiedCaptureVisionSettings
-
-The `SimplifiedCaptureVisionSettings` class contains settings for capturing and recognizing images with the `CaptureVisionRouter` class.
-
-## Definition
-
-*Namespace:* Dynamsoft.CaptureVisionRouter.Maui
-
-*Assembly:* Dynamsoft.CaptureVisionRouter.Maui
-
-```csharp
-class SimplifiedCaptureVisionSettings
-```
-
-## Properties
-
-| Property | Type | Description |
-| ---------- | ---- | ----------- |
-| [`CapturedResultItemTypes`](#capturedresultitemtypes) | *EnumCapturedResultItemType* | Specifies the type(s) of CapturedItem(s) that will be captured. |
-| [`Roi`](#roi) | *[Quadrilateral]({{ site.dcv_maui_api }}core/quadrilateral.html)* | Specifies the region of interest (ROI) where the image capture and recognition will take place. |
-| [`RoiMeasuredInPercentage`](#roimeasuredinpercentage) | *bool* | Specifies whether the ROI is measured in pixels or as a percentage of the image size. |
-| [`MaxParallelTasks`](#maxparalleltasks) | *int* | Specifies the maximum number of parallel tasks that can be used for image capture and recognition. |
-| [`MinImageCaptureInterval`](#minimagecaptureinterval) | *int* | Set the minimum capture interval. It is measured in millisecond. |
-| [`Timeout`](#timeout) | *int* | Specifies the maximum time (in milliseconds) allowed for image capture and recognition. |
-| [`BarcodeSettings`](#barcodesettings) | *[SimplifiedBarcodeReaderSettings]({{ site.dbr_maui_api }}simplified-barcode-reader-settings.html)* | Specifies the settings for `DynamsoftBarcodeReader` tasks. |
-| [`LabelSettings`](#labelsettings) | *[SimplifiedLabelRecognizerSettings]({{ site.dlr_maui_api }}simplified-label-recognizer-settings.html)* | Specifies the settings for `DynamsoftLabelRecognizer` tasks. |
-| [`DocumentSettings`](#documentsettings) | *[SimplifiedDocumentNormalizerSettings]({{ site.ddn_maui_api }}simplified-document-normalizer-settings.html)* | Specifies the settings for `DynamsoftDocumentNormalizer` tasks. |
-
-### CapturedResultItemTypes
-
-Specifies the type(s) of CapturedItem(s) that will be captured.
-
-```csharp
-EnumCapturedResultItemType CapturedResultItemTypes { get; set; }
-```
-
-### Roi
-
-Specifies the region of interest (ROI) where the image capture and recognition will take place.
-
-```csharp
-Quadrilateral Roi { get; set; }
-```
-
-### RoiMeasuredInPercentage
-
-Specifies whether the ROI is measured in pixels or as a percentage of the image size.
-
-```csharp
-bool RoiMeasuredInPercentage { get; set; }
-```
-
-### MaxParallelTasks
-
-Specifies the maximum number of parallel tasks that can be used for image capture and recognition.
-
-```csharp
-int MaxParallelTasks { get; set; }
-```
-
-### MinImageCaptureInterval
-
-Set the minimum capture interval. It is measured in millisecond.
-
-```csharp
-int MinImageCaptureInterval { get; set; }
-```
-
-### Timeout
-
-Specifies the maximum time (in milliseconds) allowed for image capture and recognition.
-
-```csharp
-int Timeout { get; set; }
-```
-
-### BarcodeSettings
-
-Specifies the settings for `DynamsoftBarcodeReader` tasks with a [`SimplifiedBarcodeReaderSettings`]({{ site.dbr_maui_api }}simplified-barcode-reader-settings.html) object.
-
-```csharp
-SimplifiedBarcodeReaderSettings BarcodeSettings { get; set; }
-```
-
-### LabelSettings
-
-Specifies the settings for `DynamsoftLabelRecognizer` tasks with a [`SimplifiedLabelRecognizerSettings`]({{ site.dlr_maui_api }}simplified-label-recognizer-settings.html) object.
-
-```csharp
-SimplifiedLabelRecognizerSettings LabelSettings { get; set; }
-```
-
-### DocumentSettings
-
-Specifies the settings for `DynamsoftDocumentNormalizer` tasks with a [`SimplifiedDocumentNormalizerSettings`]({{ site.ddn_maui_api }}simplified-document-normalizer-settings.html) object.
-
-```csharp
-SimplifiedDocumentNormalizerSettings DocumentSettings{ get; set; }
-```
diff --git a/programming/maui/api-reference/capture-vision-router/multiple-file-processing-v2.2.3000.md b/programming/maui/api-reference/capture-vision-router/multiple-file-processing-v2.2.3000.md
deleted file mode 100644
index 0b86b928..00000000
--- a/programming/maui/api-reference/capture-vision-router/multiple-file-processing-v2.2.3000.md
+++ /dev/null
@@ -1,128 +0,0 @@
----
-layout: default-layout
-title: Multiple Images/Pages Processing - Dynamsoft Capture Vision MAUI Edition
-description: The APIs of the CaptureVisionRouter MAUI edition for processing multiple Images/Pages.
-keywords: Set input, start capturing, result receiver, CRR
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# Processing multiple Images/Pages
-
-| Method | Description |
-| ------ | ----------- |
-| [`SetInput`](#setinput) | Sets up an image source to provide images for continuous processing. |
-| [`GetInput`](#getinput) | Returns the image source object. |
-| [`AddResultReceiver`](#addresultreceiver) | Adds a `ICapturedResultReceiver` object as the receiver of captured results. |
-| [`RemoveResultReceiver`](#removeresultreceiver) | Removes the specified CapturedResultReceiver object. |
-| [`StartCapturing`](#startcapturing) | Initiates a capturing process based on a specified template. This process is repeated for each image fetched from the source. |
-| [`StopCapturing`](#stopcapturing) | Stops the capturing process. |
-| [`AddResultFilter`](#addresultfilter) | Adds a `CaptureResultFilter` object to filter non-essential results. |
-| [`RemoveResultFilter`](#removeresultfilter) | Removes the specified `CaptureResultFilter` object. |
-
-## SetInput
-
-Sets up an image source to provide images for continuous processing.
-
-```csharp
-void SetInput(ImageSourceAdapter adapter);
-```
-
-**Parameters**
-
-`[in] adapter`: An object of [`ImageSourceAdapter`]({{ site.dcv_maui_api }}core/image-source-adapter.html).
-
-> Note: You can use an object of [`CameraEnhancer`]({{ site.dce_maui_api }}camera-enhancer.html) as the `ImageSourceAdapter` object.
-
-**Possible Errors**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-## GetInput
-
-Returns the image source object.
-
-```csharp
-ImageSourceAdapter GetInput();
-```
-
-**Return Value**
-
-The `ImageSourceAdapter` object that is bind with this `CaptureVisionRouter` object.
-
-## AddResultReceiver
-
-Adds a [`ICapturedResultReceiver`]({{ site.dcv_maui_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html) object as the receiver of captured results.
-
-```csharp
-void AddResultReceiver(ICapturedResultReceiver receiver);
-```
-
-**Parameters**
-
-`[in] receiver`: The receiver object, of type [`ICapturedResultReceiver`]({{ site.dcv_maui_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html).
-
-## RemoveResultReceiver
-
-Removes the specified [`ICapturedResultReceiver`]({{ site.dcv_maui_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html) object.
-
-```csharp
-void RemoveResultReceiver(ICapturedResultReceiver receiver);
-```
-
-**Parameters**
-
-`[in] receiver`: The receiver object, of type [`ICapturedResultReceiver`]({{ site.dcv_maui_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html).
-
-## StartCapturing
-
-Initiates a capturing process based on a specified template. This process is repeated for each image fetched from the source.
-
-```csharp
-void StartCapturing(string templateName, ICompletionListener completionHandler);
-```
-
-**Parameters**
-
-`[in] templateName`: Specifies a "CaptureVisionTemplate" to use. The following value are available for this parameter:
-
-- One of the [`EnumPresetTemplate`]({{ site.dcv_maui_api }}capture-vision-router/auxiliary-classes/preset-template.html) member. This is available only if you have never upload a new template via `InitSettings` or `InitSettingsFromFile`.
-- A string that represents one of the template name that you have uploaded via `InitSettings` or `InitSettingsFromFile`.
-- "" (empty string) to use the default template. The first template will be used if you have uploaded a template file via `InitSettingsFromFile` or `InitSettings`.
-
-`[in] completionHandler`: A [`CompletionListener`]({{ site.dcv_maui_api }}core/completion-listener.html) the system calls after it finishes the `StartCapturing`.
-
-## StopCapturing
-
-Stops the capturing process.
-
-```csharp
-void StopCapturing();
-```
-
-## AddResultFilter
-
-Adds a `CapturedResultFilter` object to filter non-essential results. Currnetly, [`MultiFrameCrossFilter`]({{ site.dcv_maui_api }}utility/multi-frame-result-cross-filter.html) is the only supported implementation of the `CapturedResultFilter`.
-
-```csharp
-void AddResultFilter(ICapturedResultFilter filter);
-```
-
-**Parameters**
-
-`[in] filter`: The filter object, of type [`CapturedResultFilter`]({{ site.dcv_maui_api }}capture-vision-router/auxiliary-classes/captured-result-filter.html). Currnetly, is must be a [`MultiFrameCrossFilter`]({{ site.dcv_maui_api }}utility/multi-frame-result-cross-filter.html) object.
-
-## RemoveResultFilter
-
-Removes the specified `CapturedResultFilter` object.
-
-```csharp
-void RemoveResultFilter(ICapturedResultFilter filter);
-```
-
-**Parameters**
-
-`[in] filter`: The filter object, of type [`CapturedResultFilter`]({{ site.dcv_maui_api }}capture-vision-router/auxiliary-classes/captured-result-filter.html).
diff --git a/programming/maui/api-reference/capture-vision-router/settings-v2.2.3000.md b/programming/maui/api-reference/capture-vision-router/settings-v2.2.3000.md
deleted file mode 100644
index 88ce6a12..00000000
--- a/programming/maui/api-reference/capture-vision-router/settings-v2.2.3000.md
+++ /dev/null
@@ -1,177 +0,0 @@
----
-layout: default-layout
-title: Setting Configuration APIs - Dynamsoft Capture Vision MAUI Edition
-description: The APIs of the CaptureVisionRouter MAUI edition for configuring settings - Dynamsoft Capture Vision MAUI Edition
-keywords: Init settings, JSON template, Capture Vision Template, reset, simplified settings
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# Configure Settings
-
-| Method | Description |
-| ------ | ----------- |
-| [`InitSettings`](#initsettings) | Configures runtime settings using a provided JSON string, which contains settings for one or more `CaptureVisionTemplates`. |
-| [`InitSettingsFromFile`](#initsettingsfromfile) | Configures runtime settings using a provided JSON file, which contains settings for one or more `CaptureVisionTemplates`. |
-| [`GetSimplifiedSettings`](#getsimplifiedsettings) | Retrieves a simplified version of the Capture Vision settings for a specific template. |
-| [`UpdateSettings`](#updatesettings) | Updates the specified `CaptureVisionTemplate` with an updated `SimplifiedCaptureVisionSettings` object. |
-| [`ResetSettings`](#resetsettings) | Restores all settings to their original default values. |
-| [`OutputSettings`](#outputsettings) | Returns an object that contains settings for the specified `CaptureVisionTemplate`. |
-| [`OutputSettingsToFile`](#outputsettingstofile) | Generates a JSON file download containing the settings for the specified `CaptureVisionTemplate`. |
-
-## InitSettings
-
-Configures runtime settings using a provided JSON string, which contains settings for one or more `CaptureVisionTemplates`.
-
-```csharp
-void InitSettings(string content);
-```
-
-**Parameters**
-
-`[in] content`: A JSON string that contains Capture Vision settings.
-
-**Possible Errors**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_JSON_PARSE_FAILED | -10030 | Failed to parse the JSON data. |
-| EC_JSON_TYPE_INVALID | -10031 | One or more parameters are allocated with wrong data type. |
-| EC_JSON_KEY_INVALID | -10032 | There exists invalid key in your JSON data. |
-| EC_JSON_VALUE_INVALID | -10033 | There exists invalid parameter value in your JSON data. |
-| EC_JSON_NAME_KEY_MISSING | -10034 | One or more `name` parameters are missing in your JSON data. Each section of the JSON data requires a unique `name` parameter. |
-| EC_JSON_NAME_VALUE_DUPLICATED | -10035 | There exists duplicated `name` parameters in your JSON data. The `name` parameter should be unique. |
-| EC_JSON_NAME_REFERENCE_INVALID | -10037 | You have referenced an invalid `name` value in your JSON data. |
-| EC_PARAMETER_VALUE_INVALID | -10038 | There exists invalid parameter value in your JSON data. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-## InitSettingsFromFile
-
-Configures runtime settings using a provided JSON file, which contains settings for one or more `CaptureVisionTemplates`.
-
-```csharp
-void InitSettingsFromFile(string filePath);
-```
-
-**Parameters**
-
-`[in] file`: A JSON file that contains Capture Vision settings.
-
-**Possible Errors**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_FILE_NOT_FOUND | -10005 | The file is not found. |
-| EC_JSON_PARSE_FAILED | -10030 | Failed to parse the JSON data. |
-| EC_JSON_TYPE_INVALID | -10031 | One or more parameters are allocated with wrong data type. |
-| EC_JSON_KEY_INVALID | -10032 | There exists invalid key in your JSON data. |
-| EC_JSON_VALUE_INVALID | -10033 | There exists invalid parameter value in your JSON data. |
-| EC_JSON_NAME_KEY_MISSING | -10034 | One or more `name` parameters are missing in your JSON data. Each section of the JSON data requires a unique `name` parameter. |
-| EC_JSON_NAME_VALUE_DUPLICATED | -10035 | There exists duplicated `name` parameters in your JSON data. The `name` parameter should be unique. |
-| EC_JSON_NAME_REFERENCE_INVALID | -10037 | You have referenced an invalid `name` value in your JSON data. |
-| EC_PARAMETER_VALUE_INVALID | -10038 | There exists invalid parameter value in your JSON data. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-## GetSimplifiedSettings
-
-Retrieves a simplified version of the Capture Vision settings for a specific template.
-
-```csharp
-SimplifiedCaptureVisionSettings GetSimplifiedSettings(string templateName);
-```
-
-**Parameters**
-
-`templateName`: Specify a template with a templateName for the data capturing.
-
-**Return Value**
-
-An object of [`SimplifiedCaptureVisionSettings`](./auxiliary-classes/simplified-capture-vision-settings.md).
-
-**Possible Errors**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_TEMPLATE_NAME_INVALID | -10036 | The target template name is invalid. |
-| EC_CONVERT_COMPLEX_TEMPLATE_ERROR | -10061 | The template you specified is a complex template which can not be output as a `SimplifiedCaptureVisionSettings` object. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-## UpdateSettings
-
-Updates the specified `CaptureVisionTemplate` with an updated [`SimplifiedCaptureVisionSettings`](./auxiliary-classes/simplified-capture-vision-settings.md) object.
-
-```csharp
-void UpdateSettings(string templateName, SimplifiedCaptureVisionSettings settings);
-```
-
-**Parameters**
-
-`[in] templateName`: Specify the name of the template that you want to update.
-
-`[in] settings`: An object of SimplifiedCaptureVisionSettings.
-
-**Possible Errors**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_TEMPLATE_NAME_INVALID | -10036 | The target template name is invalid. |
-| EC_PARAMETER_VALUE_INVALID | -10038 | There exists invalid parameter value in your `SimplifiedCaptureVisionSettings`. |
-| EC_CONVERT_COMPLEX_TEMPLATE_ERROR | -10061 | The template you specified is a complex template which can not be updated via a `SimplifiedCaptureVisionSettings` object. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-## ResetSettings
-
-Restores all settings to their original default values.
-
-```csharp
-void ResetSettings();
-```
-
-**Possible Errors**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-## OutputSettings
-
-Returns an object that contains settings for the specified `CaptureVisionTemplate`.
-
-```csharp
-string OutputSettings(string templateName);
-```
-
-`[in] templateName`: The name of the template that you want to output.
-
-**Return Value**
-
-The Capture Vision settings in a JSON string.
-
-**Possible Errors**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_TEMPLATE_NAME_INVALID | -10036 | The target template name is invalid. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-
-## OutputSettingsToFile
-
-Generates a JSON file download containing the settings for the specified `CaptureVisionTemplate`.
-
-```csharp
-void OutputSettingsToFile(string templateName, string filePath);
-```
-
-**Parameters**
-
-`[in] templateName`: The name of the template that you want to output.
-
-`[in] file`: The file path and name that you want to save the template.
-
-**Possible Errors**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_FILE_SAVE_FAILED | -10058 | The file path is unavailable or the file can't be created for any other reasons. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
diff --git a/programming/maui/api-reference/capture-vision-router/single-file-processing-v2.2.3000.md b/programming/maui/api-reference/capture-vision-router/single-file-processing-v2.2.3000.md
deleted file mode 100644
index bb7487bb..00000000
--- a/programming/maui/api-reference/capture-vision-router/single-file-processing-v2.2.3000.md
+++ /dev/null
@@ -1,52 +0,0 @@
----
-layout: default-layout
-title: Single Image Processing - Dynamsoft Capture Vision MAUI Edition
-description: The APIs of the CaptureVisionRouter MAUI edition for processing a single image - Dynamsoft Capture Vision MAUI Edition
-keywords: capture, single, CapturedResult
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# Processing a Single Image
-
-This page introduces the `capture` APIs of the `CaptureVisionRouter` that designed for processing a single image (or single page file).
-
-| Method | Description |
-| ------ | ----------- |
-| [`Capture`](#capture) | Processes a single image or a file containing a single image to derive important information with the file path. |
-
-## Capture
-
-Processes a single image or a file containing a single image to derive important information with the file path.
-
-```csharp
-CapturedResult Capture(string filePath, string templateName);
-```
-
-**Parameters**
-
-`[in] filePath`: The file path and name that you want to capture data from.
-
-`[in] templateName`: Specifies a "CaptureVisionTemplate" to use. The following value are available for this parameter:
-
-- One of the [`EnumPresetTemplate`]({{ site.dcv_maui_api }}capture-vision-router/auxiliary-classes/preset-template.html) member. This is available only if you have never upload a new template via [`InitSettings`](settings.md#initsettings) or [`InitSettingsFromFile`](settings.md#initsettingsfromfile).
-- A string that represents one of the template name that you have uploaded via `InitSettings` or `InitSettingsFromFile`.
-- "" (empty string) to use the default template. The first template will be used if you have uploaded a template file via `InitSettingsFromFile` or `InitSettings`.
-
-**Return Value**
-
-A [`CapturedResult`]({{ site.dcv_maui_api }}capture-vision-router/auxiliary-classes/captured-result.html) object which contains the derived information from the image processed.
-
-If an error occurs when processing the image, the `CapturedResult` object will include error code and error message that describes the reason of the error.
-
-**Possible Errors**
-
-| Error Code | Value | Description |
-| :--------- | :---- | :---------- |
-| EC_FILE_NOT_FOUND | -10005 | The file is not found. |
-| EC_FILE_TYPE_NOT_SUPPORTED | -10006 | The file type is not supported. |
-| EC_TIMEOUT | -10026 | The processing timeout. If not all the tasks are timeout, you will still receive the results of the processed tasks. |
-| EC_TEMPLATE_NAME_INVALID | -10036 | The target template name is invalid. |
-| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-| EC_MULTI_PAGES_NOT_SUPPORTED | -10066 | The api does not support multi-page files. Please use FileFetcher instead. |
diff --git a/programming/maui/api-reference/core/enum/captured-result-item-type-v2.6.1001.md b/programming/maui/api-reference/core/enum/captured-result-item-type-v2.6.1001.md
deleted file mode 100644
index 108da277..00000000
--- a/programming/maui/api-reference/core/enum/captured-result-item-type-v2.6.1001.md
+++ /dev/null
@@ -1,38 +0,0 @@
----
-layout: default-layout
-title: EnumCapturedResultItemType - Dynamsoft Vision Router MAUI Edition
-description: The enumeration CapturedResultItemType of Dynamsoft Vision Router describes the type of CapturedResultItem.
-keywords: capture result item type, multi-frame cross filter
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
-breadcrumbText: CapturedResultItemType
----
-
-# Enumeration CapturedResultItemType
-
-`CapturedResultItemType` describes the camera position.
-
-## Definition
-
-*Namespace:* Dynamsoft.Core.Maui
-
-*Assembly:* Dynamsoft.Core.Maui
-
-```csharp
-public enum EnumCapturedResultItemType
-{
- /** The type of the CapturedResultItem is "original image". */
- CRIT_ORIGINAL_IMAGE = 1 << 0,
- /** The type of the CapturedResultItem is "barcode". */
- CRIT_BARCODE = 1 << 1,
- /** The type of the CapturedResultItem is "text line". */
- CRIT_TEXT_LINE = 1 << 2,
- /** The type of the CapturedResultItem is "detected quad". */
- CRIT_DETECTED_QUAD = 1 << 3,
- /** The type of the CapturedResultItem is "normalized image". */
- CRIT_NORMALIZED_IMAGE = 1 << 4,
- /** The type of the CapturedResultItem is "parsed result". */
- CRIT_PARSED_RESULT = 1 << 5
-}
-```
diff --git a/programming/maui/api-reference/core/enum/grayscale-enhancement-mode-v2.6.1001.md b/programming/maui/api-reference/core/enum/grayscale-enhancement-mode-v2.6.1001.md
deleted file mode 100644
index 17e32806..00000000
--- a/programming/maui/api-reference/core/enum/grayscale-enhancement-mode-v2.6.1001.md
+++ /dev/null
@@ -1,38 +0,0 @@
----
-layout: default-layout
-title: EnumGrayscaleEnhancementMode - Dynamsoft Vision Router MAUI Edition
-description: The enumeration GrayscaleEnhancementMode of Dynamsoft Vision Router specifies the method employed to enhance images in grayscale.
-keywords: capture result item type, multi-frame cross filter
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
-breadcrumbText: GrayscaleEnhancementMode
----
-
-# Enumeration GrayscaleEnhancementMode
-
-`GrayscaleEnhancementMode` specifies the method employed to enhance images in grayscale.
-
-## Definition
-
-*Namespace:* Dynamsoft.Core.Maui
-
-*Assembly:* Dynamsoft.Core.Maui
-
-```csharp
-public enum EnumGrayscaleEnhancementMode
-{
- /**Skips grayscale enhancement. */
- GEM_SKIP = 0,
- /**Not supported yet. */
- GEM_AUTO = 1 << 0,
- /**Takes the unpreprocessed image for following operations. */
- GEM_GENERAL = 1 << 1,
- /**Preprocesses the image using the gray equalization algorithm. Check @ref IPM for available argument settings. */
- GEM_GRAY_EQUALIZE = 1 << 2,
- /**Preprocesses the image using the gray smoothing algorithm. Check @ref IPM for available argument settings. */
- GEM_GRAY_SMOOTH = 1 << 3,
- /**Preprocesses the image using the sharpening and smoothing algorithm. Check @ref IPM for available argument settings. */
- GEM_SHARPEN_SMOOTH = 1 << 4
-}
-```
diff --git a/programming/maui/api-reference/core/enum/grayscale-transformation-mode-v2.6.1001.md b/programming/maui/api-reference/core/enum/grayscale-transformation-mode-v2.6.1001.md
deleted file mode 100644
index a3ef1893..00000000
--- a/programming/maui/api-reference/core/enum/grayscale-transformation-mode-v2.6.1001.md
+++ /dev/null
@@ -1,34 +0,0 @@
----
-layout: default-layout
-title: EnumGrayscaleTransformationMode - Dynamsoft Vision Router MAUI Edition
-description: The enumeration GrayscaleTransformationMode of Dynamsoft Vision Router specifies the method employed to transform images in grayscale.
-keywords: capture result item type, multi-frame cross filter
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
-breadcrumbText: GrayscaleTransformationMode
----
-
-# Enumeration GrayscaleTransformationMode
-
-`GrayscaleTransformationMode` specifies the method employed to transform images in grayscale.
-
-## Definition
-
-*Namespace:* Dynamsoft.Core.Maui
-
-*Assembly:* Dynamsoft.Core.Maui
-
-```csharp
-public enum EnumGrayscaleTransformationMode
-{
- /** Skips grayscale transformation. */
- GTM_SKIP = 0,
- /** Transforms to the inverted grayscale for further reference. This value is recommended for light on dark images. */
- GTM_INVERTED = 1 << 0,
- /** Keeps the original grayscale for further reference. This value is recommended for dark on light images. */
- GTM_ORIGINAL = 1 << 1,
- /**Lets the library choose an algorithm automatically for grayscale transformation. */
- GTM_AUTO = 1 << 2
-}
-```
diff --git a/programming/maui/api-reference/index-v2.2.3000.md b/programming/maui/api-reference/index-v2.2.3000.md
deleted file mode 100644
index 65903e83..00000000
--- a/programming/maui/api-reference/index-v2.2.3000.md
+++ /dev/null
@@ -1,35 +0,0 @@
----
-layout: default-layout
-title: DCV MAUI API Reference - Main Page
-description: This is the main page of DCV MAUI SDK API Reference.
-keywords: BarcodeReader, api reference, MAUI
----
-
-# DCV MAUI Main APIs
-
-## Capture Vision Router
-
-The main class [`CaptureVisionRouter`]({{ site.dcv_maui_api }}capture-vision-router/capture-vision-router.html) acts as the SDK entry point and provides the following essential APIs:
-
-- [Set input]({{ site.dcv_maui_api }}capture-vision-router/multiple-file-processing.html#setinput)
-- [Config barcode reader settings]({{ site.dcv_maui_api }}capture-vision-router/settings.html)
-- [Add result receiver]({{ site.dcv_maui_api }}capture-vision-router/multiple-file-processing.html#addresultreceiver)
-- [Start video stream barcode processing]({{ site.dcv_maui_api }}capture-vision-router/multiple-file-processing.html#startcapturing)
-
-## Image Source Adapter
-
-The [`ImageSourceAdapter`]({{ site.dcv_maui_api }}core/image-source-adapter.html) class is an abstract class representing an adapter for image sources, providing a framework for fetching, buffering, and managing images from various sources. It serves as the input for the [`CaptureVisionRouter`]({{ site.dcv_maui_api }}capture-vision-router/capture-vision-router.html). You can either use the typical implementations of [`ImageSourceAdapter`]({{ site.dcv_maui_api }}core/image-source-adapter.html) or implement your own.
-
-Class [`CameraEnhancer`]({{ site.dce_maui_api }}camera-enhancer.html) is one of the typical implementations of [`ImageSourceAdapter`]({{ site.dcv_maui_api }}core/image-source-adapter.html). It is a class that not only implements the video frame obtaining APIs but also enable you to improve the video quality by adjusting the camera settings.
-
-## Captured Result Receiver
-
-To receive the results of video streaming barcode decoding, you need to implement the [`CapturedResultReceiver`]({{ site.dcv_maui_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html) with the callback method [`OnDecodedBarcodesReceived`]({{ site.dcv_maui_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html#ondecodedbarcodesreceived). The result you received in the callback method is a [`DecodedBarcodesResult`](decoded-barcodes-result.md) object, which contains all the decoded barcodes from the processed video frame.
-
-- [`OnDecodedBarcodesReceived`]({{ site.dcv_maui_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html#ondecodedbarcodesreceived): The callback method for you to receive the barcode decoding results with a [`DecodedBarcodesResult`](decoded-barcodes-result.md) object.
-- [`DecodedBarcodesResult`](decoded-barcodes-result.md): An object that contains all the [`BarcodeResultItem`](barcode-result-item.md) that obtained from a video frame.
-- [`BarcodeResultItem`](barcode-result-item.md): The basic item that represents a single barcode with the decoded text and other information.
-
-## Camera View
-
-[`CameraView`]({{ site.dce_maui_api }}camera-view.html) is a view class that design for visualizing the real time video streaming and the barcode decoding result. If the [`CameraEnhancer`]({{ site.dce_maui_api }}camera-enhancer.html) is set as the input of your CVR, the decoded barcodes will be highlighted automatically on the [`CameraView`]({{ site.dce_maui_api }}camera-view.html).
diff --git a/programming/maui/api-reference/license/license-manager-v2.2.3000.md b/programming/maui/api-reference/license/license-manager-v2.2.3000.md
deleted file mode 100644
index 3a73e563..00000000
--- a/programming/maui/api-reference/license/license-manager-v2.2.3000.md
+++ /dev/null
@@ -1,69 +0,0 @@
----
-layout: default-layout
-title: LicenseManager - Dynamsoft Capture Vision MAUI API Reference
-description: The class LicenseManager of Dynamsoft Core Module provides a set of APIs to manage SDK licensing.
-keywords: license manager
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# LicenseManager
-
-The `LicenseManager` class provides a set of APIs to manage SDK licensing.
-
-## Definition
-
-*Namespace:* Dynamsoft.License.Maui
-
-*Assembly:* Dynamsoft.Core.Maui
-
-```csharp
-class LicenseManager
-```
-
-## Methods
-
-| Method | Description |
-| ------ | ----------- |
-| [`InitLicense`](#initlicense) | Initializes the license for the application using a license key. This function is overloaded, providing two different usages based on the provided parameters. |
-| [`SetDeviceFriendlyName`](#setdevicefriendlyname) | Assigns a distinctive name to the device, correlating it with its UUID. |
-| [`GetDeviceUUID`](#getdeviceuuid) | Returns the unique identifier of the device. |
-
-### InitLicense
-
-Initializes the license for the application using a license key. This function is overloaded, providing two different usages based on the provided parameters.
-
-```csharp
-static void InitLicense(string license, ILicenseVerificationListener listener);
-```
-
-**Parameters**
-
-`[in] license`: The license key to be used for initialization.
-
-`[in] listener`: A listener object of [`ILicenseVerificationListener`]({{ site.dcv_maui_api }}license/license-verification-listener.html) to monitor the license activation status.
-
-### SetDeviceFriendlyName
-
-Assigns a distinctive name to the device, correlating it with its UUID.
-
-```csharp
-static void SetDeviceFriendlyName(string name);
-```
-
-**Parameters**
-
-`[in] name`: The name of the device.
-
-### GetDeviceUUID
-
-Returns the unique identifier (UUID) of the device.
-
-```csharp
-static string GetDeviceUUID();
-```
-
-**Return Value**
-
-The device UUID.
diff --git a/programming/maui/api-reference/license/license-verification-listener-v2.2.3000.md b/programming/maui/api-reference/license/license-verification-listener-v2.2.3000.md
deleted file mode 100644
index 174bd205..00000000
--- a/programming/maui/api-reference/license/license-verification-listener-v2.2.3000.md
+++ /dev/null
@@ -1,41 +0,0 @@
----
-layout: default-layout
-title: ILicenseVerificationListener - Dynamsoft Capture Vision MAUI API Reference
-description: The interface ILicenseVerificationListener of Dynamsoft Core Module MAUI includes methods for monitoring the license verification status.
-keywords: license verification
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# ILicenseVerificationListener
-
-The `ILicenseVerificationListener` is a interface that includes methods for monitoring the license verification status.
-
-## Definition
-
-*Namespace:* Dynamsoft.License.Maui
-
-*Assembly:* Dynamsoft.Core.Maui
-
-```csharp
-interface ILicenseVerificationListener
-```
-
-| Method | Description |
-| ------ | ----------- |
-| [`OnLicenseVerified`](#onlicenseverified) | The callback triggered when the license verification result is available. |
-
-### OnLicenseVerified
-
-The callback triggered when the license verification result is available.
-
-```csharp
-void OnLicenseVerified(bool isSuccess, string message);
-```
-
-**Parameters**
-
-`[in] isSuccess`: A Boolean value indicating whether the license is verified successfully.
-
-`[in] message`: The error message that describe the reason why your license activation failed.
diff --git a/programming/maui/api-reference/utility/multi-frame-result-cross-filter-v2.2.3000.md b/programming/maui/api-reference/utility/multi-frame-result-cross-filter-v2.2.3000.md
deleted file mode 100644
index 976a8025..00000000
--- a/programming/maui/api-reference/utility/multi-frame-result-cross-filter-v2.2.3000.md
+++ /dev/null
@@ -1,133 +0,0 @@
----
-layout: default-layout
-title: MultiFrameResultCrossFilter Class - Dynamsoft Capture Vision MAUI Edition
-description: MultiFrameResultCrossFilter class of DCV MAUI edition implements the CapturedResultFilter interface, providing filtering options for various types of captured results.
-keywords: filter, CapturedResultFilter, deduplication, cross verification, duplicate forget time
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# MultiFrameResultCrossFilter
-
-The `MultiFrameResultCrossFilter` class implements the `CapturedResultFilter` interface, providing filtering options for various types of captured results.
-
-## Definition
-
-*Namespace:* Dynamsoft.Utility.Maui
-
-*Assembly:* Dynamsoft.CaptureVisionRouter.Maui
-
-```csharp
-class MultiFrameResultCrossFilter
-```
-
-## Methods
-
-| Method | Description |
-| ------ | ----------- |
-| [`MultiFrameResultCrossFilter`](#multiframeresultcrossfilter-1) | The constructor. |
-| [`EnableResultDeduplication`](#enableresultdeduplication) | Enables or disables the deduplication process for one or multiple specific result item types. |
-| [`EnableResultCrossVerification`](#enableresultcrossverification) | Enables or disables the verification of one or multiple specific result item types. |
-| [`SetDuplicateForgetTime`](#setduplicateforgettime) | Sets the interval during which duplicates are disregarded for specific result item types. |
-| [`IsResultDeduplicationEnabled`](#isresultdeduplicationenabled) | Checks if deduplication is active for a given result item type. |
-| [`IsResultCrossVerificationEnabled`](#isresultcrossverificationenabled) | Checks if verification is active for a given result item type. |
-| [`GetDuplicateForgetTime`](#getduplicateforgettime) | Gets the interval during which duplicates are disregarded for specific result item types. |
-
-### MultiFrameResultCrossFilter
-
-The constructor.
-
-```csharp
-MultiFrameResultCrossFilter();
-```
-
-### EnableResultCrossVerification
-
-Enables or disables the verification of one or multiple specific result item types.
-
-```csharp
-void EnableResultCrossVerification(EnumCapturedResultItemType resultItemTypes, bool enable);
-```
-
-**Parameters**
-
-`resultItemTypes`: Specifies one or multiple specific result item types, which can be defined using [`EnumCapturedResultItemType`]({{ site.dcv_maui_api }}core/enum/captured-result-item-type.html).
-
-`enable`: A BOOL value that indicates whether to enable the result cross verification feature.
-
-### IsResultCrossVerificationEnabled
-
-Checks if verification is active for a given result item type.
-
-```csharp
-bool IsResultCrossVerificationEnabled(EnumCapturedResultItemType type);
-```
-
-**Parameters**
-
-`type`: Specifies the result item type with [`EnumCapturedResultItemType`]({{ site.dcv_maui_api }}core/enum/captured-result-item-type.html).
-
-**Return Value**
-
-Boolean indicating the status of verification for the specified type.
-
-### EnableResultDeduplication
-
-Enables or disables the deduplication process for one or multiple specific result item types.
-
-```csharp
-void EnableResultDeduplication(EnumCapturedResultItemType resultItemTypes, bool enable);
-```
-
-**Parameters**
-
-`resultItemTypes`: Specifies one or multiple specific result item types, which can be defined using [`EnumCapturedResultItemType`]({{ site.dcv_maui_api }}core/enum/captured-result-item-type.html).
-
-`enable`: A BOOL value that indicates whether to enable the result deduplication feature.
-
-### IsResultDeduplicationEnabled
-
-Checks if deduplication is active for a given result item type.
-
-```csharp
-bool IsResultDeduplicationEnabled(EnumCapturedResultItemType type);
-```
-
-**Parameters**
-
-`type`: Specifies the result item type with [`EnumCapturedResultItemType`]({{ site.dcv_maui_api }}core/enum/captured-result-item-type.html).
-
-**Return Value**
-
-Boolean indicating the deduplication status for the specified type.
-
-### SetDuplicateForgetTime
-
-Sets the interval during which duplicates are disregarded for specific result item types.
-
-```csharp
-void SetDuplicateForgetTime(EnumCapturedResultItemType resultItemTypes, int time);
-```
-
-**Parameters**
-
-`resultItemTypes`: Specifies one or multiple specific result item types, which can be defined using [`EnumCapturedResultItemType`]({{ site.dcv_maui_api }}core/enum/captured-result-item-type.html).
-
-`time`: The duplicate forget time of the specified capture result type.
-
-### GetDuplicateForgetTime
-
-Gets the interval during which duplicates are disregarded for specific result item types.
-
-```csharp
-int GetDuplicateForgetTime(EnumCapturedResultItemType type);
-```
-
-**Parameters**
-
-`type`: Specifies the result item type with [`EnumCapturedResultItemType`]({{ site.dcv_maui_api }}core/enum/captured-result-item-type.html).
-
-**Return Value**
-
-The set interval for the specified item type.
diff --git a/programming/maui/release-notes/core.md b/programming/maui/release-notes/core.md
deleted file mode 100644
index bd54bdeb..00000000
--- a/programming/maui/release-notes/core.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-layout: default-layout
-title: Core Module Release Notes - Dynamsoft Capture Vision MAUI Edition
-description: Release notes of Core library - Dynamsoft Capture Vision MAUI Edition.
-keywords: release notes, index, MAUI
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# Release Notes - Dynamsoft.Core.Maui Library
-
-## 3.2.310 (06/20/2024)
-
-- The first version. Supported barcode decoding.
diff --git a/programming/maui/release-notes/cvr.md b/programming/maui/release-notes/cvr.md
deleted file mode 100644
index b72e3ec7..00000000
--- a/programming/maui/release-notes/cvr.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-layout: default-layout
-title: CVR ModuleRelease Notes - Dynamsoft Capture Vision MAUI Edition
-description: Release notes of Core library - Dynamsoft Capture Vision MAUI Edition.
-keywords: release notes, index, MAUI
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# Release Notes - Dynamsoft.CaptureVisionRouter.Maui Library
-
-## 2.2.300 (06/20/2024)
-
-- The first version. Supported barcode decoding.
diff --git a/programming/maui/release-notes/dbr.md b/programming/maui/release-notes/dbr.md
deleted file mode 100644
index 09bfa11b..00000000
--- a/programming/maui/release-notes/dbr.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-layout: default-layout
-title: BarcodeReader Module Release Notes - Dynamsoft Capture Vision MAUI Edition
-description: Release notes of BarcodeReader library - Dynamsoft Capture Vision MAUI Edition.
-keywords: release notes, index, MAUI
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# Release Notes - Dynamsoft.BarcodeReader.Maui Library
-
-## 10.2.110 (06/20/2024)
-
-- The first version. Supported barcode decoding.
diff --git a/programming/maui/release-notes/dce.md b/programming/maui/release-notes/dce.md
deleted file mode 100644
index d1967cdd..00000000
--- a/programming/maui/release-notes/dce.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-layout: default-layout
-title: CameraEnhancer Module Release Notes - Dynamsoft Capture Vision MAUI Edition
-description: Release notes of CameraEnhancer library - Dynamsoft Capture Vision MAUI Edition.
-keywords: release notes, index, MAUI
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# Release Notes - Dynamsoft.CameraEnhancer.Maui Library
-
-## 4.2.110 (06/20/2024)
-
-- The first version.
diff --git a/programming/maui/release-notes/dcp.md b/programming/maui/release-notes/dcp.md
deleted file mode 100644
index 235a00c3..00000000
--- a/programming/maui/release-notes/dcp.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-layout: default-layout
-title: CodeParser Module Release Notes - Dynamsoft Capture Vision MAUI Edition
-description: Release notes of CodeParser library - Dynamsoft Capture Vision MAUI Edition.
-keywords: release notes, index, MAUI
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# Release Notes - Dynamsoft.CodeParser.Maui Library
-
-## 2.2.110 (06/20/2024)
-
-- The first version.
diff --git a/programming/maui/release-notes/dip.md b/programming/maui/release-notes/dip.md
deleted file mode 100644
index b582d36e..00000000
--- a/programming/maui/release-notes/dip.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-layout: default-layout
-title: ImageProcessing Module Release Notes - Dynamsoft Capture Vision MAUI Edition
-description: Release notes of ImageProcessing library - Dynamsoft Capture Vision MAUI Edition.
-keywords: release notes, index, MAUI
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# Release Notes - Dynamsoft.ImageProcessing.Maui Library
-
-## 2.2.300 (06/20/2024)
-
-- The first version.
diff --git a/programming/maui/release-notes/index.md b/programming/maui/release-notes/index.md
index 64e424c4..950b0009 100644
--- a/programming/maui/release-notes/index.md
+++ b/programming/maui/release-notes/index.md
@@ -12,7 +12,7 @@ breadcrumbText: Release Notes
- [3.0.5200 (08/18/2025)]({{ site.dcv_maui }}release-notes/maui-3.html#305200-08182025)
- [3.0.5100 (08/12/2025)]({{ site.dcv_maui }}release-notes/maui-3.html#305100-08122025)
- [3.0.3100 (05/30/2025)]({{ site.dcv_maui }}release-notes/maui-3.html#303100-05302025)
-- [2.6.1001 (03/20/2025)]({{ site.dcv_maui }}release-notes/maui-2.html#261001-03202025)
-- [2.6.1000 (02/26/2025)]({{ site.dcv_maui }}release-notes/maui-2.html#261000-02262025)
-- [2.4.2000 (10/24/2024)]({{ site.dcv_maui }}release-notes/maui-2.html#242000-10242024)
+- [2.6.1001 (03/20/2025)]({{ site.dcv_maui_v2 }}release-notes/maui-2.html#261001-03202025)
+- [2.6.1000 (02/26/2025)]({{ site.dcv_maui_v2 }}release-notes/maui-2.html#261000-02262025)
+- [2.4.2000 (10/24/2024)]({{ site.dcv_maui_v2 }}release-notes/maui-2.html#242000-10242024)
diff --git a/programming/maui/release-notes/license.md b/programming/maui/release-notes/license.md
deleted file mode 100644
index bb85a230..00000000
--- a/programming/maui/release-notes/license.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-layout: default-layout
-title: License Module Release Notes - Dynamsoft Capture Vision MAUI Edition
-description: Release notes of License library - Dynamsoft Capture Vision MAUI Edition.
-keywords: release notes, index, MAUI
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# Release Notes - Dynamsoft.License.Maui Library
-
-## 3.2.200 (06/20/2024)
-
-- The first version.
diff --git a/programming/maui/release-notes/maui-2.md b/programming/maui/release-notes/maui-2.md
deleted file mode 100644
index 89f0dbbc..00000000
--- a/programming/maui/release-notes/maui-2.md
+++ /dev/null
@@ -1,36 +0,0 @@
----
-layout: default-layout
-title: Release Notes v2.x - DynamsoftCaptureVisionBundle MAUI Edition
-description: The release notes of DynamsoftCaptureVisionBundle MAUI Edition v2.x.
-keywords: release notes, capture vision bundle, MAUI, dcv
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# Release Notes - DynamsoftCaptureVisionRouter Module
-
-## 2.6.1001 (03/20/2025)
-
-### Fixed
-
-- Fixed a bug where the `FragmentActivity` was not supported.
-
-## 2.6.1000 (02/26/2025)
-
-### New
-
-- Updated the library to support .NET 9.0.
-
-### Fixed
-
-- Fixed a bug that could cause the build to fail when AOT compilation is enabled.
-- Fixed a bug where the MRZ might not be read when using a front-facing camera of an iPad.
-- Fixed a bug where the `ScanRegion` might not effect when set before `CameraView` is created.
-
-## 2.4.2000 (10/24/2024)
-
-The first version of Dynamsoft.CaptureVisionBundle.Maui. Supported the following features:
-
-- [Barcode Scanning]({{ site.dbr_maui }}user-guide.html)
-- [Document Scanning]({{ site.ddn_maui }}user-guide.html)
-- [MRZ Scanning]({{ site.dcv_maui }}mrz.html)
diff --git a/programming/maui/release-notes/utility.md b/programming/maui/release-notes/utility.md
deleted file mode 100644
index bb6b7bd8..00000000
--- a/programming/maui/release-notes/utility.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-layout: default-layout
-title: Utility Module Release Notes - Dynamsoft Capture Vision MAUI Edition
-description: Release notes of Utility library - Dynamsoft Capture Vision MAUI Edition.
-keywords: release notes, index, MAUI
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# Release Notes - Dynamsoft.Utility.Maui Library
-
-## 1.2.200 (06/20/2024)
-
-- The first version.
diff --git a/programming/maui/user-guide/mrz-v2.4.2000.md b/programming/maui/user-guide/mrz-v2.4.2000.md
deleted file mode 100644
index c37cc1e6..00000000
--- a/programming/maui/user-guide/mrz-v2.4.2000.md
+++ /dev/null
@@ -1,409 +0,0 @@
----
-layout: default-layout
-title: Scan & Parse MRZ - Dynamsoft Capture Vision MAUI Edition
-description: This page introduce how to scan and parse a MRZ with Dynamsoft Capture Vision MAUI Edition.
-keywords: MAUI, MRZ, passport, id card, visa
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# MAUI User Guide for MRZ Scanner Integration
-
-## Table of Contents
-
-- [MAUI User Guide for MRZ Scanner Integration](#maui-user-guide-for-mrz-scanner-integration)
- - [Table of Contents](#table-of-contents)
- - [Supported Machine-Readable Travel Document Types](#supported-machine-readable-travel-document-types)
- - [ID (TD1 Size)](#id-td1-size)
- - [ID (TD2 Size)](#id-td2-size)
- - [Passport (TD3 Size)](#passport-td3-size)
- - [System Requirements](#system-requirements)
- - [.Net](#net)
- - [Android](#android)
- - [iOS](#ios)
- - [Installation](#installation)
- - [Visual Studio for Mac](#visual-studio-for-mac)
- - [Visual Studio for Windows](#visual-studio-for-windows)
- - [Build Your MRZ Scanner App](#build-your-mrz-scanner-app)
- - [Set up Development Environment](#set-up-development-environment)
- - [Initialize the Project](#initialize-the-project)
- - [Visual Studio](#visual-studio)
- - [Visual Studio for Mac](#visual-studio-for-mac-1)
- - [Include the Library](#include-the-library)
- - [Initialize MauiProgram](#initialize-mauiprogram)
- - [License Activation](#license-activation)
- - [Initialize the Capture Vision SDK](#initialize-the-capture-vision-sdk)
- - [Add the CameraView control in the Main Page](#add-the-cameraview-control-in-the-main-page)
- - [Open the Camera and Start Reading MRZ](#open-the-camera-and-start-reading-mrz)
- - [Obtaining Recognized Text Lines and Parsed MRZ](#obtaining-recognized-text-lines-and-parsed-mrz)
- - [Run the Project](#run-the-project)
- - [Licensing](#licensing)
-
-## Supported Machine-Readable Travel Document Types
-
-The Machine Readable Travel Documents (MRTD) standard specified by the International Civil Aviation Organization (ICAO) defines how to encode information for optical character recognition on official travel documents.
-
-Currently, the SDK supports three types of MRTD:
-
-> Note: If you need support for other types of MRTDs, our SDK can be easily customized. Please contact support@dynamsoft.com.
-
-### ID (TD1 Size)
-
-The MRZ (Machine Readable Zone) in TD1 format consists of 3 lines, each containing 30 characters.
-
-
-

-
-
-### ID (TD2 Size)
-
-The MRZ (Machine Readable Zone) in TD2 format consists of 2 lines, with each line containing 36 characters.
-
-
-

-
-
-### Passport (TD3 Size)
-
-The MRZ (Machine Readable Zone) in TD3 format consists of 2 lines, with each line containing 44 characters.
-
-
-

-
-
-## System Requirements
-
-### .Net
-
-- .NET 7.0 and .NET 8.0.
-
-### Android
-
-- Supported OS: **Android 5.0** (API Level 21) or higher.
-- Supported ABI: **armeabi-v7a**, **arm64-v8a**, **x86** and **x86_64**.
-- Development Environment: Visual Studio 2022 recommended.
-- JDK: 1.8+
-
-### iOS
-
-- Supported OS: **iOS 11.0** or higher.
-- Supported ABI: **arm64** and **x86_64**.
-- Development Environment: Visual Studio 2022 for Mac and Xcode 14.3+ recommended.
-
-## Installation
-
-### Visual Studio for Mac
-
-In the **NuGet Package Manager>Manage Packages for Solution** of your project, search for **Dynamsoft.CaptureVisionBundle.Maui** and **Dynamsoft.MRZ.Maui**. Select it and click **install**.
-
-### Visual Studio for Windows
-
-You have to Add the library via the project file and do some additional steps to complete the installation.
-
-1. Add the library in the project file:
-
- ```xml
-
- ...
-
- ...
-
-
-
-
- ```
-
-2. Open the **Package Manager Console** and run the following commands:
-
- ```bash
- dotnet build
- ```
-
-> Note:
->
-> - Windows system have a limitation of 260 characters in the path. If you don't use console to install the package, you will receive error "Could not find a part of the path 'C:\Users\admin\.nuget\packages\dynamsoft.imageprocessing.ios\2.4.200\lib\net7.0-ios16.1\Dynamsoft.ImageProcessing.iOS.resources\DynamsoftImageProcessing.xcframework\ios-arm64\dSYMs\DynamsoftImageProcessing.framework.dSYM\Contents\Resources\DWARF\DynamsoftImageProcessing'"
-> - The library only support Android & iOS platform. Be sure that you remove the other platforms like Windows, maccatalyst, etc.
-
-## Build Your MRZ Scanner App
-
-Now you will learn how to create a SimpleMRZScanner using Dynamsoft Capture Vision MAUI SDK.
-
->Note:
->
-> - You can get the similar source code of the SimpleMRZScanner app from the following link
-> - [C#](https://github.com/Dynamsoft/mrz-scanner-mobile-maui/tree/main/MRZScanner){:target="_blank"}.
-
-### Set up Development Environment
-
-If you are a beginner with MAUI, please follow the guide on the .Net MAUI official website to set up the development environment.
-
-### Initialize the Project
-
-#### Visual Studio
-
-1. Open the Visual Studio and select **Create a new project**.
-2. Select **.Net MAUI App** and click **Next**.
-3. Name the project **SimpleMRZScanner**. Select a location for the project and click **Next**.
-4. Select **.Net 7.0** and click **Create**.
-
-#### Visual Studio for Mac
-
-1. Open Visual Studio and select **New**.
-2. Select **Multiplatform > App > .Net MAUI App > C#** and click **Continue**.
-3. Select **.Net 7.0** and click **Continue**.
-4. Name the project **SimpleMRZScanner** and select a location, click **Create**.
-
-### Include the Library
-
-Please view the [installation section](#installation) on how to add the library.
-
-### Initialize MauiProgram
-
-In **MauiProgram.cs**, add a custom handler for the `CameraView` control. Specifically, it maps the `CameraView` type to the `CameraViewHandler` type.
-
-```c#
-namespace SimpleMRZScanner;
-using Microsoft.Extensions.Logging;
-using Dynamsoft.CameraEnhancer.Maui;
-using Dynamsoft.CameraEnhancer.Maui.Handlers;
-
-public static class MauiProgram
-{
- public static MauiApp CreateMauiApp()
- {
- var builder = MauiApp.CreateBuilder();
- builder
- .UseMauiApp()
- .ConfigureFonts(fonts =>
- {
- fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
- fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
- })
- .ConfigureMauiHandlers(handlers =>
- {
- handlers.AddHandler(typeof(CameraView), typeof(CameraViewHandler));
- });
-
-#if DEBUG
- builder.Logging.AddDebug();
-#endif
-
- return builder.Build();
- }
-}
-```
-
-### License Activation
-
-The Dynamsoft Capture Vision SDK needs a valid license to work. Please refer to the [Licensing](#licensing) section for more info on how to obtain a license.
-
-Go to **MainPage.xaml.cs**. Add the following code to activate the license:
-
-```c#
-namespace SimpleMRZScanner;
-using Dynamsoft.License.Maui;
-using System.Diagnostics;
-
-public partial class MainPage : ContentPage, ILicenseVerificationListener
-{
- public MainPage()
- {
- InitializeComponent();
- LicenseManager.InitLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", this);
- }
- public void OnLicenseVerified(bool isSuccess, string message)
- {
- if (!isSuccess)
- {
- Debug.WriteLine(message);
- }
- }
-}
-```
-
-### Initialize the Capture Vision SDK
-
-In the **MainPage.xaml.cs**, add the following code to initialize the Capture Vision SDK:
-
-```c#
-......
-using Dynamsoft.CaptureVisionRouter.Maui;
-using Dynamsoft.CameraEnhancer.Maui;
-using Dynamsoft.Core.Maui;
-using Dynamsoft.Utility.Maui;
-
-public partial class MainPage : ContentPage, ILicenseVerificationListener, ICapturedResultReceiver
-{
- CameraEnhancer enhancer;
- CaptureVisionRouter router;
-
- public MainPage()
- {
- ......
-
- // Create an instance of CameraEnhancer
- enhancer = new CameraEnhancer();
- // Create an instance of CaptureVisionRouter
- router = new CaptureVisionRouter();
- // Bind the router with the created CameraEnhancer
- router.SetInput(enhancer);
- // Add the result receiver to receive the textline result and parsed MRZ result
- router.AddResultReceiver(this);
- // Add the result filter to verify the result across multiple frames
- var filter = new MultiFrameResultCrossFilter();
- filter.EnableResultCrossVerification(EnumCapturedResultItemType.CRIT_TEXT_LINE, true);
- router.AddResultFilter(filter);
- }
-}
-```
-
-### Add the CameraView control in the Main Page
-
-In the **MainPage.xaml**, add a `CameraView` control:
-
-```xml
-
-
-
-
-
-
-```
-
-### Open the Camera and Start Reading MRZ
-
-In this section, we are going to add code to start reading MRZ in the **MainPage.xaml.cs**.
-
-```c#
-......
-
-public partial class MainPage : ContentPage, ILicenseVerificationListener, ICapturedResultReceiver, ICompletionListener
-{
- ......
- protected override void OnHandlerChanged()
- {
- base.OnHandlerChanged();
-
- if (this.Handler != null)
- {
- enhancer.SetCameraView(cameraView);
- }
- }
-
- protected override async void OnAppearing()
- {
- base.OnAppearing();
- // Request camera permission
- await Permissions.RequestAsync();
- // Open camera
- enhancer?.Open();
- // Start reading MRZ
- router?.StartCapturing("ReadPassportAndId", this);
- }
-
- protected override void OnDisappearing()
- {
- base.OnDisappearing();
- // Close camera
- enhancer?.Close();
- // Stop reading MRZ
- router?.StopCapturing();
- }
-
- // It is called when StartCapturing is successful
- public void OnSuccess()
- {
- Debug.WriteLine("Success");
- }
-
- // It is called when StartCapturing is failed
- public void OnFailure(int errorCode, string errorMessage)
- {
- Debug.WriteLine(errorMessage);
- }
-}
-```
-
-Open the **Info.plist** file under the **Platforms/iOS/** folder (Open with XML Text Editor). Add the following lines to request camera permission on iOS platform:
-
-```xml
-NSCameraUsageDescription
-The sample needs to access your camera.
-```
-
-### Obtaining Recognized Text Lines and Parsed MRZ
-
-In **MainPage.xaml.cs**, implement `ICapturedResultReceiver` to receive recognized text lines and parsed MRZ result in `OnRecognizedTextLinesReceived` and `OnParsedResultsReceived` callback function.
-
-```c#
-......
-using Dynamsoft.LabelRecognizer.Maui;
-using Dynamsoft.CodeParser.Maui;
-
-public partial class MainPage : ContentPage, ILicenseVerificationListener, ICapturedResultReceiver, ICompletionListener
-{
- ......
- public void OnRecognizedTextLinesReceived(RecognizedTextLinesResult result)
- {
- if (result.Items == null)
- {
- return;
- }
- List items = result.Items;
- items.ForEach(item =>
- {
- text += item.Text + "\n\n";
- });
- }
-
- public void OnParsedResultsReceived(ParsedResult result)
- {
- if (result.Items == null)
- return;
- if (result.Items.Count() == 0)
- {
- if (text.Length != 0)
- {
- Debug.WriteLine("Error: Failed to parse the MRZ text: " + text);
- }
- }
- else
- {
-
- Dictionary entry = result.Items[0].ParsedFields;
- string number = entry.ContainsKey("passportNumber") ? entry["passportNumber"].Value : entry.ContainsKey("documentNumber") ? entry["documentNumber"].Value : "";
- string firstName = entry.ContainsKey("secondaryIdentifier") ? " " + entry["secondaryIdentifier"].Value : "";
- string lastName = entry.TryGetValue("primaryIdentifier", out var identifier) ? identifier.Value ?? "" : "";
- string name = lastName + firstName;
- // Process the results according to your needs.
-
- Debug.WriteLine("MRZ Result:\n" + "Number:" + number + "\nName:" + name);
- }
- }
-}
-```
-
-### Run the Project
-
-Select your device and run the project.
-
-You can get the similar source code of the SimpleMRZScanner app from the following link:
-
-- [C#](https://github.com/Dynamsoft/mrz-scanner-mobile-maui/tree/main/MRZScanner){:target="_blank"}.
-
-> Note: If you are running Android only on Visual Studio Windows, please manually exclude iOS and Windows platforms. Otherwise, the Visual Studio will report type or namespace not found errors.
-
-
-
-## Licensing
-
-- A one-day trial license is available by default for every new device to try Dynamsoft Capture Vision SDK.
-- You can request a 30-day trial license via the [Request a Trial License](https://www.dynamsoft.com/customer/license/trialLicense?product=dcv&package=mobile&utm_source=docs){:target="_blank"} link.
-- [Contact us](https://www.dynamsoft.com/company/contact/){:target="_blank"} to purchase a full license.
diff --git a/programming/maui/user-guide/mrz-v2.6.1000.md b/programming/maui/user-guide/mrz-v2.6.1000.md
deleted file mode 100644
index 933f6d81..00000000
--- a/programming/maui/user-guide/mrz-v2.6.1000.md
+++ /dev/null
@@ -1,409 +0,0 @@
----
-layout: default-layout
-title: Scan & Parse MRZ - Dynamsoft Capture Vision MAUI Edition
-description: This page introduce how to scan and parse a MRZ with Dynamsoft Capture Vision MAUI Edition.
-keywords: MAUI, MRZ, passport, id card, visa
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# MAUI User Guide for MRZ Scanner Integration
-
-## Table of Contents
-
-- [MAUI User Guide for MRZ Scanner Integration](#maui-user-guide-for-mrz-scanner-integration)
- - [Table of Contents](#table-of-contents)
- - [Supported Machine-Readable Travel Document Types](#supported-machine-readable-travel-document-types)
- - [ID (TD1 Size)](#id-td1-size)
- - [ID (TD2 Size)](#id-td2-size)
- - [Passport (TD3 Size)](#passport-td3-size)
- - [System Requirements](#system-requirements)
- - [.Net](#net)
- - [Android](#android)
- - [iOS](#ios)
- - [Installation](#installation)
- - [Visual Studio for Mac](#visual-studio-for-mac)
- - [Visual Studio for Windows](#visual-studio-for-windows)
- - [Build Your MRZ Scanner App](#build-your-mrz-scanner-app)
- - [Set up Development Environment](#set-up-development-environment)
- - [Initialize the Project](#initialize-the-project)
- - [Visual Studio](#visual-studio)
- - [Visual Studio for Mac](#visual-studio-for-mac-1)
- - [Include the Library](#include-the-library)
- - [Initialize MauiProgram](#initialize-mauiprogram)
- - [License Activation](#license-activation)
- - [Initialize the Capture Vision SDK](#initialize-the-capture-vision-sdk)
- - [Add the CameraView control in the Main Page](#add-the-cameraview-control-in-the-main-page)
- - [Open the Camera and Start Reading MRZ](#open-the-camera-and-start-reading-mrz)
- - [Obtaining Recognized Text Lines and Parsed MRZ](#obtaining-recognized-text-lines-and-parsed-mrz)
- - [Run the Project](#run-the-project)
- - [Licensing](#licensing)
-
-## Supported Machine-Readable Travel Document Types
-
-The Machine Readable Travel Documents (MRTD) standard specified by the International Civil Aviation Organization (ICAO) defines how to encode information for optical character recognition on official travel documents.
-
-Currently, the SDK supports three types of MRTD:
-
-> Note: If you need support for other types of MRTDs, our SDK can be easily customized. Please contact support@dynamsoft.com.
-
-### ID (TD1 Size)
-
-The MRZ (Machine Readable Zone) in TD1 format consists of 3 lines, each containing 30 characters.
-
-
-

-
-
-### ID (TD2 Size)
-
-The MRZ (Machine Readable Zone) in TD2 format consists of 2 lines, with each line containing 36 characters.
-
-
-

-
-
-### Passport (TD3 Size)
-
-The MRZ (Machine Readable Zone) in TD3 format consists of 2 lines, with each line containing 44 characters.
-
-
-

-
-
-## System Requirements
-
-### .Net
-
-- .NET 7.0, 8.0 and 9.0.
-
-### Android
-
-- Supported OS: **Android 5.0** (API Level 21) or higher.
-- Supported ABI: **armeabi-v7a**, **arm64-v8a**, **x86** and **x86_64**.
-- Development Environment: Visual Studio 2022 recommended.
-- JDK: 1.8+
-
-### iOS
-
-- Supported OS: **iOS 11.0** or higher.
-- Supported ABI: **arm64** and **x86_64**.
-- Development Environment: Visual Studio 2022 for Mac and Xcode 14.3+ recommended.
-
-## Installation
-
-### Visual Studio for Mac
-
-In the **NuGet Package Manager>Manage Packages for Solution** of your project, search for **Dynamsoft.CaptureVisionBundle.Maui** and **Dynamsoft.MRZ.Maui**. Select it and click **install**.
-
-### Visual Studio for Windows
-
-You need to add the library via the project file and complete additional steps for the installation.
-
-1. Add the library in the project file:
-
- ```xml
-
- ...
-
- ...
-
-
-
-
- ```
-
-2. Open the **Package Manager Console** and run the following commands:
-
- ```bash
- dotnet build
- ```
-
-> Note:
->
-> - Windows system have a limitation of 260 characters in the path. If you don't use console to install the package, you will receive error "Could not find a part of the path 'C:\Users\admin\.nuget\packages\dynamsoft.imageprocessing.ios\2.4.200\lib\net7.0-ios16.1\Dynamsoft.ImageProcessing.iOS.resources\DynamsoftImageProcessing.xcframework\ios-arm64\dSYMs\DynamsoftImageProcessing.framework.dSYM\Contents\Resources\DWARF\DynamsoftImageProcessing'"
-> - The library only support Android & iOS platform. Be sure that you remove the other platforms like Windows, maccatalyst, etc.
-
-## Build Your MRZ Scanner App
-
-Now you will learn how to create a SimpleMRZScanner using Dynamsoft Capture Vision MAUI SDK.
-
->Note:
->
-> - You can get the similar source code of the SimpleMRZScanner app from the following link
-> - [C#](https://github.com/Dynamsoft/mrz-scanner-mobile-maui/tree/main/MRZScanner){:target="_blank"}.
-
-### Set up Development Environment
-
-If you are a beginner with MAUI, please follow the guide on the .Net MAUI official website to set up the development environment.
-
-### Initialize the Project
-
-#### Visual Studio
-
-1. Open the Visual Studio and select **Create a new project**.
-2. Select **.Net MAUI App** and click **Next**.
-3. Name the project **SimpleMRZScanner**. Select a location for the project and click **Next**.
-4. Select **.Net 7.0** and click **Create**.
-
-#### Visual Studio for Mac
-
-1. Open Visual Studio and select **New**.
-2. Select **Multiplatform > App > .Net MAUI App > C#** and click **Continue**.
-3. Select **.Net 7.0** and click **Continue**.
-4. Name the project **SimpleMRZScanner** and select a location, click **Create**.
-
-### Include the Library
-
-Please view the [installation section](#installation) on how to add the library.
-
-### Initialize MauiProgram
-
-In **MauiProgram.cs**, add a custom handler for the [`CameraView`]({{ site.dce_maui_api }}camera-view.html) control. Specifically, it maps the [`CameraView`]({{ site.dce_maui_api }}camera-view.html) type to the `CameraViewHandler` type.
-
-```c#
-namespace SimpleMRZScanner;
-using Microsoft.Extensions.Logging;
-using Dynamsoft.CameraEnhancer.Maui;
-using Dynamsoft.CameraEnhancer.Maui.Handlers;
-
-public static class MauiProgram
-{
- public static MauiApp CreateMauiApp()
- {
- var builder = MauiApp.CreateBuilder();
- builder
- .UseMauiApp()
- .ConfigureFonts(fonts =>
- {
- fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
- fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
- })
- .ConfigureMauiHandlers(handlers =>
- {
- handlers.AddHandler(typeof(CameraView), typeof(CameraViewHandler));
- });
-
-#if DEBUG
- builder.Logging.AddDebug();
-#endif
-
- return builder.Build();
- }
-}
-```
-
-### License Activation
-
-The Dynamsoft Capture Vision SDK needs a valid license to work. Please refer to the [Licensing](#licensing) section for more info on how to obtain a license.
-
-Go to **MainPage.xaml.cs**. Add the following code to activate the license:
-
-```c#
-namespace SimpleMRZScanner;
-using Dynamsoft.License.Maui;
-using System.Diagnostics;
-
-public partial class MainPage : ContentPage, ILicenseVerificationListener
-{
- public MainPage()
- {
- InitializeComponent();
- LicenseManager.InitLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", this);
- }
- public void OnLicenseVerified(bool isSuccess, string message)
- {
- if (!isSuccess)
- {
- Debug.WriteLine(message);
- }
- }
-}
-```
-
-### Initialize the Capture Vision SDK
-
-In the **MainPage.xaml.cs**, add the following code to initialize the Capture Vision SDK:
-
-```c#
-......
-using Dynamsoft.CaptureVisionRouter.Maui;
-using Dynamsoft.CameraEnhancer.Maui;
-using Dynamsoft.Core.Maui;
-using Dynamsoft.Utility.Maui;
-
-public partial class MainPage : ContentPage, ILicenseVerificationListener, ICapturedResultReceiver
-{
- CameraEnhancer enhancer;
- CaptureVisionRouter router;
-
- public MainPage()
- {
- ......
-
- // Create an instance of CameraEnhancer
- enhancer = new CameraEnhancer();
- // Create an instance of CaptureVisionRouter
- router = new CaptureVisionRouter();
- // Bind the router with the created CameraEnhancer
- router.SetInput(enhancer);
- // Add the result receiver to receive the textline result and parsed MRZ result
- router.AddResultReceiver(this);
- // Add the result filter to verify the result across multiple frames
- var filter = new MultiFrameResultCrossFilter();
- filter.EnableResultCrossVerification(EnumCapturedResultItemType.CRIT_TEXT_LINE, true);
- router.AddResultFilter(filter);
- }
-}
-```
-
-### Add the CameraView control in the Main Page
-
-In the **MainPage.xaml**, add a [`CameraView`]({{ site.dce_maui_api }}camera-view.html) control:
-
-```xml
-
-
-
-
-
-
-```
-
-### Open the Camera and Start Reading MRZ
-
-In this section, we are going to add code to start reading MRZ in the **MainPage.xaml.cs**.
-
-```c#
-......
-
-public partial class MainPage : ContentPage, ILicenseVerificationListener, ICapturedResultReceiver, ICompletionListener
-{
- ......
- protected override void OnHandlerChanged()
- {
- base.OnHandlerChanged();
-
- if (this.Handler != null)
- {
- enhancer.SetCameraView(cameraView);
- }
- }
-
- protected override async void OnAppearing()
- {
- base.OnAppearing();
- // Request camera permission
- await Permissions.RequestAsync();
- // Open camera
- enhancer?.Open();
- // Start reading MRZ
- router?.StartCapturing("ReadPassportAndId", this);
- }
-
- protected override void OnDisappearing()
- {
- base.OnDisappearing();
- // Close camera
- enhancer?.Close();
- // Stop reading MRZ
- router?.StopCapturing();
- }
-
- // It is called when StartCapturing is successful
- public void OnSuccess()
- {
- Debug.WriteLine("Success");
- }
-
- // It is called when StartCapturing is failed
- public void OnFailure(int errorCode, string errorMessage)
- {
- Debug.WriteLine(errorMessage);
- }
-}
-```
-
-Open the **Info.plist** file under the **Platforms/iOS/** folder (Open with XML Text Editor). Add the following lines to request camera permission on iOS platform:
-
-```xml
-NSCameraUsageDescription
-The sample needs to access your camera.
-```
-
-### Obtaining Recognized Text Lines and Parsed MRZ
-
-In **MainPage.xaml.cs**, implement [`ICapturedResultReceiver`]({{ site.dcv_maui_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html) to receive recognized text lines and parsed MRZ result in [`OnRecognizedTextLinesReceived`]({{ site.dcv_maui_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html#onrecognizedtextlinesreceived) and [`OnParsedResultsReceived`]({{ site.dcv_maui_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.htmlonparsedresultsreceived) callback function.
-
-```c#
-......
-using Dynamsoft.LabelRecognizer.Maui;
-using Dynamsoft.CodeParser.Maui;
-
-public partial class MainPage : ContentPage, ILicenseVerificationListener, ICapturedResultReceiver, ICompletionListener
-{
- ......
- public void OnRecognizedTextLinesReceived(RecognizedTextLinesResult result)
- {
- if (result.Items == null)
- {
- return;
- }
- List items = result.Items;
- items.ForEach(item =>
- {
- text += item.Text + "\n\n";
- });
- }
-
- public void OnParsedResultsReceived(ParsedResult result)
- {
- if (result.Items == null)
- return;
- if (result.Items.Count() == 0)
- {
- if (text.Length != 0)
- {
- Debug.WriteLine("Error: Failed to parse the MRZ text: " + text);
- }
- }
- else
- {
-
- Dictionary entry = result.Items[0].ParsedFields;
- string number = entry.ContainsKey("passportNumber") ? entry["passportNumber"].Value : entry.ContainsKey("documentNumber") ? entry["documentNumber"].Value : "";
- string firstName = entry.ContainsKey("secondaryIdentifier") ? " " + entry["secondaryIdentifier"].Value : "";
- string lastName = entry.TryGetValue("primaryIdentifier", out var identifier) ? identifier.Value ?? "" : "";
- string name = lastName + firstName;
- // Process the results according to your needs.
-
- Debug.WriteLine("MRZ Result:\n" + "Number:" + number + "\nName:" + name);
- }
- }
-}
-```
-
-### Run the Project
-
-Select your device and run the project.
-
-You can get the similar source code of the SimpleMRZScanner app from the following link:
-
-- [C#](https://github.com/Dynamsoft/mrz-scanner-mobile-maui/tree/main/MRZScanner){:target="_blank"}.
-
-> Note: If you are running Android only on Visual Studio Windows, please manually exclude iOS and Windows platforms. Otherwise, the Visual Studio will report type or namespace not found errors.
-
-
-
-## Licensing
-
-- A one-day trial license is available by default for every new device to try Dynamsoft Capture Vision SDK.
-- You can request a 30-day trial license via the [Request a Trial License](https://www.dynamsoft.com/customer/license/trialLicense?product=dcv&package=mobile&utm_source=docs){:target="_blank"} link.
-- [Contact us](https://www.dynamsoft.com/company/contact/){:target="_blank"} to purchase a full license.
diff --git a/programming/maui/user-guide/mrz-v2.6.1001.md b/programming/maui/user-guide/mrz-v2.6.1001.md
deleted file mode 100644
index 918e459e..00000000
--- a/programming/maui/user-guide/mrz-v2.6.1001.md
+++ /dev/null
@@ -1,411 +0,0 @@
----
-layout: default-layout
-title: Scan & Parse MRZ - Dynamsoft Capture Vision MAUI Edition
-description: This page introduce how to scan and parse a MRZ with Dynamsoft Capture Vision MAUI Edition.
-keywords: MAUI, MRZ, passport, id card, visa
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
----
-
-# MAUI User Guide for MRZ Scanner Integration
-
-## Table of Contents
-
-- [MAUI User Guide for MRZ Scanner Integration](#maui-user-guide-for-mrz-scanner-integration)
- - [Table of Contents](#table-of-contents)
- - [Supported Machine-Readable Travel Document Types](#supported-machine-readable-travel-document-types)
- - [ID (TD1 Size)](#id-td1-size)
- - [ID (TD2 Size)](#id-td2-size)
- - [Passport (TD3 Size)](#passport-td3-size)
- - [System Requirements](#system-requirements)
- - [.Net](#net)
- - [Android](#android)
- - [iOS](#ios)
- - [Installation](#installation)
- - [Visual Studio for Mac](#visual-studio-for-mac)
- - [Visual Studio for Windows](#visual-studio-for-windows)
- - [Build Your MRZ Scanner App](#build-your-mrz-scanner-app)
- - [Set up Development Environment](#set-up-development-environment)
- - [Initialize the Project](#initialize-the-project)
- - [Visual Studio](#visual-studio)
- - [Visual Studio for Mac](#visual-studio-for-mac-1)
- - [Include the Library](#include-the-library)
- - [Initialize MauiProgram](#initialize-mauiprogram)
- - [License Activation](#license-activation)
- - [Initialize the Capture Vision SDK](#initialize-the-capture-vision-sdk)
- - [Add the CameraView control in the Main Page](#add-the-cameraview-control-in-the-main-page)
- - [Open the Camera and Start Reading MRZ](#open-the-camera-and-start-reading-mrz)
- - [Obtaining Recognized Text Lines and Parsed MRZ](#obtaining-recognized-text-lines-and-parsed-mrz)
- - [Run the Project](#run-the-project)
- - [Licensing](#licensing)
-
-## Supported Machine-Readable Travel Document Types
-
-The Machine Readable Travel Documents (MRTD) standard specified by the International Civil Aviation Organization (ICAO) defines how to encode information for optical character recognition on official travel documents.
-
-Currently, the SDK supports three types of MRTD:
-
-> Note: If you need support for other types of MRTDs, our SDK can be easily customized. Please contact support@dynamsoft.com.
-
-### ID (TD1 Size)
-
-The MRZ (Machine Readable Zone) in TD1 format consists of 3 lines, each containing 30 characters.
-
-
-

-
-
-### ID (TD2 Size)
-
-The MRZ (Machine Readable Zone) in TD2 format consists of 2 lines, with each line containing 36 characters.
-
-
-

-
-
-### Passport (TD3 Size)
-
-The MRZ (Machine Readable Zone) in TD3 format consists of 2 lines, with each line containing 44 characters.
-
-
-

-
-
-## System Requirements
-
-### .Net
-
-- .NET 7.0, 8.0 and 9.0.
-
-### Android
-
-- Supported OS: **Android 5.0** (API Level 21) or higher.
-- Supported ABI: **armeabi-v7a**, **arm64-v8a**, **x86** and **x86_64**.
-- Development Environment: Visual Studio 2022 recommended.
-- JDK: 1.8+
-
-### iOS
-
-- Supported OS: **iOS 11.0** or higher.
-- Supported ABI: **arm64** and **x86_64**.
-- Development Environment: Visual Studio 2022 for Mac and Xcode 14.3+ recommended.
-
-## Installation
-
-### Visual Studio for Mac
-
-In the **NuGet Package Manager>Manage Packages for Solution** of your project, search for **Dynamsoft.CaptureVisionBundle.Maui** and **Dynamsoft.MRZ.Maui**. Select it and click **install**.
-
-### Visual Studio for Windows
-
-You need to add the library via the project file and complete additional steps for the installation.
-
-1. Add the library in the project file:
-
- ```xml
-
- ...
-
- ...
-
-
-
-
- ```
-
-2. Open the **Package Manager Console** and run the following commands:
-
- ```bash
- dotnet build
- ```
-
-> Note:
->
-> - Windows system have a limitation of 260 characters in the path. If you don't use console to install the package, you will receive error "Could not find a part of the path 'C:\Users\admin\.nuget\packages\dynamsoft.imageprocessing.ios\2.4.200\lib\net7.0-ios16.1\Dynamsoft.ImageProcessing.iOS.resources\DynamsoftImageProcessing.xcframework\ios-arm64\dSYMs\DynamsoftImageProcessing.framework.dSYM\Contents\Resources\DWARF\DynamsoftImageProcessing'"
-> - The library only support Android & iOS platform. Be sure that you remove the other platforms like Windows, maccatalyst, etc.
-
-## Build Your MRZ Scanner App
-
-Now you will learn how to create a SimpleMRZScanner using Dynamsoft Capture Vision MAUI SDK.
-
->Note:
->
-> - You can get the similar source code of the SimpleMRZScanner app from the following link
-> - [C#](https://github.com/Dynamsoft/mrz-scanner-mobile-maui/tree/main/MRZScanner){:target="_blank"}.
-
-### Set up Development Environment
-
-If you are a beginner with MAUI, please follow the guide on the .Net MAUI official website to set up the development environment.
-
-### Initialize the Project
-
-#### Visual Studio
-
-1. Open the Visual Studio and select **Create a new project**.
-2. Select **.Net MAUI App** and click **Next**.
-3. Name the project **SimpleMRZScanner**. Select a location for the project and click **Next**.
-4. Select **.Net 7.0** and click **Create**.
-
-#### Visual Studio for Mac
-
-1. Open Visual Studio and select **New**.
-2. Select **Multiplatform > App > .Net MAUI App > C#** and click **Continue**.
-3. Select **.Net 7.0** and click **Continue**.
-4. Name the project **SimpleMRZScanner** and select a location, click **Create**.
-
-### Include the Library
-
-Please view the [installation section](#installation) on how to add the library.
-
-### Initialize MauiProgram
-
-In **MauiProgram.cs**, add a custom handler for the [`CameraView`]({{ site.dce_maui_api }}camera-view.html) control. Specifically, it maps the [`CameraView`]({{ site.dce_maui_api }}camera-view.html) type to the `CameraViewHandler` type.
-
-```c#
-namespace SimpleMRZScanner;
-using Microsoft.Extensions.Logging;
-using Dynamsoft.CameraEnhancer.Maui;
-using Dynamsoft.CameraEnhancer.Maui.Handlers;
-
-public static class MauiProgram
-{
- public static MauiApp CreateMauiApp()
- {
- var builder = MauiApp.CreateBuilder();
- builder
- .UseMauiApp()
- .ConfigureFonts(fonts =>
- {
- fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
- fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
- })
- .ConfigureMauiHandlers(handlers =>
- {
- handlers.AddHandler(typeof(CameraView), typeof(CameraViewHandler));
- });
-
-#if DEBUG
- builder.Logging.AddDebug();
-#endif
-
- return builder.Build();
- }
-}
-```
-
-### License Activation
-
-The Dynamsoft Capture Vision SDK needs a valid license to work. Please refer to the [Licensing](#licensing) section for more info on how to obtain a license.
-
-Go to **MainPage.xaml.cs**. Add the following code to activate the license:
-
-```c#
-namespace SimpleMRZScanner;
-using Dynamsoft.License.Maui;
-using System.Diagnostics;
-
-public partial class MainPage : ContentPage, ILicenseVerificationListener
-{
- public MainPage()
- {
- InitializeComponent();
- LicenseManager.InitLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", this);
- }
- public void OnLicenseVerified(bool isSuccess, string message)
- {
- if (!isSuccess)
- {
- Debug.WriteLine(message);
- }
- }
-}
-```
-
-### Initialize the Capture Vision SDK
-
-In the **MainPage.xaml.cs**, add the following code to initialize the Capture Vision SDK:
-
-```c#
-......
-using Dynamsoft.CaptureVisionRouter.Maui;
-using Dynamsoft.CameraEnhancer.Maui;
-using Dynamsoft.Core.Maui;
-using Dynamsoft.Utility.Maui;
-
-public partial class MainPage : ContentPage, ILicenseVerificationListener, ICapturedResultReceiver
-{
- CameraEnhancer enhancer;
- CaptureVisionRouter router;
-
- public MainPage()
- {
- ......
-
- // Create an instance of CameraEnhancer
- enhancer = new CameraEnhancer();
- // Create an instance of CaptureVisionRouter
- router = new CaptureVisionRouter();
- // Bind the router with the created CameraEnhancer
- router.SetInput(enhancer);
- // Add the result receiver to receive the textline result and parsed MRZ result
- router.AddResultReceiver(this);
- // Add the result filter to verify the result across multiple frames
- var filter = new MultiFrameResultCrossFilter();
- filter.EnableResultCrossVerification(EnumCapturedResultItemType.CRIT_TEXT_LINE, true);
- router.AddResultFilter(filter);
- }
-}
-```
-
-### Add the CameraView control in the Main Page
-
-In the **MainPage.xaml**, add a [`CameraView`]({{ site.dce_maui_api }}camera-view.html) control:
-
-```xml
-
-
-
-
-
-
-```
-
-### Open the Camera and Start Reading MRZ
-
-In this section, we are going to add code to start reading MRZ in the **MainPage.xaml.cs**.
-
-```c#
-......
-
-public partial class MainPage : ContentPage, ILicenseVerificationListener, ICapturedResultReceiver, ICompletionListener
-{
- ......
- protected override void OnHandlerChanged()
- {
- base.OnHandlerChanged();
-
- if (this.Handler != null)
- {
- enhancer.SetCameraView(cameraView);
- }
- }
-
- protected override async void OnAppearing()
- {
- base.OnAppearing();
- // Request camera permission
- await Permissions.RequestAsync();
- // Open camera
- enhancer?.Open();
- // Start reading MRZ
- router?.StartCapturing("ReadPassportAndId", this);
- }
-
- protected override void OnDisappearing()
- {
- base.OnDisappearing();
- // Close camera
- enhancer?.Close();
- // Stop reading MRZ
- router?.StopCapturing();
- }
-
- // It is called when StartCapturing is successful
- public void OnSuccess()
- {
- Debug.WriteLine("Success");
- }
-
- // It is called when StartCapturing is failed
- public void OnFailure(int errorCode, string errorMessage)
- {
- Debug.WriteLine(errorMessage);
- }
-}
-```
-
-Open the **Info.plist** file under the **Platforms/iOS/** folder (Open with XML Text Editor). Add the following lines to request camera permission on iOS platform:
-
-```xml
-NSCameraUsageDescription
-The sample needs to access your camera.
-```
-
-### Obtaining Recognized Text Lines and Parsed MRZ
-
-In **MainPage.xaml.cs**, implement [`ICapturedResultReceiver`]({{ site.dcv_maui_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html) to receive recognized text lines and parsed MRZ result in [`OnRecognizedTextLinesReceived`]({{ site.dcv_maui_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html#onrecognizedtextlinesreceived) and [`OnParsedResultsReceived`]({{ site.dcv_maui_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.htmlonparsedresultsreceived) callback function.
-
-```c#
-......
-using Dynamsoft.LabelRecognizer.Maui;
-using Dynamsoft.CodeParser.Maui;
-
-public partial class MainPage : ContentPage, ILicenseVerificationListener, ICapturedResultReceiver, ICompletionListener
-{
- ......
- public void OnRecognizedTextLinesReceived(RecognizedTextLinesResult result)
- {
- if (result.Items == null)
- {
- return;
- }
- List items = result.Items;
- items.ForEach(item =>
- {
- text += item.Text + "\n\n";
- });
- }
-
- public void OnParsedResultsReceived(ParsedResult result)
- {
- if (result.Items == null)
- return;
- if (result.Items.Count() == 0)
- {
- if (text.Length != 0)
- {
- Debug.WriteLine("Error: Failed to parse the MRZ text: " + text);
- }
- }
- else
- {
-
- Dictionary entry = result.Items[0].ParsedFields;
- string number = entry.ContainsKey("passportNumber") ? entry["passportNumber"].Value : entry.ContainsKey("documentNumber") ? entry["documentNumber"].Value : "";
- string firstName = entry.ContainsKey("secondaryIdentifier") ? " " + entry["secondaryIdentifier"].Value : "";
- string lastName = entry.TryGetValue("primaryIdentifier", out var identifier) ? identifier.Value ?? "" : "";
- string name = lastName + firstName;
- // Process the results according to your needs.
-
- Debug.WriteLine("MRZ Result:\n" + "Number:" + number + "\nName:" + name);
- }
- }
-}
-```
-
-### Run the Project
-
-Select your device and run the project.
-
-You can get the similar source code of the SimpleMRZScanner app from the following link:
-
-- [C#](https://github.com/Dynamsoft/mrz-scanner-mobile-maui/tree/main/MRZScanner){:target="_blank"}.
-
-> Note: If you are running Android only on Visual Studio Windows, please manually exclude iOS and Windows platforms. Otherwise, the Visual Studio will report type or namespace not found errors.
-
-
-
-## Licensing
-
-When getting started with MRZ Scanner, we recommend getting your own 30-day trial license through the following modal:
-
-{% include trialLicense.html %}
-
-If you have any questions about the trial license or would like to inquire about acquiring a full license, do not hesitate to [contact us](https://www.dynamsoft.com/company/contact/){:target="_blank"}.