diff --git a/_config.yml b/_config.yml
index 7d55943..4ddf3e2 100644
--- a/_config.yml
+++ b/_config.yml
@@ -42,7 +42,8 @@ dcp_ios: /code-parser/docs/mobile/programming/ios/
dcp_ios_api: /code-parser/docs/mobile/programming/ios/api-reference/
-useVersionTree: true
+useVersionTree: false
+isDCV: true
baseurl: "/label-recognition/docs/mobile"
diff --git a/_data/full_tree.yml b/_data/full_tree.yml
deleted file mode 100644
index 6ac26a9..0000000
--- a/_data/full_tree.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-tree_file_list:
- - sidelist-full-tree.html
- - sidelist-programming/programming-android-v1.2.1.html
- - sidelist-programming/programming-android-v2.0.0.html
- - sidelist-programming/programming-android-v2.2.20.html
- - sidelist-programming/programming-android-v3.0.20.html
- - sidelist-programming/programming-android.html
- - sidelist-programming/programming-objectivec-swift-v1.2.1.html
- - sidelist-programming/programming-objectivec-swift-v2.0.0.html
- - sidelist-programming/programming-objectivec-swift-v2.2.20.html
- - sidelist-programming/programming-objectivec-swift-v3.0.20.html
- - sidelist-programming/programming-objectivec-swift.html
-
diff --git a/_data/product_version.yml b/_data/product_version.yml
deleted file mode 100644
index c1c4d96..0000000
--- a/_data/product_version.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-useGroupedVersion: true
-
-version_info_list:
- - value: latest version (3.2.30)
- - value: 3.x
- child:
- - 3.0.20
- - value: 2.x
- child:
- - 2.2.20
- - 2.0.0
- - value: 1.x
- child:
- - 1.2.1
- - 1.2.0
- - 1.0.0
diff --git a/_includes/release-notes/product-highlight-1.0.md b/_includes/release-notes/product-highlight-1.0.md
deleted file mode 100644
index bbd7ba5..0000000
--- a/_includes/release-notes/product-highlight-1.0.md
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-- Supports text recognition from BMP, JPEG, PNG and single-page TIFF files.
-- Supports zonal OCR and provides three ways to localize text areas:
- - Pre-define an area manually in pixel or percentage.
- - Specify an area relative to the barcode zone, which allows you to recognize accompanying texts near the barcode.
- - Specify an area relative to blocks which share the same colour or uses the same font colour. A common example would be a price tag, where the text of interest is always on a yellow square background, the yellow square can serve as the reference region.
-- Supports specifying a regular expression to improve recognition accuracy and robustness.
-
diff --git a/_includes/release-notes/product-highlight-1.2.md b/_includes/release-notes/product-highlight-1.2.md
deleted file mode 100644
index 320a5d4..0000000
--- a/_includes/release-notes/product-highlight-1.2.md
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-- Added timeout mechanism. DLR checks at a few points whether the elapsed time for the current image is longer than its value. If so, DLR will end the flow. Timeout prevents one image from costing too much time.
-
-- Added parameters for lines filtering:
- - `LineStringLengthRange` is used to define the minimum and maximum string length when running the recognition process on a specific line.
- - `MaxLineCharacterSpacing` is used to control the spacing between characters treated as one line.
-
-- Improved the regular expression parameter by supporting more [RegEx pattern syntaxes]({{ site.parameters-reference }}label-recognition-parameter/parameter-control.html#textregexpattern).
-
-- Improved the recognition accuracy when dealing with skewed and italics characters.
-
-- Improved the recognition accuracy for serif fonts.
-
diff --git a/_includes/release-notes/product-highlight-2.0.md b/_includes/release-notes/product-highlight-2.0.md
deleted file mode 100644
index 65d6cfc..0000000
--- a/_includes/release-notes/product-highlight-2.0.md
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-- Added image processing modes to enhance the usage scenarios like MRZ reading:
- - Texture area detection
- - Color Conversion
- - Binarization
- - Grayscale image processing
-
-- Added dictionary-based correction. The dictionary is minimal and customizable to only cover a scenario-oriented vocabulary.
-
-- Improved the overall performance by replacing Caffe engine with OpenCV dnn engine
-
-- Improved the readability of recognizing skewed characters.
-
-- Improved the MRZ reading performance.
-
-- Added a `core` library. Migrated the core structs/classes from the LabelRecognizer library to the `core` library.
-
diff --git a/_includes/release-notes/product-highlight-2.2.md b/_includes/release-notes/product-highlight-2.2.md
deleted file mode 100644
index 96e0012..0000000
--- a/_includes/release-notes/product-highlight-2.2.md
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-- Improved the performance of the MRZ scenario. The recognition speed is improved by about 70%.
-
-- Added character normalization modes to normalize the text. This feature will improve the read rate when processing the text in nonstandard fonts like dot matrix.
-
-- New parameter control and recognition methods are added to fit more usage scenarios.
-
diff --git a/_includes/release-notes/product-highlight-3.0.0.md b/_includes/release-notes/product-highlight-3.0.0.md
deleted file mode 100644
index 2c9db35..0000000
--- a/_includes/release-notes/product-highlight-3.0.0.md
+++ /dev/null
@@ -1,16 +0,0 @@
-
-`DynamsoftLabelRecognizer` SDK has been revamped to integrate with `DynamsoftCaptureVision (DCV)` architecture, which is newly established to aggregate the features of functional products powered by Dynamsoft. The features are designed to be pluggable, customizable and interactable. In addition, the functional products share the computation so that their processing speed is much higher than working individually.
-
-* `DynamsoftCaptureVision` architecture consists of:
- * `ImageSourceAdapter(ISA)`, the standard input interface for you to convert image data from different sources into the standard input image data. In addition, `ISA` incorporates an image buffer management system that allows instant access to the buffered image data.
- * `CaptureVisionRouter (CVR)`, an engine for you to update templates, retrieve images from `ISA`, coordinate corresponding functional products and dispatch the results to the receivers.
- * Functional products that perform image processing, content understanding and semantic processing. The functional products are pluggable and passively called by CVR when they are required.
- * Result receiver interfaces. You can implement `CapturedResultReceiver (CRR)` to receive the `CapturedResults` that output when the processing on an image is finalized. You can also implement `IntermediateResultReceiver (IRR)` to get timely results from different stages of the workflow.
-* The parameter template system has been comprehensively upgraded.
- * Multiple algorithm task settings are available. You can define barcode decoding, label recognizing, document scanning and semantic processing tasks in one template file.
- * Extended the feature of the ROI system. By configuring the `target ROI` parameters, you can not only specify an `ROI` on the original image but also define the dependencies of the algorithm tasks. This feature enables you to customize the workflow when processing complex scenarios.
- * The image processing parameters are separated from the task parameters so that the template settings become more clear and concise.
-* The `intermediate result` system has been improved.
- * Achieved the `intermediate result` sharing between different functional products. The results that have the same image source and processing parameters are directly reused, which speeds up the image processing workflow. You don’t need to add any additional code to enable the `intermediate result` sharing. The library can recognize all the reusable results automatically based on the template file you uploaded.
- * The readability and interactivity of the `intermediate results` are enhanced. `IntermediateResultReceiver` allows you to receive up to 27 different types of `Intermediate results`. You can clearly read which stage of the algorithm each result is output from. In addition, `IntermediateResultManager` allows you to intervene in the workflows by modifying the `intermediate results`.
-
diff --git a/_includes/sidelist-full-tree.html b/_includes/sidelist-full-tree.html
deleted file mode 100644
index 0dc0690..0000000
--- a/_includes/sidelist-full-tree.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
- {%- if page.needAutoGenerateSidebar -%}
- {%- unless page.needGenerateH3Content -%}
-
- {%- else -%}
-
- {%- endunless -%}
- {%- else -%}
-
- {%- endif -%}
-
-
-
- {%- include livehelp.html -%}
-
-
-
\ No newline at end of file
diff --git a/assets/js/dlrMobileVersionSearch.json b/assets/js/dlrMobileVersionSearch.json
deleted file mode 100644
index ebc1683..0000000
--- a/assets/js/dlrMobileVersionSearch.json
+++ /dev/null
@@ -1,250 +0,0 @@
-[
- {
- "version": "3.2.30",
- "matchList": {
- "android":{
- "dcvRepoMobile": [
- {
- "path": "/programming/android/api-reference/utility",
- "version": "1.2.20"
- }, {
- "path": "/programming/android/api-reference/license",
- "version": "3.2.20"
- }, {
- "path": "/programming/android/api-reference/capture-vision-router",
- "version": "2.2.30"
- }, {
- "path": "/programming/android/api-reference/core",
- "version": "3.2.30"
- }, {
- "path": "/programming/android/api-reference/image-processing",
- "version": "2.2.30"
- }
- ],
- "dcvRepoCore": [
- {
- "path": "/enums/utility",
- "version": "1.2.20"
- }, {
- "path": "/enums/license",
- "version": "3.2.20"
- }, {
- "path": "/enums/capture-vision-router",
- "version": "2.2.30"
- }, {
- "path": "/enums/core",
- "version": "3.2.30"
- },{
- "path": "/parameters/reference/capture-vision-template",
- "version": "2.2.30"
- },{
- "path": "/parameters/reference/target-roi-def",
- "version": "2.2.30"
- },{
- "path": "/parameters/reference/label-recognizer-task-settings",
- "version": "3.2.30"
- },{
- "path": "/parameters/reference/image-parameter",
- "version": "2.2.30"
- },{
- "path": "/parameters/reference/text-line-specification",
- "version": "3.2.30"
- },{
- "path": "/parameters/reference/image-source-options",
- "version": "3.2.30"
- },{
- "path": "/parameters/reference/global-parameter",
- "version": "2.2.30"
- }
- ],
- "dce": "4.2.10"
- },
- "ios":{
- "dcvRepoMobile": [
- {
- "path": "/programming/objectivec-swift/api-reference/utility",
- "version": "1.2.20"
- }, {
- "path": "/programming/objectivec-swift/api-reference/license",
- "version": "3.2.20"
- }, {
- "path": "/programming/objectivec-swift/api-reference/capture-vision-router",
- "version": "2.2.30"
- }, {
- "path": "/programming/objectivec-swift/api-reference/core",
- "version": "3.2.30"
- }, {
- "path": "/programming/objectivec-swift/api-reference/image-processing",
- "version": "2.2.30"
- }
- ],
- "dcvRepoCore": [
- {
- "path": "/enums/utility",
- "version": "1.2.20"
- }, {
- "path": "/enums/license",
- "version": "3.2.20"
- }, {
- "path": "/enums/capture-vision-router",
- "version": "2.2.30"
- }, {
- "path": "/enums/core",
- "version": "3.2.30"
- },{
- "path": "/parameters/reference/capture-vision-template",
- "version": "2.2.30"
- },{
- "path": "/parameters/reference/target-roi-def",
- "version": "2.2.30"
- },{
- "path": "/parameters/reference/label-recognizer-task-settings",
- "version": "3.2.30"
- },{
- "path": "/parameters/reference/image-parameter",
- "version": "2.2.30"
- },{
- "path": "/parameters/reference/text-line-specification",
- "version": "3.2.30"
- },{
- "path": "/parameters/reference/image-source-options",
- "version": "3.2.30"
- },{
- "path": "/parameters/reference/global-parameter",
- "version": "2.2.30"
- }
- ],
- "dce": "4.2.10"
- }
- }
- },{
- "version": "3.0.20",
- "matchList": {
- "android":{
- "dcvRepoMobile": [
- {
- "path": "/programming/android/api-reference/utility",
- "version": "1.0.21"
- }, {
- "path": "/programming/android/api-reference/license",
- "version": "3.0.20"
- }, {
- "path": "/programming/android/api-reference/capture-vision-router",
- "version": "2.0.21"
- }, {
- "path": "/programming/android/api-reference/core",
- "version": "3.0.20"
- }, {
- "path": "/programming/android/api-reference/image-processing",
- "version": "2.0.21"
- }
- ],
- "dcvRepoCore": [
- {
- "path": "/enums/utility",
- "version": "1.0.21"
- }, {
- "path": "/enums/license",
- "version": "3.0.20"
- }, {
- "path": "/enums/capture-vision-router",
- "version": "2.0.21"
- }, {
- "path": "/enums/core",
- "version": "3.0.20"
- },{
- "path": "/parameters/reference/capture-vision-template",
- "version": "2.0.21"
- },{
- "path": "/parameters/reference/target-roi-def",
- "version": "2.0.21"
- },{
- "path": "/parameters/reference/label-recognizer-task-settings",
- "version": "3.0.20"
- },{
- "path": "/parameters/reference/image-parameter",
- "version": "2.0.21"
- },{
- "path": "/parameters/reference/text-line-specification",
- "version": "3.0.20"
- },{
- "path": "/parameters/reference/image-source-options",
- "version": "3.0.20"
- },{
- "path": "/parameters/reference/global-parameter",
- "version": "2.0.21"
- }
- ],
- "dce": "4.0.2"
- },
- "ios":{
- "dcvRepoMobile": [
- {
- "path": "/programming/objectivec-swift/api-reference/utility",
- "version": "1.0.21"
- }, {
- "path": "/programming/objectivec-swift/api-reference/license",
- "version": "3.0.20"
- }, {
- "path": "/programming/objectivec-swift/api-reference/capture-vision-router",
- "version": "2.0.21"
- }, {
- "path": "/programming/objectivec-swift/api-reference/core",
- "version": "3.0.20"
- }, {
- "path": "/programming/objectivec-swift/api-reference/image-processing",
- "version": "2.0.21"
- }
- ],
- "dcvRepoCore": [
- {
- "path": "/enums/utility",
- "version": "1.0.21"
- }, {
- "path": "/enums/license",
- "version": "3.0.20"
- }, {
- "path": "/enums/capture-vision-router",
- "version": "2.0.21"
- }, {
- "path": "/enums/core",
- "version": "3.0.20"
- },{
- "path": "/parameters/reference/capture-vision-template",
- "version": "2.0.21"
- },{
- "path": "/parameters/reference/target-roi-def",
- "version": "2.0.21"
- },{
- "path": "/parameters/reference/label-recognizer-task-settings",
- "version": "3.0.20"
- },{
- "path": "/parameters/reference/image-parameter",
- "version": "2.0.21"
- },{
- "path": "/parameters/reference/text-line-specification",
- "version": "3.0.20"
- },{
- "path": "/parameters/reference/image-source-options",
- "version": "3.0.20"
- },{
- "path": "/parameters/reference/global-parameter",
- "version": "2.0.21"
- }
- ],
- "dce": "4.0.2"
- }
- }
- },{
- "version": "2.2.20",
- "matchList": {
- "android": {
- "dce": "3.0.3"
- },
- "ios": {
- "dce": "3.0.3"
- }
- }
- }
-]
-
\ No newline at end of file
diff --git a/programming-old/android/api-reference/barcode-result.md b/programming-old/android/api-reference/barcode-result.md
deleted file mode 100644
index f536807..0000000
--- a/programming-old/android/api-reference/barcode-result.md
+++ /dev/null
@@ -1,111 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Core Android Class - BarcodeResult
-description: This page shows the BarcodeResult Class of Dynamsoft Core for Android Language.
-keywords: BarcodeResult, Android
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/android/api-reference/barcode-result.html
----
-
-
-# BarcodeResult
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v2.2.20.
-
-Stores the barcode result.
-
-```java
-class com.dynamsoft.core.BarcodeResult
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`barcodeFormat`](#barcodeformat) | *int* |
-| [`barcodeFormat_2`](#barcodeformat_2) | *int* |
-| [`text`](#text) | *String* |
-| [`bytes`](#bytes) | *byte[]* |
-| [`location`](#location) | [`Quadrilateral`](quadrilateral.md) |
-| [`moduleSize`](#modulesize) | *int* |
-| [`pageNumber`](#pagenumber) | *int* |
-
-
-
-### barcodeFormat
-
-Barcode type in BarcodeFormat group 1.
-
-```java
-int barcodeFormat
-```
-
-**See also**
-
-[`EnumBarcodeFormat`]({{ site.enumerations }}barcode-format.html)
-
-
-
-### barcodeFormat_2
-
-Barcode type in BarcodeFormat group 2.
-
-```java
-int barcodeFormat_2
-```
-
-**See also**
-
-[`EnumBarcodeFormat_2`]({{ site.enumerations }}barcode-format-2.html)
-
-
-
-### text
-
-The barcode text.
-
-```java
-String text
-```
-
-
-
-### bytes
-
-The barcode content in a byte array.
-
-```java
-byte[] bytes
-```
-
-
-
-### location
-
-The location of current recognized text.
-
-```java
-Quadrilateral location
-```
-
-
-
-### moduleSize
-
-The barcode module size (the minimum bar width in pixel).
-
-```java
-int moduleSize
-```
-
-
-
-### pageNumber
-
-The page number the barcode located in. The index is 0-based.
-
-```java
-int pageNumber
-```
diff --git a/programming-old/android/api-reference/class/dlr-character-result.md b/programming-old/android/api-reference/class/dlr-character-result.md
deleted file mode 100644
index 4507754..0000000
--- a/programming-old/android/api-reference/class/dlr-character-result.md
+++ /dev/null
@@ -1,54 +0,0 @@
----
-layout: default-layout
-title: DLRCharacterResult - Dynamsoft Label Recognition Android Class
-description: This page shows the DLRCharacterResult struct of Dynamsoft Label Recognition for Android Language.
-keywords: DLRCharacterResult, android
-needAutoGenerateSidebar: true
-permalink: /programming/android/api-reference/class/dlr-character-result.html
----
-
-
-# DLRCharacterResult
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v1.x.
-
-Stores the character result.
-
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`characterH`](#characterh) | *char* |
-| [`characterM`](#characterm) | *char* |
-| [`characterL`](#characterl) | *char* |
-| [`location`](#location) | [`DLRQuadrilateral`](dlr-quadrilateral.md) |
-
-
-### characterH
-The recognized character with highest confidence.
-
-```java
-char com.dynamsoft.dlr.DLRCharacterResult.characterH
-```
-
-### characterM
-The recognized character with middle confidence.
-
-```java
-char com.dynamsoft.dlr.DLRCharacterResult.characterM
-```
-
-### characterL
-The recognized character with lowest confidence.
-
-```java
-char com.dynamsoft.dlr.DLRCharacterResult.characterL
-```
-
-### location
-The location of current character.
-
-```java
-DLRQuadrilateral com.dynamsoft.dlr.DLRCharacterResult.location
-```
diff --git a/programming-old/android/api-reference/class/dlr-image-data.md b/programming-old/android/api-reference/class/dlr-image-data.md
deleted file mode 100644
index 82f17d1..0000000
--- a/programming-old/android/api-reference/class/dlr-image-data.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-layout: default-layout
-title: DLRImageData - Dynamsoft Label Recognition Android Class
-description: This page shows the DLRImageData struct of Dynamsoft Label Recognition for Android Language.
-keywords: DLRImageData, android
-needAutoGenerateSidebar: true
-permalink: /programming/android/api-reference/class/dlr-image-data.html
----
-
-
-# DLRImageData
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v1.x.
-
-Stores the image data.
-
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`bytes`](#bytes) | *byte[]* |
-| [`width`](#width) | *int* |
-| [`height`](#height) | *int* |
-| [`stride`](#stride) | *int* |
-| [`format`](#format) | [`DLRImagePixelFormat`]({{ site.enumerations }}other-enums.html#dlrimagepixelformat) |
-
-
-### bytes
-The image data content in a byte array.
-```java
-byte[] com.dynamsoft.dlr.DLRImageData.bytes
-```
-
-### width
-The width of the image in pixels.
-```java
-int com.dynamsoft.dlr.DLRImageData.width
-```
-
-### height
-The height of the image in pixels.
-```java
-int com.dynamsoft.dlr.DLRImageData.height
-```
-
-### stride
-The stride (or scan width) of the image.
-```java
-int com.dynamsoft.dlr.DLRImageData.stride
-```
-
-### format
-The image pixel format used in the image byte array.
-```java
-DLRImagePixelFormat com.dynamsoft.dlr.DLRImageData.format
-```
-
-
diff --git a/programming-old/android/api-reference/class/dlr-line-result.md b/programming-old/android/api-reference/class/dlr-line-result.md
deleted file mode 100644
index 9a8c0f7..0000000
--- a/programming-old/android/api-reference/class/dlr-line-result.md
+++ /dev/null
@@ -1,72 +0,0 @@
----
-layout: default-layout
-title: DLRLineResult - Dynamsoft Label Recognition Android Class
-description: This page shows the DLRLineResult struct of Dynamsoft Label Recognition for Android Language.
-keywords: DLRLineResult, struct, android
-needAutoGenerateSidebar: true
-permalink: /programming/android/api-reference/class/dlr-line-result.html
----
-
-
-# DLRLineResult
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v1.x.
-
-Stores the line result.
-
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`lineSpecificationName`](#linespecificationname) | *String* |
-| [`text`](#text) | *String* |
-| [`characterModelName`](#charactermodelname) | *String* |
-| [`location`](#location) | [`DLRQuadrilateral`](dlr-quadrilateral.md) |
-| [`confidence`](#confidence) | *int* |
-| [`characterResults`](#characterresults) | [`DLRCharacterResult[]`](dlr-character-result.md) |
-
-
-### lineSpecificationName
-The name of the line specification used to recognize current line result.
-
-```java
-String com.dynamsoft.dlr.DLRLineResult.lineSpecificationName
-```
-
-### text
-The recognized text, ends by '\0'.
-
-```java
-String com.dynamsoft.dlr.DLRLineResult.text
-```
-
-### characterModelName
-The character model used to recognize the text.
-
-```java
-String com.dynamsoft.dlr.DLRLineResult.characterModelName
-```
-
-### location
-The location of current line.
-
-```java
-DLRQuadrilateral com.dynamsoft.dlr.DLRLineResult.location
-```
-
-
-### confidence
-The confidence of the result. It ranges from 0 to 100.
-
-```java
-int com.dynamsoft.dlr.DLRLineResult.confidence
-```
-
-### characterResults
-The character results array.
-
-```java
-DLRCharacterResult[] com.dynamsoft.dlr.DLRLineResult.characterResults
-```
-
diff --git a/programming-old/android/api-reference/class/dlr-point.md b/programming-old/android/api-reference/class/dlr-point.md
deleted file mode 100644
index bfb8b5b..0000000
--- a/programming-old/android/api-reference/class/dlr-point.md
+++ /dev/null
@@ -1,39 +0,0 @@
----
-layout: default-layout
-title: DLRPoint - Dynamsoft Label Recognition Android Class
-description: This page shows the DLRPoint struct of Dynamsoft Label Recognition for Android Language.
-keywords: DLRPoint, struct, android
-needAutoGenerateSidebar: true
-permalink: /programming/android/api-reference/class/dlr-point.html
----
-
-
-# DLRPoint
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v1.x.
-
-Stores an x- and y-coordinate pair in two-dimensional space.
-
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`x`](#x) | *int* |
-| [`y`](#y) | *int* |
-
-
-### x
-The X coordinate of the point.
-
-```java
-int com.dynamsoft.dlr.DLRPoint.x
-```
-
-
-### y
-The Y coordinate of the point.
-
-```java
-int com.dynamsoft.dlr.DLRPoint.y
-```
diff --git a/programming-old/android/api-reference/class/dlr-quadrilateral.md b/programming-old/android/api-reference/class/dlr-quadrilateral.md
deleted file mode 100644
index 9b142c7..0000000
--- a/programming-old/android/api-reference/class/dlr-quadrilateral.md
+++ /dev/null
@@ -1,32 +0,0 @@
----
-layout: default-layout
-title: DLRQuadrilateral - Dynamsoft Label Recognition Android Class
-description: This page shows the DLRQuadrilateral struct of Dynamsoft Label Recognition for Android Language.
-keywords: DLRQuadrilateral, struct, android
-needAutoGenerateSidebar: true
-permalink: /programming/android/api-reference/class/dlr-quadrilateral.html
----
-
-
-# DLRQuadrilateral
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v1.x.
-
-Stores the quadrilateral.
-
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`points`](#points) | [`DLRPoint[]`](dlr-point.md) |
-
-
-### points
-Four vertexes in a clockwise direction of a quadrilateral. Index 0 represents the left-most vertex.
-```java
-DLRPoint[] com.dynamsoft.dlr.DLRQuadrilateral.points
-```
-
-
-
diff --git a/programming-old/android/api-reference/class/dlr-reference-region.md b/programming-old/android/api-reference/class/dlr-reference-region.md
deleted file mode 100644
index 388bd0d..0000000
--- a/programming-old/android/api-reference/class/dlr-reference-region.md
+++ /dev/null
@@ -1,158 +0,0 @@
----
-layout: default-layout
-title: DLRReferenceRegion - Dynamsoft Label Recognition Android Class
-description: This page shows the DLRReferenceRegion struct of Dynamsoft Label Recognition for Android Language.
-keywords: DLRReferenceRegion, struct, android
-needAutoGenerateSidebar: true
-permalink: /programming/android/api-reference/class/dlr-reference-region.html
----
-
-
-# DLRReferenceRegion
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v1.x.
-
-Stores the reference region information.
-
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`localizationSourceType`](#localizationsourcetype) | [`DLRLocalizationSourceType`]({{ site.enumerations }}other-enums.html#dlrlocalizationsourcetype) |
-| [`points`](#points) | [`DLRPoint[]`](dlr-point.md) |
-| [`regionMeasuredByPercentage`](#regionmeasuredbypercentage) | *int* |
-| [`regionPredetectionModesIndex`](#regionpredetectionmodesindex) | *int* |
-| [`barcodeFormatIds`](#barcodeformatids) | *int* |
-| [`barcodeFormatIds_2`](#barcodeformatids_2) | *int* |
-| [`barcodeTextRegExPattern`](#barcodetextregexpattern) | *String* |
-
-### localizationSourceType
-The source type used to localize the reference region(s).
-
-```java
-int com.dynamsoft.dlr.DLRReferenceRegion.localizationSourceType
-```
-
-**Value Range**
-
-A value of [`DLRLocalizationSourceType`]({{ site.enumerations }}other-enums.html#dlrlocalizationsourcetype) Enumeration items.
-
-**Default value**
-
-`DLR_LST_MANUAL_SPECIFICATION`
-
-**Remarks**
-
-
-
-### points
-Four vertexes in a clockwise direction of a quadrilateral. Index 0 represents the left-most vertex.
-```java
-DLRPoint[] com.dynamsoft.dlr.DLRReferenceRegion.points
-```
-
-**Remarks**
-
-It works only when [localizationSourceType](#localizationsourcetype) is setting to DLR_LST_MANUAL_SPECIFICATION.
- The library will localize reference region(s) based on the quadrilateral set by current setting.
-
-### regionMeasuredByPercentage
-Whether or not to use percentage to measure the coordinate.
-
-```java
-int com.dynamsoft.dlr.DLRReferenceRegion.regionMeasuredByPercentage
-```
-
-**Value Range**
-
-[0, 1]
-
-**Default value**
-
-1
-
-**Remarks**
-
-It works only when [localizationSourceType](#localizationsourcetype) is setting to DLR_LST_MANUAL_SPECIFICATION.
- 0: not by percentage
- 1: by percentage
- When it's set to 1, the values of points indicate percentage (from 0 to 100); Otherwise, they indicate coordinates in pixel.
-
-
-### regionPredetectionModesIndex
-The index of a specific region predetection mode in the regionPredetectionModes parameter.
-
-```java
-int com.dynamsoft.dlr.DLRReferenceRegion.regionPredetectionModesIndex
-```
-
-**Value Range**
-
-[-1, 0x7fffffff]
-
-**Default value**
-
--1
-
-**Remarks**
-
-It works only when [localizationSourceType](#localizationsourcetype) is setting to DLR_LST_PREDETECTED_REGION.
- The library will localize reference region(s) based on the detected regions from the specified region predetection mode.
- -1: all region predetection modes in the regionPredetectionModes parameter
-
-
-### barcodeFormatIds
-The formats of the barcode in BarcodeFormat group 1.
-
-```java
-int com.dynamsoft.dlr.DLRReferenceRegion.barcodeFormatIds
-```
-
-**Value Range**
-
-A combined value of [`DLRBarcodeFormat`]({{ site.enumerations }}other-enums.html#dlrbarcodeformat) Enumeration items
-
-**Default value**
-
-DLR_BF_ALL
-
-**Remarks**
-
-Barcode formats in DLRBarcodeFormat group 1 can be combined.
- It works only when [localizationSourceType](#localizationsourcetype) is setting to DLR_LST_BARCODE.
- The library will localize reference region(s) based on the barcodes whose format meets current setting.
-
-
-### barcodeFormatIds_2
-The formats of the barcode in BarcodeFormat group 2.
-
-```java
-int com.dynamsoft.dlr.DLRReferenceRegion.barcodeFormatIds_2
-```
-
-**Value Range**
-
-A combined value of [`DLRBarcodeFormat_2`]({{ site.enumerations }}other-enums.html#dlrbarcodeformat_2) Enumeration items
-
-**Default value**
-
-DLR_BF2_NULL
-
-**Remarks**
-
-Barcode formats in DLRBarcodeFormat group 2 can be combined.
- It works only when [localizationSourceType](#localizationsourcetype) is setting to DLR_LST_BARCODE.
- The library will localize reference region(s) based on the barcodes whose format meets current setting.
-
-### barcodeTextRegExPattern
-The regular express pattern of barcode text.
-
-```java
-String com.dynamsoft.dlr.DLRReferenceRegion.barcodeTextRegExPattern
-```
-
-**Remarks**
-
-It works only when [localizationSourceType](#localizationsourcetype) is setting to DLR_LST_BARCODE.
- The library will localize reference region(s) based on the barcodes whose text meets current setting.
diff --git a/programming-old/android/api-reference/class/dlr-result-v1.0.md b/programming-old/android/api-reference/class/dlr-result-v1.0.md
deleted file mode 100644
index 3291bfd..0000000
--- a/programming-old/android/api-reference/class/dlr-result-v1.0.md
+++ /dev/null
@@ -1,66 +0,0 @@
----
-layout: default-layout
-title: DLRResult - Dynamsoft Label Recognition Android Class
-description: This page shows the DLRResult struct of Dynamsoft Label Recognition for Android Language.
-keywords: DLRResult, struct, android
-needAutoGenerateSidebar: true
-permalink: /programming/android/api-reference/class/dlr-result-v1.0.html
----
-
-
-# DLRResult
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v1.x.
-
-Stores the recognized result.
-
-
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`referenceRegionName`](#referenceregionname) | *String* |
-| [`textAreaName`](#textareaname) | *String* |
-| [`location`](#location) | [`DLRQuadrilateral`](dlr-quadrilateral.md) |
-| [`confidence`](#confidence) | *int* |
-| [`lineResults`](#lineresults) | [`DLRLineResult[]`](dlr-line-result.md) |
-
-
-### referenceRegionName
-The name of the reference region which is used to recognize the current result.
-
-```java
-String com.dynamsoft.dlr.DLRResult.referenceRegionName
-```
-
-### textAreaName
-The name of the text area used to recognize current result.
-
-```java
-String com.dynamsoft.dlr.DLRResult.textAreaName
-```
-
-### location
-The location of current recognized text.
-
-```java
-DLRQuadrilateral com.dynamsoft.dlr.DLRResult.location
-```
-
-
-### confidence
-The confidence of the result. It ranges from 0 to 100.
-
-```java
-int com.dynamsoft.dlr.DLRResult.confidence
-```
-
-
-### lineResults
-The line results array.
-
-```java
-DLRLineResult[] com.dynamsoft.dlr.DLRResult.lineResults
-```
-
diff --git a/programming-old/android/api-reference/class/dlr-result.md b/programming-old/android/api-reference/class/dlr-result.md
deleted file mode 100644
index 0190a18..0000000
--- a/programming-old/android/api-reference/class/dlr-result.md
+++ /dev/null
@@ -1,73 +0,0 @@
----
-layout: default-layout
-title: DLRResult - Dynamsoft Label Recognition Android Class
-description: This page shows the DLRResult struct of Dynamsoft Label Recognition for Android Language.
-keywords: DLRResult, struct, android
-needAutoGenerateSidebar: true
-permalink: /programming/android/api-reference/class/dlr-result.html
----
-
-
-# DLRResult
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v1.x.
-
-Stores the recognized result.
-
-
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`referenceRegionName`](#referenceregionname) | *String* |
-| [`textAreaName`](#textareaname) | *String* |
-| [`location`](#location) | [`DLRQuadrilateral`](dlr-quadrilateral.md) |
-| [`confidence`](#confidence) | *int* |
-| [`lineResults`](#lineresults) | [`DLRLineResult[]`](dlr-line-result.md) |
-| [`pageNumber`](#pagenumber) | *int* |
-
-
-### referenceRegionName
-The name of the reference region which is used to recognize the current result.
-
-```java
-String com.dynamsoft.dlr.DLRResult.referenceRegionName
-```
-
-### textAreaName
-The name of the text area used to recognize current result.
-
-```java
-String com.dynamsoft.dlr.DLRResult.textAreaName
-```
-
-### location
-The location of current recognized text.
-
-```java
-DLRQuadrilateral com.dynamsoft.dlr.DLRResult.location
-```
-
-
-### confidence
-The confidence of the result. It ranges from 0 to 100.
-
-```java
-int com.dynamsoft.dlr.DLRResult.confidence
-```
-
-
-### lineResults
-The line results array.
-
-```java
-DLRLineResult[] com.dynamsoft.dlr.DLRResult.lineResults
-```
-
-### pageNumber
-The page number the result located in. The index is 0-based.
-
-```java
-int com.dynamsoft.dlr.DLRResult.pageNumber
-```
diff --git a/programming-old/android/api-reference/class/dlr-runtime-settings.md b/programming-old/android/api-reference/class/dlr-runtime-settings.md
deleted file mode 100644
index cbd4ed2..0000000
--- a/programming-old/android/api-reference/class/dlr-runtime-settings.md
+++ /dev/null
@@ -1,130 +0,0 @@
----
-layout: default-layout
-title: DLRRuntimeSettings - Dynamsoft Label Recognition Android Class
-description: This page shows the DLRRuntimeSettings struct of Dynamsoft Label Recognition for Android Language.
-keywords: DLRRuntimeSettings, struct, android
-needAutoGenerateSidebar: true
-permalink: /programming/android/api-reference/class/dlr-runtime-settings.html
----
-
-
-# DLRRuntimeSettings
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v1.x.
-
-Defines a struct to configure the text recognizer runtime settings. These settings control the text recognition process.
-
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`maxThreadCount`](#maxthreadcount) | *int* |
-| [`characterModelName`](#charactermodelname) | *String* |
-| [`linesCount`](#linescount) | *int* |
-| [`regionPredetectionModes`](#regionpredetectionmodes) | *int\[\]* |
-| [`referenceRegion`](#referenceregion) | [`DLRReferenceRegion`](dlr-reference-region.md) |
-| [`textArea`](#textarea) | [`DLRQuadrilateral`](dlr-quadrilateral.md) |
-| [`grayscaleTransformationModes`](#grayscaletransformationmodes) | *int\[\]* |
-
-
-### maxThreadCount
-Sets the number of threads the algorithm will use to recognize label.
-
-```java
-int com.dynamsoft.dlr.DLRRuntimeSettings.maxThreadCount
-```
-
-**Value Range**
-
-[1, 4]
-
-**Default value**
-
-4
-
-**Remarks**
-
-To keep a balance between speed and quality, the library concurrently runs four different threads by default.
-
-### characterModelName
-The name of the CharacterModel.
-
-```java
-String com.dynamsoft.dlr.DLRRuntimeSettings.characterModelName
-```
-
-### linesCount
-Sets the text lines count of the text area.
-
-```java
-int com.dynamsoft.dlr.DLRRuntimeSettings.linesCount
-```
-
-**Value Range**
-
-[0, 200]
-
-**Default value**
-
-0
-
-**Remarks**
-
-0: line count is not certain.
-
-
-### regionPredetectionModes
-Sets the region pre-detection mode.
-
-```java
-int[] com.dynamsoft.dlr.DLRRuntimeSettings.regionPredetectionModes[]
-```
-
-**Value Range**
-
-Each array item can be any one of the [`DLRRegionPredetectionMode`]({{ site.enumerations }}parameter-mode-enums.html#dlrregionpredetectionmode) Enumeration items.
-
-**Default value**
-
-`[DLR_RPM_SKIP,DLR_RPM_SKIP,DLR_RPM_SKIP,DLR_RPM_SKIP,DLR_RPM_SKIP,DLR_RPM_SKIP,DLR_RPM_SKIP,DLR_RPM_SKIP]`
-
-**Remarks**
-
-The array index represents the priority of the item. The smaller index is, the higher priority is.
-
-
-### referenceRegion
-Sets the reference region to search for text.
-
-```java
-DLRReferenceRegion com.dynamsoft.dlr.DLRRuntimeSettings.referenceRegion
-```
-
-### textArea
-Sets the text area relative to the reference region.
-
-```java
-DLRQuadrilateral com.dynamsoft.dlr.DLRRuntimeSettings.textArea
-```
-
-### grayscaleTransformationModes
-Sets the grayscale transformation mode.
-
-```java
-int[] com.dynamsoft.dlr.DLRRuntimeSettings.grayscaleTransformationModes[]
-```
-
-**Value Range**
-
-Each array item can be any one of the [`DLRGrayscaleTransformationMode`]({{ site.enumerations }}parameter-mode-enums.html#dlrgrayscaletransformationmode) Enumeration items.
-
-**Default value**
-
-`[DLR_GTM_ORIGINAL,DLR_GTM_SKIP,DLR_GTM_SKIP,DLR_GTM_SKIP,DLR_GTM_SKIP,DLR_GTM_SKIP,DLR_GTM_SKIP,DLR_GTM_SKIP]`
-
-**Remarks**
-
-The array index represents the priority of the item. The smaller index is, the higher priority is.
-
-
diff --git a/programming-old/android/api-reference/class/dm-lts-connection-parameters-v1.2.md b/programming-old/android/api-reference/class/dm-lts-connection-parameters-v1.2.md
deleted file mode 100644
index 603734c..0000000
--- a/programming-old/android/api-reference/class/dm-lts-connection-parameters-v1.2.md
+++ /dev/null
@@ -1,175 +0,0 @@
----
-layout: default-layout
-title: DMLTSConnectionParameters - Dynamsoft Label Recognition Android Class
-description: This page shows the DMLTSConnectionParameters struct of Dynamsoft Label Recognition for Android Language.
-keywords: DMLTSConnectionParameters, struct, android
-needAutoGenerateSidebar: true
-permalink: /programming/android/api-reference/class/dm-lts-connection-parameters-v1.2.html
----
-
-
-# DMLTSConnectionParameters
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v1.x.
-
-Defines a struct to configure the parameters to connect to license tracking server.
-
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`mainServerURL`](#mainserverurl) | *String* |
-| [`standbyServerURL`](#standbyserverurl) | *String* |
-| [`handshakeCode`](#handshakecode) | *String* |
-| [`sessionPassword`](#sessionpassword) | *String* |
-| [`chargeWay`](#chargeway) | *int* |
-| [`UUIDGenerationMethod`](#uuidgenerationmethod) | *int* |
-| [`maxBufferDays`](#maxbufferdays) | *int* |
-| [`limitedLicenseModules`](#limitedlicensemodules) | *List* |
-
-
-### mainServerURL
-The URL of the license tracking server.
-
-```java
-String com.dynamsoft.dlr.DMLTSConnectionParameters.mainServerURL
-```
-
-**Value Range**
-
-Any string value
-
-**Default value**
-
-""
-
-**Remarks**
-
-If you choose "Dynamsoft-hosting", then no need to change the value of MainServerURL and StandbyServerURL. When both are set to null (default value), it will connect to Dynamsoft's license tracking servers for online verification.
-
-
-### standbyServerURL
-The URL of the standby license tracking server.
-
-```java
-String com.dynamsoft.dlr.DMLTSConnectionParameters.standbyServerURL
-```
-
-**Value Range**
-
-Any string value
-
-**Default value**
-
-""
-
-**Remarks**
-
-If you choose "Dynamsoft-hosting", then no need to change the value of MainServerURL and StandbyServerURL. When both are set to null (default value), it will connect to Dynamsoft's license tracking servers for online verification.
-
-
-### handshakeCode
-The handshake code.
-
-```java
-String com.dynamsoft.dlr.DMLTSConnectionParameters.handshakeCode
-```
-
-**Value Range**
-
-Any string value
-
-**Default value**
-
-""
-
-### sessionPassword
-The session password of the handshake code set in license tracking server.
-
-```java
-String com.dynamsoft.dlr.DMLTSConnectionParameters.sessionPassword
-```
-
-**Value Range**
-
-Any string value
-
-**Default value**
-
-""
-
-### chargeWay
-Sets the charge way.
-
-```java
-int com.dynamsoft.dlr.DMLTSConnectionParameters.chargeWay
-```
-
-**Value Range**
-
-A value of [`EnumDMChargeWay`]({{ site.enumerations }}other-enums.html#dm_chargeway) Enumeration items.
-
-**Default value**
-
-`DM_CW_AUTO`
-
-**See also**
-
-[`EnumDMChargeWay`]({{ site.enumerations }}other-enums.html#dm_chargeway)
-
-
-### UUIDGenerationMethod
-Sets the method to generate UUID.
-
-```java
-int com.dynamsoft.dlr.DMLTSConnectionParameters.UUIDGenerationMethod
-```
-
-**Value Range**
-
-A value of [`EnumDMUUIDGenerationMethod`]({{ site.enumerations }}other-enums.html#dm_uuidgenerationmethod) Enumeration items.
-
-**Default value**
-
-`DM_UUIDGM_RANDOM`
-
-**See also**
-
-[`EnumDMUUIDGenerationMethod`]({{ site.enumerations }}other-enums.html#dm_uuidgenerationmethod)
-
-
-### maxBufferDays
-Sets the max days to buffer the license info.
-
-```java
-int com.dynamsoft.dlr.DMLTSConnectionParameters.maxBufferDays
-```
-
-**Value Range**
-
-[0,0x7fffffff]
-
-**Default value**
-
-7
-
-### limitedLicenseModules
-Sets the license modules to use.
-
-```java
-List com.dynamsoft.dlr.DMLTSConnectionParameters.limitedLicenseModules
-```
-
-**Value Range**
-
-A list of the [`EnumDMLicenseModule`]({{ site.enumerations }}other-enums.html#dm_licensemodule) Enumeration items.
-
-**Default value**
-
-null
-
-**See also**
-
-[`EnumDMLicenseModule`]({{ site.enumerations }}other-enums.html#dm_licensemodule)
-
diff --git a/programming-old/android/api-reference/class/dm-lts-connection-parameters.md b/programming-old/android/api-reference/class/dm-lts-connection-parameters.md
deleted file mode 100644
index 1d4be3b..0000000
--- a/programming-old/android/api-reference/class/dm-lts-connection-parameters.md
+++ /dev/null
@@ -1,211 +0,0 @@
----
-layout: default-layout
-title: DMLTSConnectionParameters - Dynamsoft Label Recognition Android Class
-description: This page shows the DMLTSConnectionParameters struct of Dynamsoft Label Recognition for Android Language.
-keywords: DMLTSConnectionParameters, struct, android
-needAutoGenerateSidebar: true
-permalink: /programming/android/api-reference/class/dm-lts-connection-parameters.html
----
-
-
-# DMLTSConnectionParameters
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v1.x.
-
-Defines a struct to configure the parameters to connect to license tracking server.
-
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`mainServerURL`](#mainserverurl) | *String* |
-| [`standbyServerURL`](#standbyserverurl) | *String* |
-| [`handshakeCode`](#handshakecode) | *String* |
-| [`sessionPassword`](#sessionpassword) | *String* |
-| [`chargeWay`](#chargeway) | *int* |
-| [`UUIDGenerationMethod`](#uuidgenerationmethod) | *int* |
-| [`maxBufferDays`](#maxbufferdays) | *int* |
-| [`limitedLicenseModules`](#limitedlicensemodules) | *List* |
-| [`organizationID`](#organizationid) | *String* |
-| [`products`](#products) | *int* |
-
-
-### mainServerURL
-The URL of the license tracking server.
-
-```java
-String com.dynamsoft.dlr.DMLTSConnectionParameters.mainServerURL
-```
-
-**Value Range**
-
-Any string value
-
-**Default value**
-
-""
-
-**Remarks**
-
-If you choose "Dynamsoft-hosting", then no need to change the value of MainServerURL and StandbyServerURL. When both are set to null (default value), it will connect to Dynamsoft's license tracking servers for online verification.
-
-
-### standbyServerURL
-The URL of the standby license tracking server.
-
-```java
-String com.dynamsoft.dlr.DMLTSConnectionParameters.standbyServerURL
-```
-
-**Value Range**
-
-Any string value
-
-**Default value**
-
-""
-
-**Remarks**
-
-If you choose "Dynamsoft-hosting", then no need to change the value of MainServerURL and StandbyServerURL. When both are set to null (default value), it will connect to Dynamsoft's license tracking servers for online verification.
-
-
-### handshakeCode
-The handshake code.
-
-```java
-String com.dynamsoft.dlr.DMLTSConnectionParameters.handshakeCode
-```
-
-**Value Range**
-
-Any string value
-
-**Default value**
-
-""
-
-### sessionPassword
-The session password of the handshake code set in license tracking server.
-
-```java
-String com.dynamsoft.dlr.DMLTSConnectionParameters.sessionPassword
-```
-
-**Value Range**
-
-Any string value
-
-**Default value**
-
-""
-
-### chargeWay
-Sets the charge way.
-
-```java
-int com.dynamsoft.dlr.DMLTSConnectionParameters.chargeWay
-```
-
-**Value Range**
-
-A value of [`EnumDMChargeWay`]({{ site.enumerations }}other-enums.html#dm_chargeway) Enumeration items.
-
-**Default value**
-
-`DM_CW_AUTO`
-
-**See also**
-
-[`EnumDMChargeWay`]({{ site.enumerations }}other-enums.html#dm_chargeway)
-
-
-### UUIDGenerationMethod
-Sets the method to generate UUID.
-
-```java
-int com.dynamsoft.dlr.DMLTSConnectionParameters.UUIDGenerationMethod
-```
-
-**Value Range**
-
-A value of [`EnumDMUUIDGenerationMethod`]({{ site.enumerations }}other-enums.html#dm_uuidgenerationmethod) Enumeration items.
-
-**Default value**
-
-`DM_UUIDGM_RANDOM`
-
-**See also**
-
-[`EnumDMUUIDGenerationMethod`]({{ site.enumerations }}other-enums.html#dm_uuidgenerationmethod)
-
-
-### maxBufferDays
-Sets the max days to buffer the license info.
-
-```java
-int com.dynamsoft.dlr.DMLTSConnectionParameters.maxBufferDays
-```
-
-**Value Range**
-
-[0,0x7fffffff]
-
-**Default value**
-
-7
-
-### limitedLicenseModules
-Sets the license modules to use.
-
-```java
-List com.dynamsoft.dlr.DMLTSConnectionParameters.limitedLicenseModules
-```
-
-**Value Range**
-
-A list of the [`EnumDMLicenseModule`]({{ site.enumerations }}other-enums.html#dm_licensemodule) Enumeration items.
-
-**Default value**
-
-null
-
-**See also**
-
-[`EnumDMLicenseModule`]({{ site.enumerations }}other-enums.html#dm_licensemodule)
-
-
-### organizationID
-The organization ID got from Dynamsoft.
-
-```java
-String com.dynamsoft.dlr.DMLTSConnectionParameters.organizationID
-```
-
-**Value Range**
-
-Any string value
-
-**Default value**
-
-""
-
-### products
-Sets the products to get the license for. Product values can be combined.
-
-```java
-int com.dynamsoft.dlr.DMLTSConnectionParameters.products
-```
-
-**Value Range**
-
-A combine value of [`EnumProduct`]({{ site.enumerations }}other-enums.html#product) Enumeration items.
-
-**Default value**
-
-`PROD_ALL`
-
-**See also**
-
-[`EnumProduct`]({{ site.enumerations }}other-enums.html#product)
\ No newline at end of file
diff --git a/programming-old/android/api-reference/class/index.md b/programming-old/android/api-reference/class/index.md
deleted file mode 100644
index 044a444..0000000
--- a/programming-old/android/api-reference/class/index.md
+++ /dev/null
@@ -1,25 +0,0 @@
----
-layout: default-layout
-title: Android Structs - Dynamsoft Label Recognition Android API Reference
-description: This page shows all Structs of Dynamsoft Label Recognition for Android API Reference.
-keywords: api reference, android
-needAutoGenerateSidebar: false
-permalink: /programming/android/api-reference/class/index.html
----
-
-
-# Dynamsoft Label Recognition - Android Structs
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v1.x.
-
-
-- [`DMLTSConnectionParameters`](dm-lts-connection-parameters.md)
-- [`DLRCharacterResult`](dlr-character-result.md)
-- [`DLRImageData`](dlr-image-data.md)
-- [`DLRLineResult`](dlr-line-result.md)
-- [`DLRPoint`](dlr-point.md)
-- [`DLRQuadrilateral`](dlr-quadrilateral.md)
-- [`DLRReferenceRegion`](dlr-reference-region.md)
-- [`DLRResult`](dlr-result.md)
-- [`DLRRuntimeSettings`](dlr-runtime-settings.md)
-- [`LabelRecognitionException`](label-recognition-exception.md)
diff --git a/programming-old/android/api-reference/class/label-recognition-exception.md b/programming-old/android/api-reference/class/label-recognition-exception.md
deleted file mode 100644
index 47dba00..0000000
--- a/programming-old/android/api-reference/class/label-recognition-exception.md
+++ /dev/null
@@ -1,30 +0,0 @@
----
-layout: default-layout
-title: LabelRecognitionException Class - Dynamsoft Label Recognition Android API Reference
-description: This page shows the LabelRecognitionException Class of Dynamsoft Label Recognition for Android SDK.
-keywords: LabelRecognitionException, class, api reference, android
-needAutoGenerateSidebar: false
-permalink: /programming/android/api-reference/class/label-recognition-exception.html
----
-
-
-# LabelRecognitionException
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v1.x.
-
-Exception for signalling label recognition errors.
-
-
-## Method
-
-| Method | Type |
-|---------- | ----------- |
-| [`getErrorCode`][#geterrorcode]| *int* |
-
-### getErrorCode
-
-Gets the error code.
-
-```java
-int com.dynamsoft.dlr.LabelRecognitionException.getErrorCode()
-```
\ No newline at end of file
diff --git a/programming-old/android/api-reference/core-exception.md b/programming-old/android/api-reference/core-exception.md
deleted file mode 100644
index bf4086f..0000000
--- a/programming-old/android/api-reference/core-exception.md
+++ /dev/null
@@ -1,37 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Core Android class - CoreException
-description: This page shows the CoreException class of Dynamsoft Core for Android Language.
-keywords: CoreException, android
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/android/api-reference/core-exception.html
----
-
-
-# CoreException
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v2.2.20.
-
-Exception for signalling core module errors.
-
-```java
-class com.dynamsoft.core.CoreException
-```
-
-## Method
-
-| Method | Type |
-|---------- | ----------- |
-| [`getErrorCode`](#geterrorcode)| *int* |
-
-
-
-### getErrorCode
-
-Gets the error code.
-
-```java
-int getErrorCode()
-```
diff --git a/programming-old/android/api-reference/dlr-character-result.md b/programming-old/android/api-reference/dlr-character-result.md
deleted file mode 100644
index 89e38b9..0000000
--- a/programming-old/android/api-reference/dlr-character-result.md
+++ /dev/null
@@ -1,103 +0,0 @@
----
-layout: default-layout
-title: DLRCharacterResult - Dynamsoft Label Recognizer Android Class
-description: This page shows the DLRCharacterResult struct of Dynamsoft Label Recognizer for Android Language.
-keywords: DLRCharacterResult, android
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/android/api-reference/dlr-character-result.html
----
-
-
-# DLRCharacterResult
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v2.2.20.
-
-Stores the character result.
-
-```java
-class com.dynamsoft.dlr.DLRCharacterResult
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`characterH`](#characterh) | *char* |
-| [`characterM`](#characterm) | *char* |
-| [`characterL`](#characterl) | *char* |
-| [`characterHConfidence`](#characterhconfidence) | *int* |
-| [`characterMConfidence`](#charactermconfidence) | *int* |
-| [`characterLConfidence`](#characterlconfidence) | *int* |
-| [`location`](#location) | [`Quadrilateral`](quadrilateral.md) |
-
-
-
-### characterH
-
-The recognized character with highest confidence.
-
-```java
-char characterH
-```
-
-
-
-### characterM
-
-The recognized character with middle confidence.
-
-```java
-char characterM
-```
-
-
-
-### characterL
-
-The recognized character with lowest confidence.
-
-```java
-char characterL
-```
-
-
-
-### characterHConfidence
-
-The confidence of the recognized character with the highest confidence.
-
-```java
-int characterHConfidence
-```
-
-
-
-### characterMConfidence
-
-The confidence of the recognized character with the middle confidence.
-
-```java
-int characterMConfidence
-```
-
-
-
-### characterLConfidence
-
-The confidence of the recognized character with the lowest confidence.
-
-```java
-int characterLConfidence
-```
-
-
-
-### location
-
-The location of current character.
-
-```java
-com.dynamsoft.core.Quadrilateral location
-```
diff --git a/programming-old/android/api-reference/dlr-dictionary-correction-threshold.md b/programming-old/android/api-reference/dlr-dictionary-correction-threshold.md
deleted file mode 100644
index 146cee5..0000000
--- a/programming-old/android/api-reference/dlr-dictionary-correction-threshold.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-layout: default-layout
-title: DLRDictionaryCorrectionThreshold - Dynamsoft Label Recognizer Android Class
-description: This page shows the DLRDictionaryCorrectionThreshold struct of Dynamsoft Label Recognizer for Android Language.
-keywords: DLRDictionaryCorrectionThreshold, android
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/android/api-reference/dlr-dictionary-correction-threshold.html
----
-
-
-# DLRDictionaryCorrectionThreshold
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v2.2.20.
-
-Stores the dictionary correction threshold.
-
-```java
-class com.dynamsoft.dlr.DLRDictionaryCorrectionThreshold
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`minWordLength`](#minwordlength) | *int* |
-| [`maxWordLength`](#maxwordlength) | *int* |
-| [`threshold`](#threshold) | *int* |
-
-
-
-### minWordLength
-
-The minimum value of word length.
-
-```java
-int minWordLength
-```
-
-
-
-### maxWordLength
-
-The maximum value of word length.
-
-```java
-int maxWordLength
-```
-
-
-
-### threshold
-
-The threshold for the number of error correction characters.
-
-```java
-int threshold
-```
diff --git a/programming-old/android/api-reference/dlr-further-modes.md b/programming-old/android/api-reference/dlr-further-modes.md
deleted file mode 100644
index 0c7ebab..0000000
--- a/programming-old/android/api-reference/dlr-further-modes.md
+++ /dev/null
@@ -1,139 +0,0 @@
----
-layout: default-layout
-title: DLRFurtherModes Struct - Dynamsoft Label Recognizer Android API Reference
-description: This page shows the DLRFurtherModes Struct of Dynamsoft Label Recognizer for Android SDK.
-keywords: DLRFurtherModes, Android
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/android/api-reference/dlr-further-modes.html
----
-
-
-# DLRFurtherModes
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v2.2.20.
-
-Stores the FurtherModes.
-
-```java
-class com.dynamsoft.dlr.DLRFurtherModes
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`colourConversionModes`](#colourconversionmodes) | *int\[\]* |
-| [`grayscaleTransformationModes`](#grayscaletransformationmodes) | *int\[\]* |
-| [`regionPredetectionModes`](#regionpredetectionmodes) | *int\[\]* |
-| [`grayscaleEnhancementModes`](#grayscaleenhancementmodes) | *int\[\]* |
-| [`textureDetectionModes`](#texturedetectionmodes) | *int\[\]* |
-
-
-
-### colourConversionModes
-
-Sets the mode and priority for converting a colour image to a grayscale image.
-
-```java
-int[] colourConversionModes
-```
-
-**Value Range**
-
-Each array item can be any one of the [`EnumColourConversionMode`]({{ site.enumerations }}colour-conversion-mode.html) Enumeration items.
-
-**Default value**
-
-`[EnumColourConversionMode.CICM_GENERAL, EnumColourConversionMode.CICM_SKIP, EnumColourConversionMode.CICM_SKIP, EnumColourConversionMode.CICM_SKIP, EnumColourConversionMode.CICM_SKIP, EnumColourConversionMode.CICM_SKIP, EnumColourConversionMode.CICM_SKIP, EnumColourConversionMode.CICM_SKIP]`
-
-**Remarks**
-
-The array index represents the priority of the item. The smaller index is, the higher priority is.
-
-
-
-### grayscaleTransformationModes
-
-Sets the mode and priority for the grayscale image conversion.
-
-```csharp
-int[] grayscaleTransformationModes
-```
-
-**Value Range**
-
-Each array item can be any one of the [`EnumGrayscaleTransformationMode`]({{ site.enumerations }}grayscale-transformation-mode.html) Enumeration items.
-
-**Default value**
-
-`[EnumGrayscaleTransformationMode.GTM_ORIGINAL, EnumGrayscaleTransformationMode.GTM_SKIP, EnumGrayscaleTransformationMode.GTM_SKIP, EnumGrayscaleTransformationMode.GTM_SKIP, EnumGrayscaleTransformationMode.GTM_SKIP, EnumGrayscaleTransformationMode.GTM_SKIP, EnumGrayscaleTransformationMode.GTM_SKIP, EnumGrayscaleTransformationMode.GTM_SKIP]`
-
-**Remarks**
-
-The array index represents the priority of the item. The smaller index is, the higher priority is.
-
-
-
-### regionPredetectionModes
-
-Sets the region pre-detection mode.
-
-```java
-int[] regionPredetectionModes
-```
-
-**Value Range**
-
-Each array item can be any one of the [`EnumRegionPredetectionMode`]({{ site.enumerations }}region-predetection-mode.html) Enumeration items.
-
-**Default value**
-
-`[EnumRegionPredetectionMode.RPM_GENERAL, EnumRegionPredetectionMode.RPM_SKIP, EnumRegionPredetectionMode.RPM_SKIP, EnumRegionPredetectionMode.RPM_SKIP, EnumRegionPredetectionMode.RPM_SKIP, EnumRegionPredetectionMode.RPM_SKIP, EnumRegionPredetectionMode.RPM_SKIP, EnumRegionPredetectionMode.RPM_SKIP]`
-
-**Remarks**
- The array index represents the priority of the item. The smaller index is, the higher priority is.
-
-
-
-### grayscaleEnhancementModes
-
-Sets the mode and priority for grayscale image preprocessing algorithms.
-
-```java
-int[] grayscaleEnhancementModes
-```
-
-**Value Range**
-
-Each array item can be any one of the [`EnumGrayscaleEnhancementMode`]({{ site.enumerations }}grayscale-enhancement-mode.html) Enumeration items.
-
-**Default value**
-
-`[EnumGrayscaleEnhancementMode.GEM_GENERAL, EnumGrayscaleEnhancementMode.GEM_SKIP, EnumGrayscaleEnhancementMode.GEM_SKIP, EnumGrayscaleEnhancementMode.GEM_SKIP, EnumGrayscaleEnhancementMode.GEM_SKIP, EnumGrayscaleEnhancementMode.GEM_SKIP, EnumGrayscaleEnhancementMode.GEM_SKIP, EnumGrayscaleEnhancementMode.GEM_SKIP]`
-
-**Remarks**
- The array index represents the priority of the item. The smaller index is, the higher priority is.
-
-
-
-### textureDetectionModes
-
-Sets the mode and priority for texture detection.
-
-```java
-int[] textureDetectionModes
-```
-
-**Value Range**
-
-Each array item can be any one of the [`EnumTextureDetectionMode`]({{ site.enumerations }}texture-detection-mode.html) Enumeration items.
-
-**Default value**
-
-`[EnumTextureDetectionMode.TDM_GENERAL_WIDTH_CONCENTRATION, EnumTextureDetectionMode.TDM_SKIP, EnumTextureDetectionMode.TDM_SKIP, EnumTextureDetectionMode.TDM_SKIP, EnumTextureDetectionMode.TDM_SKIP, EnumTextureDetectionMode.TDM_SKIP, EnumTextureDetectionMode.TDM_SKIP, EnumTextureDetectionMode.TDM_SKIP]`
-
-**Remarks**
-
-The array index represents the priority of the item. The smaller index is, the higher priority is.
diff --git a/programming-old/android/api-reference/dlr-license-verification-listener.md b/programming-old/android/api-reference/dlr-license-verification-listener.md
deleted file mode 100644
index edc0ef1..0000000
--- a/programming-old/android/api-reference/dlr-license-verification-listener.md
+++ /dev/null
@@ -1,55 +0,0 @@
----
-layout: default-layout
-title: DLRLicenseVerificationListener - Dynamsoft Label Recognizer Android API Reference
-description: This page shows the DLRLicenseVerificationListener Interface of Dynamsoft Label Recognizer for Android SDK.
-keywords: DLRLicenseVerificationListener, Android
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/android/api-reference/dlr-license-verification-listener.html
----
-
-
-# DLRLicenseVerificationListener
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v2.2.20.
-
-A delegate to handle callback when Dynamsoft License Server returns.
-
-```java
-interface com.dynamsoft.dlr.DLRLicenseVerificationListener
-```
-
-## Methods
-
-| Method | Description |
-|----------------------|-------------|
-| [`DLRLicenseVerificationCallback`](#dlrlicenseverificationcallback) | The callback of Dynamsoft License Server.|
-
-
-
-### DLRLicenseVerificationCallback
-
-The callback of Dynamsoft License Server.
-
-```java
-void DLRLicenseVerificationCallback(boolean isSuccess, Exception error);
-```
-
-**Parameters**
-
-`isSuccess`: Whether the license verification was successful.
-`error`: The error message from dynamsoft license server.
-
-**Code Snippet**
-
-```java
-LabelRecognizer.initLicense("t0260NwAAAHV***************", new DLRLicenseVerificationListener() {
- @Override
- public void DLRLicenseVerificationCallback(boolean b, Exception e) {
- if (!b && e != null) {
- e.printStackTrace();
- }
- }
-}
-```
diff --git a/programming-old/android/api-reference/dlr-line-result.md b/programming-old/android/api-reference/dlr-line-result.md
deleted file mode 100644
index 5b8aa91..0000000
--- a/programming-old/android/api-reference/dlr-line-result.md
+++ /dev/null
@@ -1,92 +0,0 @@
----
-layout: default-layout
-title: DLRLineResult - Dynamsoft Label Recognizer Android Class
-description: This page shows the DLRLineResult struct of Dynamsoft Label Recognizer for Android Language.
-keywords: DLRLineResult, struct, android
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/android/api-reference/dlr-line-result.html
----
-
-
-# DLRLineResult
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v2.2.20.
-
-Stores the line result.
-
-```java
-class com.dynamsoft.dlr.DLRLineResult
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`lineSpecificationName`](#linespecificationname) | *String* |
-| [`text`](#text) | *String* |
-| [`characterModelName`](#charactermodelname) | *String* |
-| [`location`](#location) | [`Quadrilateral`](quadrilateral.md) |
-| [`confidence`](#confidence) | *int* |
-| [`characterResults`](#characterresults) | [`DLRCharacterResult[]`](dlr-character-result.md) |
-
-
-
-### lineSpecificationName
-
-The name of the line specification used to recognize current line result.
-
-```java
-String lineSpecificationName
-```
-
-
-
-### text
-
-The recognized text, ends by '\0'.
-
-```java
-String text
-```
-
-
-
-### characterModelName
-
-The character model used to recognize the text.
-
-```java
-String characterModelName
-```
-
-
-
-### location
-
-The location of current line.
-
-```java
-com.dynamsoft.core.Quadrilateral location
-```
-
-
-
-### confidence
-
-The confidence of the result. It ranges from 0 to 100.
-
-```java
-int confidence
-```
-
-
-
-### characterResults
-
-The character results array.
-
-```java
-DLRCharacterResult[] characterResults
-```
diff --git a/programming-old/android/api-reference/dlr-line-specification.md b/programming-old/android/api-reference/dlr-line-specification.md
deleted file mode 100644
index ab0985d..0000000
--- a/programming-old/android/api-reference/dlr-line-specification.md
+++ /dev/null
@@ -1,71 +0,0 @@
----
-layout: default-layout
-title: DLRLineSpecification Struct - Dynamsoft Label Recognizer Android API Reference
-description: This page shows the DLRLineSpecification Struct of Dynamsoft Label Recognizer for Android SDK.
-keywords: DLRLineSpecification, Android
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/android/api-reference/dlr-line-specification.html
----
-
-
-# DLRLineSpecification
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v2.2.20.
-
-Stores the settings of text line.
-
-```java
-class com.dynamsoft.dlr.DLRLineSpecification
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`grayscaleEnhancementModes`](#grayscaleenhancementmodes) | *int\[\]* |
-| [`binarizationModes`](#binarizationmodes) | *int\[\]* |
-
-
-
-### grayscaleEnhancementModes
-
-Sets the mode and priority for grayscale image preprocessing algorithms.
-
-```java
-int[] grayscaleEnhancementModes
-```
-
-**Value Range**
-
-Each array item can be any one of the [`EnumGrayscaleEnhancementMode`]({{ site.enumerations }}grayscale-enhancement-mode.html) Enumeration items.
-
-**Default value**
-
-`[EnumGrayscaleEnhancementMode.GEM_GENERAL, EnumGrayscaleEnhancementMode.GEM_SKIP, EnumGrayscaleEnhancementMode.GEM_SKIP, EnumGrayscaleEnhancementMode.GEM_SKIP, EnumGrayscaleEnhancementMode.GEM_SKIP, EnumGrayscaleEnhancementMode.GEM_SKIP, EnumGrayscaleEnhancementMode.GEM_SKIP, EnumGrayscaleEnhancementMode.GEM_SKIP]`
-
-**Remarks**
-
-The array index represents the priority of the item. The smaller index is, the higher priority is.
-
-
-
-### binarizationModes
-Sets the mode and priority for binarization.
-
-```java
-int[] binarizationModes
-```
-
-**Value Range**
-
-Each array item can be any one of the [`EnumBinarizationMode`]({{ site.enumerations }}binarization-mode.html) Enumeration items.
-
-**Default value**
-
-`[EnumBinarizationMode.BM_LOCAL_BLOCK, EnumBinarizationMode.BM_SKIP, EnumBinarizationMode.BM_SKIP, EnumBinarizationMode.BM_SKIP, EnumBinarizationMode.BM_SKIP, EnumBinarizationMode.BM_SKIP, EnumBinarizationMode.BM_SKIP, EnumBinarizationMode.BM_SKIP]`
-
-**Remarks**
-
-The array index represents the priority of the item. The smaller index is, the higher priority is.
diff --git a/programming-old/android/api-reference/dlr-reference-region.md b/programming-old/android/api-reference/dlr-reference-region.md
deleted file mode 100644
index ec9702d..0000000
--- a/programming-old/android/api-reference/dlr-reference-region.md
+++ /dev/null
@@ -1,184 +0,0 @@
----
-layout: default-layout
-title: DLRReferenceRegion - Dynamsoft Label Recognizer Android Class
-description: This page shows the DLRReferenceRegion struct of Dynamsoft Label Recognizer for Android Language.
-keywords: DLRReferenceRegion, struct, android
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/android/api-reference/dlr-reference-region.html
----
-
-
-# DLRReferenceRegion
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v2.2.20.
-
-Stores the reference region information.
-
-```java
-class com.dynamsoft.dlr.DLRReferenceRegion
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`localizationSourceType`](#localizationsourcetype) | [`EnumLocalizationSourceType`]({{ site.enumerations }}localization-source-type.html) |
-| [`location`](#location) | [`Quadrilateral`](quadrilateral.md) |
-| [`regionMeasuredByPercentage`](#regionmeasuredbypercentage) | *int* |
-| [`regionPredetectionModesIndex`](#regionpredetectionmodesindex) | *int* |
-| [`barcodeFormatIds`](#barcodeformatids) | *int* |
-| [`barcodeFormatIds_2`](#barcodeformatids_2) | *int* |
-| [`barcodeTextRegExPattern`](#barcodetextregexpattern) | *String* |
-
-
-
-### localizationSourceType
-
-The source type used to localize the reference region(s).
-
-```java
-int localizationSourceType
-```
-
-**Value Range**
-
-A value of [`EnumLocalizationSourceType`]({{ site.enumerations }}localization-source-type.html) Enumeration items.
-
-**Default value**
-
-`LST_MANUAL_SPECIFICATION`
-
-**Remarks**
-
-
-
-### location
-
-Four vertexes in a clockwise direction of a quadrilateral. Index 0 represents the left-most vertex.
-
-```java
-com.dynamsoft.core.Quadrilateral location
-```
-
-**Remarks**
-
-It works only when [localizationSourceType](#localizationsourcetype) is setting to LST_MANUAL_SPECIFICATION.
-The library will localize reference region(s) based on the quadrilateral set by current setting.
-
-
-
-### regionMeasuredByPercentage
-
-Whether or not to use percentage to measure the coordinate.
-
-```java
-int regionMeasuredByPercentage
-```
-
-**Value Range**
-
-[0, 1]
-
-**Default value**
-
-1
-
-**Remarks**
-
-It works only when [localizationSourceType](#localizationsourcetype) is setting to LST_MANUAL_SPECIFICATION.
-
-- 0: not by percentage
-- 1: by percentage
-
-When it's set to 1, the values of points indicate percentage (from 0 to 100); Otherwise, they indicate coordinates in pixel.
-
-
-
-### regionPredetectionModesIndex
-
-The index of a specific region predetection mode in the regionPredetectionModes parameter.
-
-```java
-int regionPredetectionModesIndex
-```
-
-**Value Range**
-
-[-1, 0x7fffffff]
-
-**Default value**
-
--1
-
-**Remarks**
-
-It works only when [localizationSourceType](#localizationsourcetype) is setting to LST_PREDETECTED_REGION.
- The library will localize reference region(s) based on the detected regions from the specified region predetection mode.
- -1: all region predetection modes in the regionPredetectionModes parameter
-
-
-
-### barcodeFormatIds
-
-The formats of the barcode in BarcodeFormat group 1.
-
-```java
-int barcodeFormatIds
-```
-
-**Value Range**
-
-A combined value of [`EnumBarcodeFormat`]({{ site.enumerations }}barcode-format.html) Enumeration items
-
-**Default value**
-
-BF_ALL
-
-**Remarks**
-
-Barcode formats in BarcodeFormat group 1 can be combined.
-
-- It works only when [localizationSourceType](#localizationsourcetype) is setting to LST_BARCODE.
-- The library will localize reference region(s) based on the barcodes whose format meets current setting.
-
-
-
-### barcodeFormatIds_2
-
-The formats of the barcode in BarcodeFormat group 2.
-
-```java
-int barcodeFormatIds_2
-```
-
-**Value Range**
-
-A combined value of [`EnumBarcodeFormat_2`]({{ site.enumerations }}barcode-format-2.html) Enumeration items
-
-**Default value**
-
-BF2_NULL
-
-**Remarks**
-
-Barcode formats in BarcodeFormat group 2 can be combined.
-
-- It works only when [localizationSourceType](#localizationsourcetype) is setting to LST_BARCODE.
-- The library will localize reference region(s) based on the barcodes whose format meets current setting.
-
-
-
-### barcodeTextRegExPattern
-
-The regular express pattern of barcode text.
-
-```java
-String barcodeTextRegExPattern
-```
-
-**Remarks**
-
-It works only when [localizationSourceType](#localizationsourcetype) is setting to LST_BARCODE.
- The library will localize reference region(s) based on the barcodes whose text meets current setting.
diff --git a/programming-old/android/api-reference/dlr-result.md b/programming-old/android/api-reference/dlr-result.md
deleted file mode 100644
index 7fe436b..0000000
--- a/programming-old/android/api-reference/dlr-result.md
+++ /dev/null
@@ -1,92 +0,0 @@
----
-layout: default-layout
-title: DLRResult - Dynamsoft Label Recognizer Android Class
-description: This page shows the DLRResult struct of Dynamsoft Label Recognizer for Android Language.
-keywords: DLRResult, struct, android
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/android/api-reference/dlr-result.html
----
-
-
-# DLRResult
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v2.2.20.
-
-Stores the recognized result.
-
-```java
-class com.dynamsoft.dlr.DLRResult
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`referenceRegionName`](#referenceregionname) | *String* |
-| [`textAreaName`](#textareaname) | *String* |
-| [`location`](#location) | [`Quadrilateral`](quadrilateral.md) |
-| [`confidence`](#confidence) | *int* |
-| [`lineResults`](#lineresults) | [`DLRLineResult[]`](dlr-line-result.md) |
-| [`pageNumber`](#pagenumber) | *int* |
-
-
-
-### referenceRegionName
-
-The name of the reference region which is used to recognize the current result.
-
-```java
-String referenceRegionName
-```
-
-
-
-### textAreaName
-
-The name of the text area used to recognize current result.
-
-```java
-String textAreaName
-```
-
-
-
-### location
-
-The location of current recognized text.
-
-```java
-com.dynamsoft.core.Quadrilateral location
-```
-
-
-
-### confidence
-
-The confidence of the result. It ranges from 0 to 100.
-
-```java
-int confidence
-```
-
-
-
-### lineResults
-
-The line results array.
-
-```java
-DLRLineResult[] lineResults
-```
-
-
-
-### pageNumber
-
-The page number the result located in. The index is 0-based.
-
-```java
-int pageNumber
-```
diff --git a/programming-old/android/api-reference/dlr-runtime-settings-v2.0.md b/programming-old/android/api-reference/dlr-runtime-settings-v2.0.md
deleted file mode 100644
index afcc6f1..0000000
--- a/programming-old/android/api-reference/dlr-runtime-settings-v2.0.md
+++ /dev/null
@@ -1,142 +0,0 @@
----
-layout: default-layout
-title: DLRRuntimeSettings - Dynamsoft Label Recognizer Android Class
-description: This page shows the DLRRuntimeSettings struct of Dynamsoft Label Recognizer for Android Language.
-keywords: DLRRuntimeSettings, struct, android
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/android/api-reference/dlr-runtime-settings-v2.0.html
----
-
-
-# DLRRuntimeSettings
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v2.2.20.
-
-Defines a struct to configure the text recognizer runtime settings. These settings control the text recognition process.
-
-```java
-class com.dynamsoft.dlr.DLRRuntimeSettings
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`maxThreadCount`](#maxthreadcount) | *int* |
-| [`characterModelName`](#charactermodelname) | *String* |
-| [`referenceRegion`](#referenceregion) | [`DLRReferenceRegion`](dlr-reference-region.md) |
-| [`textArea`](#textarea) | [`Quadrilateral`](quadrilateral.md) |
-| [`dictionaryPath`](#dictionarypath) | *String* |
-| [`dictionaryCorrectionThreshold`](#dictionarycorrectionthreshold) | [`DLRDictionaryCorrectionThreshold`](dlr-dictionary-correction-threshold.md) |
-| [`binarizationModes`](#binarizationmodes) | *int\[\]* |
-| [`furtherModes`](#furthermodes) | [`DLRFurtherModes`](dlr-further-modes.md)|
-
-
-
-### maxThreadCount
-
-Sets the number of threads the algorithm will use to recognize label.
-
-```java
-int maxThreadCount
-```
-
-**Value Range**
-
-[1, 4]
-
-**Default value**
-
-4
-
-**Remarks**
-
-To keep a balance between speed and quality, the library concurrently runs four different threads by default.
-
-
-
-### characterModelName
-
-The name of the CharacterModel.
-
-```java
-String characterModelName
-```
-
-
-
-### referenceRegion
-
-Sets the reference region to search for text.
-
-```java
-DLRReferenceRegion referenceRegion
-```
-
-
-
-### textArea
-
-Sets the text area relative to the reference region.
-
-```java
-com.dynamsoft.core.Quadrilateral textArea
-```
-
-
-
-### dictionaryPath
-
-Sets the path of the dictionary file.
-
-```java
-String dictionaryPath
-```
-
-
-
-### dictionaryCorrectionThreshold
-
-Sets the threshold of dictionary error correction.
-
-```java
-DLRDictionaryCorrectionThreshold dictionaryCorrectionThreshold
-```
-
-
-
-### binarizationModes
-
-Sets the mode and priority for binarization.
-
-```java
-int[] binarizationModes
-```
-
-**Value Range**
-
-Each array item can be any one of the [`EnumBinarizationMode`]({{ site.enumerations }}binarization-mode.html) Enumeration items.
-
-**Default value**
-
-`[EnumBinarizationMode.BM_LOCAL_BLOCK, EnumBinarizationMode.BM_SKIP, EnumBinarizationMode.BM_SKIP, EnumBinarizationMode.BM_SKIP, EnumBinarizationMode.BM_SKIP, EnumBinarizationMode.BM_SKIP, EnumBinarizationMode.BM_SKIP, EnumBinarizationMode.BM_SKIP]`
-
-**Remarks**
-
-The array index represents the priority of the item. The smaller index is, the higher priority is.
-
-
-
-### furtherModes
-
-Sets further modes.
-
-```java
-DLRFurtherModes furtherModes
-```
-
-**See also**
-
-[`DLRFurtherModes`](dlr-further-modes.md)
diff --git a/programming-old/android/api-reference/dlr-runtime-settings.md b/programming-old/android/api-reference/dlr-runtime-settings.md
deleted file mode 100644
index 0b9b84f..0000000
--- a/programming-old/android/api-reference/dlr-runtime-settings.md
+++ /dev/null
@@ -1,165 +0,0 @@
----
-layout: default-layout
-title: DLRRuntimeSettings - Dynamsoft Label Recognizer Android Class
-description: This page shows the DLRRuntimeSettings struct of Dynamsoft Label Recognizer for Android Language.
-keywords: DLRRuntimeSettings, struct, android
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/android/api-reference/dlr-runtime-settings.html
----
-
-
-# DLRRuntimeSettings
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v2.2.20.
-
-Defines a struct to configure the text recognizer runtime settings. These settings control the text recognition process.
-
-```java
-class com.dynamsoft.dlr.DLRRuntimeSettings
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`maxThreadCount`](#maxthreadcount) | *int* |
-| [`characterModelName`](#charactermodelname) | *String* |
-| [`referenceRegion`](#referenceregion) | [`DLRReferenceRegion`](dlr-reference-region.md) |
-| [`textArea`](#textarea) | [`Quadrilateral`](quadrilateral.md) |
-| [`dictionaryPath`](#dictionarypath) | *String* |
-| [`dictionaryCorrectionThreshold`](#dictionarycorrectionthreshold) | [`DLRDictionaryCorrectionThreshold`](dlr-dictionary-correction-threshold.md) |
-| [`binarizationModes`](#binarizationmodes) | *int\[\]* |
-| [`furtherModes`](#furthermodes) | [`DLRFurtherModes`](dlr-further-modes.md)|
-| [`timeout`](#timeout) | *int* |
-
-
-
-### maxThreadCount
-
-Sets the number of threads the algorithm will use to recognize label.
-
-```java
-int maxThreadCount
-```
-
-**Value Range**
-
-[1, 4]
-
-- **Default value**
-
-4
-
-- **Remarks**
-
-To keep a balance between speed and quality, the library concurrently runs four different threads by default.
-
-
-
-### characterModelName
-
-The name of the CharacterModel.
-
-```java
-String characterModelName
-```
-
-
-
-### referenceRegion
-
-Sets the reference region to search for text.
-
-```java
-DLRReferenceRegion referenceRegion
-```
-
-
-
-### textArea
-
-Sets the text area relative to the reference region.
-
-```java
-com.dynamsoft.core.Quadrilateral textArea
-```
-
-
-
-### dictionaryPath
-
-Sets the path of the dictionary file.
-
-```java
-String dictionaryPath
-```
-
-
-
-### dictionaryCorrectionThreshold
-
-Sets the threshold of dictionary error correction.
-
-```java
-DLRDictionaryCorrectionThreshold dictionaryCorrectionThreshold
-```
-
-
-
-### binarizationModes
-
-Sets the mode and priority for binarization.
-
-```java
-int[] binarizationModes
-```
-
-**Value Range**
-
-Each array item can be any one of the [`EnumBinarizationMode`]({{ site.enumerations }}binarization-mode.html) Enumeration items.
-
-- **Default value**
-
-`[EnumBinarizationMode.BM_LOCAL_BLOCK, EnumBinarizationMode.BM_SKIP, EnumBinarizationMode.BM_SKIP, EnumBinarizationMode.BM_SKIP, EnumBinarizationMode.BM_SKIP, EnumBinarizationMode.BM_SKIP, EnumBinarizationMode.BM_SKIP, EnumBinarizationMode.BM_SKIP]`
-
-- **Remarks**
-
-The array index represents the priority of the item. The smaller index is, the higher priority is.
-
-
-
-### furtherModes
-
-Sets further modes.
-
-```java
-DLRFurtherModes furtherModes
-```
-
-**See also**
-
-[`DLRFurtherModes`](dlr-further-modes.md)
-
-
-
-### timeout
-
-Sets the maximum amount of time (in milliseconds) that should be spent searching for labels per page. It does not include the time taken to load/decode an image (TIFF, PNG, etc.) from disk into memory.
-
-```java
-int timeout
-```
-
-**Value Range**
-
-[0, 0x7fffffff]
-
-**Default Value**
-
-10000
-
-**Remarks**
-
-If you want to stop searching for labels after a certain period of time, you can use this parameter to set a timeout.
diff --git a/programming-old/android/api-reference/dm-lts-connection-parameters.md b/programming-old/android/api-reference/dm-lts-connection-parameters.md
deleted file mode 100644
index 934cff5..0000000
--- a/programming-old/android/api-reference/dm-lts-connection-parameters.md
+++ /dev/null
@@ -1,240 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Core Android Class - DMDLSConnectionParameters
-description: This page shows the DMDLSConnectionParameters Class of Dynamsoft Core for Android Language.
-keywords: DMDLSConnectionParameters, android
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/android/api-reference/dm-lts-connection-parameters.html
----
-
-
-# DMDLSConnectionParameters
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v2.2.20.
-
-Defines a struct to configure the parameters to connect to license tracking server.
-
-```java
-class com.dynamsoft.core.DMDLSConnectionParameters
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`mainServerURL`](#mainserverurl) | *String* |
-| [`standbyServerURL`](#standbyserverurl) | *String* |
-| [`handshakeCode`](#handshakecode) | *String* |
-| [`sessionPassword`](#sessionpassword) | *String* |
-| [`chargeWay`](#chargeway) | *int* |
-| [`UUIDGenerationMethod`](#uuidgenerationmethod) | *int* |
-| [`maxBufferDays`](#maxbufferdays) | *int* |
-| [`limitedLicenseModules`](#limitedlicensemodules) | *List* |
-| [`organizationID`](#organizationid) | *String* |
-| [`products`](#products) | *int* |
-
-
-
-### mainServerURL
-
-The URL of the license tracking server.
-
-```java
-String mainServerURL
-```
-
-**Value Range**
-
-Any string value.
-
-**Default value**
-
-""
-
-**Remarks**
-
-If you choose "Dynamsoft-hosting", then no need to change the value of MainServerURL and StandbyServerURL. When both are set to null (default value), it will connect to Dynamsoft's license tracking servers for online verification.
-
-
-
-### standbyServerURL
-
-The URL of the standby license tracking server.
-
-```java
-String standbyServerURL
-```
-
-**Value Range**
-
-Any string value.
-
-**Default value**
-
-""
-
-**Remarks**
-
-If you choose "Dynamsoft-hosting", then no need to change the value of MainServerURL and StandbyServerURL. When both are set to null (default value), it will connect to Dynamsoft's license tracking servers for online verification.
-
-
-
-### handshakeCode
-
-The handshake code.
-
-```java
-String handshakeCode
-```
-
-**Value Range**
-
-Any string value.
-
-**Default value**
-
-""
-
-
-
-### sessionPassword
-
-The session password of the handshake code set in license tracking server.
-
-```java
-String sessionPassword
-```
-
-**Value Range**
-
-Any string value.
-
-**Default value**
-
-""
-
-
-
-### chargeWay
-
-Sets the charge way.
-
-```java
-int chargeWay
-```
-
-**Value Range**
-
-A value of [`EnumDMChargeWay`]({{ site.enumerations }}dm-charge-way.html) Enumeration items.
-
-**Default value**
-
-`DM_CW_AUTO`
-
-**See also**
-
-[`EnumDMChargeWay`]({{ site.enumerations }}dm-charge-way.html)
-
-
-
-### UUIDGenerationMethod
-
-Sets the method to generate UUID.
-
-```java
-int UUIDGenerationMethod
-```
-
-**Value Range**
-
-A value of [`EnumDMUUIDGenerationMethod`]({{ site.enumerations }}dm-uuid-generation-method.html) Enumeration items.
-
-**Default value**
-
-`DM_UUIDGM_RANDOM`
-
-**See also**
-
-[`EnumDMUUIDGenerationMethod`]({{ site.enumerations }}dm-uuid-generation-method.html)
-
-
-
-### maxBufferDays
-
-Sets the max days to buffer the license info.
-
-```java
-int maxBufferDays
-```
-
-**Value Range**
-
-[0,0x7fffffff]
-
-**Default value**
-
-7
-
-
-
-### limitedLicenseModules
-
-Sets the license modules to use.
-
-```java
-List limitedLicenseModules
-```
-
-**Value Range**
-
-A list of the [`EnumDMLicenseModule`]({{ site.enumerations }}dm-license-module.html) Enumeration items.
-
-**Default value**
-
-null
-
-**See also**
-
-[`EnumDMLicenseModule`]({{ site.enumerations }}dm-license-module.html)
-
-
-
-### organizationID
-
-The organization ID got from Dynamsoft.
-
-```java
-String organizationID
-```
-
-**Value Range**
-
-Any string value.
-
-**Default value**
-
-""
-
-
-
-### products
-
-Sets the products to get the license for. Product values can be combined.
-
-```java
-int products
-```
-
-**Value Range**
-
-A combine value of [`EnumProduct`]({{ site.enumerations }}product.html) Enumeration items.
-
-**Default value**
-
-`PROD_ALL`
-
-**See also**
-
-[`EnumProduct`]({{ site.enumerations }}product.html)
diff --git a/programming-old/android/api-reference/image-data-v2.0.md b/programming-old/android/api-reference/image-data-v2.0.md
deleted file mode 100644
index 76e4fa4..0000000
--- a/programming-old/android/api-reference/image-data-v2.0.md
+++ /dev/null
@@ -1,81 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Core Android Class - ImageData
-description: This page shows the ImageData Class of Dynamsoft Core for Android Language.
-keywords: ImageData, android
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/android/api-reference/image-data-v2.0.html
----
-
-
-# ImageData
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v2.2.20.
-
-Stores the image data.
-
-```java
-class com.dynamsoft.core.ImageData
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`bytes`](#bytes) | *byte[]* |
-| [`width`](#width) | *int* |
-| [`height`](#height) | *int* |
-| [`stride`](#stride) | *int* |
-| [`format`](#format) | [`EnumImagePixelFormat`]({{ site.enumerations }}image-pixel-format.html) |
-
-
-
-### bytes
-
-The image data content in a byte array.
-
-```java
-byte[] bytes
-```
-
-
-
-### width
-
-The width of the image in pixels.
-
-```java
-int width
-```
-
-
-
-### height
-
-The height of the image in pixels.
-
-```java
-int height
-```
-
-
-
-### stride
-
-The stride (or scan width) of the image.
-
-```java
-int stride
-```
-
-
-
-### format
-
-The image pixel format used in the image byte array.
-
-```java
-ImagePixelFormat format
-```
diff --git a/programming-old/android/api-reference/image-data.md b/programming-old/android/api-reference/image-data.md
deleted file mode 100644
index 1c2b03b..0000000
--- a/programming-old/android/api-reference/image-data.md
+++ /dev/null
@@ -1,104 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Core Android Class - ImageData
-description: This page shows the ImageData Class of Dynamsoft Core for Android Language.
-keywords: ImageData, android
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/android/api-reference/image-data.html
----
-
-# ImageData
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v2.2.20.
-
-Stores the image data.
-
-```java
-class com.dynamsoft.core.ImageData
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`bytes`](#bytes) | *byte[]* |
-| [`width`](#width) | *int* |
-| [`height`](#height) | *int* |
-| [`stride`](#stride) | *int* |
-| [`format`](#format) | [`EnumImagePixelFormat`]({{ site.enumerations }}image-pixel-format.html?src=android) |
-| [`orientation`](#orientation) | *int* |
-
-## Methods
-
-| Methods | Type |
-| [`toBitmap`](#tobitmap) | Convert `ImageData` to `android.graphics.Bitmap`. |
-
-
-
-### bytes
-
-The image data content in a byte array.
-
-```java
-byte[] bytes
-```
-
-
-
-### width
-
-The width of the image in pixels.
-
-```java
-int width
-```
-
-
-
-### height
-
-The height of the image in pixels.
-
-```java
-int height
-```
-
-
-
-### stride
-
-The stride (or scan width) of the image.
-
-```java
-int stride
-```
-
-
-
-### format
-
-The image pixel format used in the image byte array.
-
-```java
-EnumImagePixelFormat format
-```
-
-
-
-### orientation
-
-The orientation of the image.
-
-```java
-int orientation
-```
-
-### toBitmap
-
-Convert `ImageData` to `android.graphics.Bitmap`.
-
-```java
-Bitmap toBitmap() throws CoreException
-```
diff --git a/programming-old/android/api-reference/image-source.md b/programming-old/android/api-reference/image-source.md
deleted file mode 100644
index 4298cda..0000000
--- a/programming-old/android/api-reference/image-source.md
+++ /dev/null
@@ -1,33 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Core Android Interface - ImageSource
-description: This page shows the ImageSource Interface of Dynamsoft Core for Android Language.
-keywords: ImageSource, android
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/android/api-reference/image-source.html
----
-
-# ImageSource
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v2.2.20.
-
-Interface for producers of images. It can be implemented by programmers to support other image sources, such as external cameras or image filesets.
-
-```java
-inteface com.dynamsoft.core.ImageSource
-```
-
-## Methods
-
-| Methods | Type |
-| [`getImage`](#getimage) | Convert `ImageData` to `android.graphics.Bitmap`. |
-
-### getImage
-
-Gets an image from an instance of subclass of `ImageSource`.
-
-```java
-ImageData getImage()
-```
diff --git a/programming-old/android/api-reference/index-v1.0.md b/programming-old/android/api-reference/index-v1.0.md
deleted file mode 100644
index 5a8c491..0000000
--- a/programming-old/android/api-reference/index-v1.0.md
+++ /dev/null
@@ -1,96 +0,0 @@
----
-layout: default-layout
-title: Main Page - Dynamsoft Label Recognition Android API Reference
-description: This is the main page of Dynamsoft Label Recognition for Android API Reference.
-keywords: api reference, android
-needAutoGenerateSidebar: false
-permalink: /programming/android/api-reference/index-v1.0.html
----
-
-# Dynamsoft Label Recognition - Android API Reference
-
-- [`LabelRecognition` Methods](#labelrecognition-methods)
-- [Classes](#classes)
-- [Enumerations](#enumerations)
-- [Error Code](#error-code)
-
-## LabelRecognition Methods
-
-### General
-
- | Method | Description |
- |----------------------|-------------|
- | [`getVersion`](label-recognition/general.md#getversion) | Returns the version number string for the SDK. |
-
-
-
-### Initialization
-
- | Method | Description |
- |----------------------|-------------|
- | [`LabelRecognition`](label-recognition/initialization.md#labelrecognition) | Initialization of `LabelRecognition` object.|
- | [`destroy`](label-recognition/initialization.md#destroy) | Destroys an instance of `LabelRecognition` object.|
- | [`initLicense`](label-recognition/initialization.md#initlicense) | Sets the license and activates the SDK. |
- | [`initLicenseFromLTS`](label-recognition/initialization.md#initlicensefromlts) | Initializes the label recognition license and connects to the specified server for online verification. |
-
-
-
-### Setting
-
- | Method | Description |
- |----------------------|-------------|
- | [`getRuntimeSettings`](label-recognition/settings.md#getruntimesettings) | Gets the current settings and saves it into a struct. |
- | [`updateRuntimeSettings`](label-recognition/settings.md#updateruntimesettings) | Updates runtime settings with a given struct. |
- | [`resetRuntimeSettings`](label-recognition/settings.md#resetruntimesettings) | Resets the runtime settings. |
- | [`appendSettingsFromString`](label-recognition/settings.md#appendsettingsfromstring) | Appends LabelRecognitionParameter settings in a string to the SDK object. |
- | [`outputSettingsToFile`](label-recognition/settings.md#outputsettingstofile) | Outputs LabelRecognitionParameter settings into a file (JSON file). |
- | [`clearAppendedSettings`](label-recognition/settings.md#clearappendedsettings) | Clear all appended LabelRecognitionParameter settings in the SDK object. |
- | [`updateReferenceRegionFromBarcodeResults`](label-recognition/settings.md#updatereferenceregionfrombarcoderesults) | Updates reference region which is defined with source type DLR_LST_BARCODE. |
- | [`getModeArgument`](label-recognition/settings.md#getmodeargument) | Get argument value for the specified mode parameter. |
- | [`setModeArgument`](label-recognition/settings.md#setmodeargument) | Set argument value for the specified mode parameter. |
- | [`appendCharacterModelBuffer`](label-recognition/settings.md#appendcharactermodelbuffer) | Appends CharacterModel to the SDK object. |
- | [`eraseAllCharacterModels`](label-recognition/settings.md#appendcharactermodelbuffer) | Erases all CharacterModels the SDK object currently loaded. |
- | [`eraseCharacterModelByName`](label-recognition/settings.md#appendcharactermodelbuffer) | Erases a name specified CharacterModel from the SDK object. |
-
-
-
-### Recognizing
-
- | Method | Description |
- |----------------------|-------------|
- | [`recognizeByBuffer`](label-recognition/recognizing.md#recognizebybuffer) | Recognizes text from memory buffer containing image pixels in defined format. |
- | [`recognizeByFile`](label-recognition/recognizing.md#recognizebyfile) | Recognizes text from a specified image file. |
-
-
-
-## [Classes](class/index.md)
-
-- [`DMLTSConnectionParameters`](dm-lts-connection-parameters.md)
-- [`DLRCharacterResult`](class/dlr-character-result.md)
-- [`DLRImageData`](class/dlr-image-data.md)
-- [`DLRLineResult`](class/dlr-line-result.md)
-- [`DLRPoint`](class/dlr-point.md)
-- [`DLRQuadrilateral`](class/dlr-quadrilateral.md)
-- [`DLRReferenceRegion`](class/dlr-reference-region.md)
-- [`DLRResult`](class/dlr-result.md)
-- [`DLRRuntimeSettings`](class/dlr-runtime-settings.md)
-- [`LabelRecognitionException`](class/label-recognition-exception.md)
-
-
-
-## [Enumerations]({{ site.enumerations }})
-
-- [`EnumDLRBarcodeFormat`]({{ site.enumerations }}other-enums.html#dlrbarcodeformat)
-- [`EnumDLRBarcodeFormat_2`]({{ site.enumerations }}other-enums.html#dlrbarcodeformat_2)
-- [`EnumDLRBinarizationMode`]({{ site.enumerations }}parameter-mode-enums.html#dlrbinarizationmode)
-- [`EnumDLRGrayscaleTransformationMode`]({{ site.enumerations }}parameter-mode-enums.html#dlrgrayscaletransformationmode)
-- [`EnumDLRImagePixelFormat`]({{ site.enumerations }}other-enums.html#dlrimagepixelformat)
-- [`EnumDLRLocalizationSourceType`]({{ site.enumerations }}other-enums.html#dlrlocalizationsourcetype)
-- [`EnumDLRRegionPredetectionMode`]({{ site.enumerations }}parameter-mode-enums.html#dlrregionpredetectionmode)
-- [`EnumDMChargeWay`]({{ site.enumerations }}other-enums.html#dm_chargeway)
-- [`EnumDMLicenseModule`]({{ site.enumerations }}other-enums.html#dm_licensemodule)
-- [`EnumDMUUIDGenerationMethod`]({{ site.enumerations }}other-enums.html#dm_uuidgenerationmethod)
-
-
-
-## [Error Code]({{ site.enumerations }}error-code.html)
diff --git a/programming-old/android/api-reference/index-v1.2.1.md b/programming-old/android/api-reference/index-v1.2.1.md
deleted file mode 100644
index d6c4e33..0000000
--- a/programming-old/android/api-reference/index-v1.2.1.md
+++ /dev/null
@@ -1,98 +0,0 @@
----
-layout: default-layout
-title: Main Page - Dynamsoft Label Recognition Android API Reference
-description: This is the main page of Dynamsoft Label Recognition for Android API Reference.
-keywords: api reference, android
-needAutoGenerateSidebar: false
-permalink: /programming/android/api-reference/index-v1.2.1.html
----
-
-# Dynamsoft Label Recognition - Android API Reference
-
-- [`LabelRecognition` Methods](#labelrecognition-methods)
-- [Classes](#classes)
-- [Enumerations](#enumerations)
-- [Error Code](#error-code)
-
-## LabelRecognition Methods
-
-### General
-
- | Method | Description |
- |----------------------|-------------|
- | [`getVersion`](label-recognition/general.md#getversion) | Returns the version number string for the SDK. |
-
-
-
-### Initialization
-
- | Method | Description |
- |----------------------|-------------|
- | [`LabelRecognition`](label-recognition/initialization.md#labelrecognition) | Initialization of `LabelRecognition` object.|
- | [`destroy`](label-recognition/initialization.md#destroy) | Destroys an instance of `LabelRecognition` object.|
- | [`initLicense`](label-recognition/initialization.md#initlicense) | Sets the license and activates the SDK. |
- | [`initLicenseFromLTS`](label-recognition/initialization.md#initlicensefromlts) | Initializes the label recognition license and connects to the specified server for online verification. |
-
-
-
-### Setting
-
- | Method | Description |
- |----------------------|-------------|
- | [`getRuntimeSettings`](label-recognition/settings.md#getruntimesettings) | Gets the current settings and saves it into a struct. |
- | [`updateRuntimeSettings`](label-recognition/settings.md#updateruntimesettings) | Updates runtime settings with a given struct. |
- | [`resetRuntimeSettings`](label-recognition/settings.md#resetruntimesettings) | Resets the runtime settings. |
- | [`appendSettingsFromString`](label-recognition/settings.md#appendsettingsfromstring) | Appends LabelRecognitionParameter settings in a string to the SDK object. |
- | [`appendSettingsFromFile`](label-recognition/settings.md#appendsettingsfromFile) | Appends LabelRecognitionParameter settings from a file to the SDK object. |
- | [`outputSettingsToFile`](label-recognition/settings.md#outputsettingstofile) | Outputs LabelRecognitionParameter settings into a file (JSON file). |
- | [`clearAppendedSettings`](label-recognition/settings.md#clearappendedsettings) | Clear all appended LabelRecognitionParameter settings in the SDK object. |
- | [`updateReferenceRegionFromBarcodeResults`](label-recognition/settings.md#updatereferenceregionfrombarcoderesults) | Updates reference region which is defined with source type DLR_LST_BARCODE. |
- | [`getModeArgument`](label-recognition/settings.md#getmodeargument) | Get argument value for the specified mode parameter. |
- | [`setModeArgument`](label-recognition/settings.md#setmodeargument) | Set argument value for the specified mode parameter. |
- | [`appendCharacterModelBuffer`](label-recognition/settings.md#appendcharactermodelbuffer) | Appends CharacterModel to the SDK object. |
- | [`eraseAllCharacterModels`](label-recognition/settings.md#appendcharactermodelbuffer) | Erases all CharacterModels the SDK object currently loaded. |
- | [`eraseCharacterModelByName`](label-recognition/settings.md#appendcharactermodelbuffer) | Erases a name specified CharacterModel from the SDK object. |
-
-
-
-### Recognizing
-
- | Method | Description |
- |----------------------|-------------|
- | [`recognizeByBuffer`](label-recognition/recognizing.md#recognizebybuffer) | Recognizes text from memory buffer containing image pixels in defined format. |
- | [`recognizeByFile`](label-recognition/recognizing.md#recognizebyfile) | Recognizes text from a specified image file. |
-
-
-
-## Classes
-
-- [`DMLTSConnectionParameters`](dm-lts-connection-parameters.md)
-- [`DLRCharacterResult`](class/dlr-character-result.md)
-- [`DLRImageData`](class/dlr-image-data.md)
-- [`DLRLineResult`](class/dlr-line-result.md)
-- [`DLRPoint`](class/dlr-point.md)
-- [`DLRQuadrilateral`](class/dlr-quadrilateral.md)
-- [`DLRReferenceRegion`](class/dlr-reference-region.md)
-- [`DLRResult`](class/dlr-result.md)
-- [`DLRRuntimeSettings`](class/dlr-runtime-settings.md)
-- [`LabelRecognitionException`](class/label-recognition-exception.md)
-
-
-
-## Enumerations
-
-- [`EnumDLRBarcodeFormat`]({{ site.enumerations }}other-enums.html#dlrbarcodeformat)
-- [`EnumDLRBarcodeFormat_2`]({{ site.enumerations }}other-enums.html#dlrbarcodeformat_2)
-- [`EnumDLRBinarizationMode`]({{ site.enumerations }}parameter-mode-enums.html#dlrbinarizationmode)
-- [`EnumDLRGrayscaleTransformationMode`]({{ site.enumerations }}parameter-mode-enums.html#dlrgrayscaletransformationmode)
-- [`EnumDLRImagePixelFormat`]({{ site.enumerations }}other-enums.html#dlrimagepixelformat)
-- [`EnumDLRLocalizationSourceType`]({{ site.enumerations }}other-enums.html#dlrlocalizationsourcetype)
-- [`EnumDLRRegionPredetectionMode`]({{ site.enumerations }}parameter-mode-enums.html#dlrregionpredetectionmode)
-- [`EnumDMChargeWay`]({{ site.enumerations }}other-enums.html#dm_chargeway)
-- [`EnumDMLicenseModule`]({{ site.enumerations }}other-enums.html#dm_licensemodule)
-- [`EnumDMUUIDGenerationMethod`]({{ site.enumerations }}other-enums.html#dm_uuidgenerationmethod)
-- [`EnumProduct`]({{ site.enumerations }}other-enums.html#product)
-
-
-
-## [Error Code]({{ site.enumerations }}error-code.html)
diff --git a/programming-old/android/api-reference/index-v1.2.md b/programming-old/android/api-reference/index-v1.2.md
deleted file mode 100644
index 9093834..0000000
--- a/programming-old/android/api-reference/index-v1.2.md
+++ /dev/null
@@ -1,97 +0,0 @@
----
-layout: default-layout
-title: Main Page - Dynamsoft Label Recognition Android API Reference
-description: This is the main page of Dynamsoft Label Recognition for Android API Reference.
-keywords: api reference, android
-needAutoGenerateSidebar: false
-permalink: /programming/android/api-reference/index-v1.2.html
----
-
-# Dynamsoft Label Recognition - Android API Reference
-
-- [`LabelRecognition` Methods](#labelrecognition-methods)
-- [Classes](#classes)
-- [Enumerations](#enumerations)
-- [Error Code](#error-code)
-
-## LabelRecognition Methods
-
-### General
-
- | Method | Description |
- |----------------------|-------------|
- | [`getVersion`](label-recognition/general.md#getversion) | Returns the version number string for the SDK. |
-
-
-
-### Initialization
-
- | Method | Description |
- |----------------------|-------------|
- | [`LabelRecognition`](label-recognition/initialization.md#labelrecognition) | Initialization of `LabelRecognition` object.|
- | [`destroy`](label-recognition/initialization.md#destroy) | Destroys an instance of `LabelRecognition` object.|
- | [`initLicense`](label-recognition/initialization.md#initlicense) | Sets the license and activates the SDK. |
- | [`initLicenseFromLTS`](label-recognition/initialization.md#initlicensefromlts) | Initializes the label recognition license and connects to the specified server for online verification. |
-
-
-
-### Setting
-
- | Method | Description |
- |----------------------|-------------|
- | [`getRuntimeSettings`](label-recognition/settings.md#getruntimesettings) | Gets the current settings and saves it into a struct. |
- | [`updateRuntimeSettings`](label-recognition/settings.md#updateruntimesettings) | Updates runtime settings with a given struct. |
- | [`resetRuntimeSettings`](label-recognition/settings.md#resetruntimesettings) | Resets the runtime settings. |
- | [`appendSettingsFromString`](label-recognition/settings.md#appendsettingsfromstring) | Appends LabelRecognitionParameter settings in a string to the SDK object. |
- | [`appendSettingsFromFile`](label-recognition/settings.md#appendsettingsfromFile) | Appends LabelRecognitionParameter settings from a file to the SDK object. |
- | [`outputSettingsToFile`](label-recognition/settings.md#outputsettingstofile) | Outputs LabelRecognitionParameter settings into a file (JSON file). |
- | [`clearAppendedSettings`](label-recognition/settings.md#clearappendedsettings) | Clear all appended LabelRecognitionParameter settings in the SDK object. |
- | [`updateReferenceRegionFromBarcodeResults`](label-recognition/settings.md#updatereferenceregionfrombarcoderesults) | Updates reference region which is defined with source type DLR_LST_BARCODE. |
- | [`getModeArgument`](label-recognition/settings.md#getmodeargument) | Get argument value for the specified mode parameter. |
- | [`setModeArgument`](label-recognition/settings.md#setmodeargument) | Set argument value for the specified mode parameter. |
- | [`appendCharacterModelBuffer`](label-recognition/settings.md#appendcharactermodelbuffer) | Appends CharacterModel to the SDK object. |
- | [`eraseAllCharacterModels`](label-recognition/settings.md#appendcharactermodelbuffer) | Erases all CharacterModels the SDK object currently loaded. |
- | [`eraseCharacterModelByName`](label-recognition/settings.md#appendcharactermodelbuffer) | Erases a name specified CharacterModel from the SDK object. |
-
-
-
-### Recognizing
-
- | Method | Description |
- |----------------------|-------------|
- | [`recognizeByBuffer`](label-recognition/recognizing.md#recognizebybuffer) | Recognizes text from memory buffer containing image pixels in defined format. |
- | [`recognizeByFile`](label-recognition/recognizing.md#recognizebyfile) | Recognizes text from a specified image file. |
-
-
-
-## Classes
-
-- [`DMLTSConnectionParameters`](dm-lts-connection-parameters.md)
-- [`DLRCharacterResult`](class/dlr-character-result.md)
-- [`DLRImageData`](class/dlr-image-data.md)
-- [`DLRLineResult`](class/dlr-line-result.md)
-- [`DLRPoint`](class/dlr-point.md)
-- [`DLRQuadrilateral`](class/dlr-quadrilateral.md)
-- [`DLRReferenceRegion`](class/dlr-reference-region.md)
-- [`DLRResult`](class/dlr-result.md)
-- [`DLRRuntimeSettings`](class/dlr-runtime-settings.md)
-- [`LabelRecognitionException`](class/label-recognition-exception.md)
-
-
-
-## Enumerations
-
-- [`EnumDLRBarcodeFormat`]({{ site.enumerations }}other-enums.html#dlrbarcodeformat)
-- [`EnumDLRBarcodeFormat_2`]({{ site.enumerations }}other-enums.html#dlrbarcodeformat_2)
-- [`EnumDLRBinarizationMode`]({{ site.enumerations }}parameter-mode-enums.html#dlrbinarizationmode)
-- [`EnumDLRGrayscaleTransformationMode`]({{ site.enumerations }}parameter-mode-enums.html#dlrgrayscaletransformationmode)
-- [`EnumDLRImagePixelFormat`]({{ site.enumerations }}other-enums.html#dlrimagepixelformat)
-- [`EnumDLRLocalizationSourceType`]({{ site.enumerations }}other-enums.html#dlrlocalizationsourcetype)
-- [`EnumDLRRegionPredetectionMode`]({{ site.enumerations }}parameter-mode-enums.html#dlrregionpredetectionmode)
-- [`EnumDMChargeWay`]({{ site.enumerations }}other-enums.html#dm_chargeway)
-- [`EnumDMLicenseModule`]({{ site.enumerations }}other-enums.html#dm_licensemodule)
-- [`EnumDMUUIDGenerationMethod`]({{ site.enumerations }}other-enums.html#dm_uuidgenerationmethod)
-
-
-
-## [Error Code]({{ site.enumerations }}error-code.html)
diff --git a/programming-old/android/api-reference/index-v2.2.20.md b/programming-old/android/api-reference/index-v2.2.20.md
deleted file mode 100644
index c42ae38..0000000
--- a/programming-old/android/api-reference/index-v2.2.20.md
+++ /dev/null
@@ -1,53 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Label Recognizer Android API Reference
-description: This page shows Android API Reference of Dynamsoft Label Recognizer.
-keywords: api reference, android
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /programming/android/api-reference/index-v2.2.20.html
----
-
-
-# API Reference - Android
-
-## Primary Classes
-
-- [LabelRecognizer](label-recognizer.md)
-
-## Auxiliary Classes
-
-- [Point](point.md)
-- [Quadrilateral](quadrilateral.md)
-- [ImageData](image-data.md)
-- [BarcodeResult](barcode-result.md)
-- [LabelRecognizerException](label-recognizer-exception.md)
-- [DLRRuntimeSettings](dlr-runtime-settings.md)
-- [DLRReferenceRegion](dlr-reference-region.md)
-- [DLRResult](dlr-result.md)
-- [DLRLineResult](dlr-line-result.md)
-- [DLRCharacterResult](dlr-character-result.md)
-- [DLRDictionaryCorrectionThreshold](dlr-dictionary-correction-threshold.md)
-- [DLRFurtherModes](dlr-further-modes.md)
-- [DLRLicenseVerificationListener](dlr-license-verification-listener.md)
-
-## Enumerations
-
-- [EnumRegionPredetectionMode]({{ site.enumerations }}region-predetection-mode.html)
-- [EnumColourConversionMode]({{ site.enumerations }}colour-conversion-mode.html)
-- [EnumGrayscaleTransformationMode]({{ site.enumerations }}grayscale-transformation-mode.html)
-- [EnumGrayscaleEnhancementMode]({{ site.enumerations }}grayscale-enhancement-mode.html)
-- [EnumBinarizationMode]({{ site.enumerations }}binarization-mode.html)
-- [EnumTextureDetectionMode]({{ site.enumerations }}texture-detection-mode.html)
-- [EnumBarcodeFormat]({{ site.enumerations }}barcode-format.html)
-- [EnumBarcodeFormat_2]({{ site.enumerations }}barcode-format-2.html)
-- [EnumImagePixelFormat]({{ site.enumerations }}image-pixel-format.html)
-- [EnumDMChargeWay]({{ site.enumerations }}dm-charge-way.html)
-- [EnumDMLicenseModule]({{ site.enumerations }}dm-license-module.html)
-- [EnumDMUUIDGenerationMethod]({{ site.enumerations }}dm-uuid-generation-method.html)
-- [EnumProduct]({{ site.enumerations }}product.html)
-- [EnumLocalizationSourceType]({{ site.enumerations }}localization-source-type.html)
-
-## Error Code
-
-- [Error Code]({{ site.enumerations }}error-code.html)
diff --git a/programming-old/android/api-reference/label-recognition/general.md b/programming-old/android/api-reference/label-recognition/general.md
deleted file mode 100644
index 410f486..0000000
--- a/programming-old/android/api-reference/label-recognition/general.md
+++ /dev/null
@@ -1,37 +0,0 @@
----
-layout: default-layout
-title: General - Dynamsoft Label Recognition Android API Reference
-description: This is the general functions of Dynamsoft Label Recognition for Android API Reference.
-keywords: api reference, android
-needAutoGenerateSidebar: true
-permalink: /programming/android/api-reference/label-recognition/general.html
----
-
-# Android API Reference - General
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v1.x.
-
-| Method | Description |
-|----------------------|-------------|
-| [`getVersion`](#getversion) | Returns the version number string for the SDK. |
-
-
-## getVersion
-
-Get version information of SDK.
-
-```java
-String com.dynamsoft.dlr.LabelRecognition.getVersion()
-```
-
-**Return Value**
-
-The version information string.
-
-**Code Snippet**
-
-```java
-LabelRecognition recognizer = new LabelRecognition();
-String versionInfo = recognizer.getVersion();
-recognizer.destroy();
-```
diff --git a/programming-old/android/api-reference/label-recognition/index-v1.0.md b/programming-old/android/api-reference/label-recognition/index-v1.0.md
deleted file mode 100644
index abd119d..0000000
--- a/programming-old/android/api-reference/label-recognition/index-v1.0.md
+++ /dev/null
@@ -1,61 +0,0 @@
----
-layout: default-layout
-title: LabelRecognition Class - Dynamsoft Label Recognition Android API Reference
-description: This page shows LabelRecognition methods of Dynamsoft Label Recognition for Android API Reference.
-keywords: api reference, android
-needAutoGenerateSidebar: false
-permalink: /programming/android/api-reference/label-recognition/index-v1.0.html
----
-
-
-# Dynamsoft Label Recognition - CLabelRecognition Class
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v1.x.
-
-## General
-
- | Method | Description |
- |----------------------|-------------|
- | [`getVersion`](general.md#getversion) | Returns the version number string for the SDK. |
-
-
-
-## Initialization
-
- | Method | Description |
- |----------------------|-------------|
- | [`LabelRecognition`](initialization.md#labelrecognition) | Initialization of `LabelRecognition` object.|
- | [`destroy`](initialization.md#destroy) | Destroys an instance of `LabelRecognition` object.|
- | [`initLicense`](initialization.md#initlicense) | Sets the license and activates the SDK. |
- | [`initLicenseFromLTS`](initialization.md#initlicensefromlts) | Initializes the label recognition license and connects to the specified server for online verification. |
-
-
-
-## Setting
-
- | Method | Description |
- |----------------------|-------------|
- | [`getRuntimeSettings`](settings.md#getruntimesettings) | Gets the current settings and saves it into a struct. |
- | [`updateRuntimeSettings`](settings.md#updateruntimesettings) | Updates runtime settings with a given struct. |
- | [`resetRuntimeSettings`](settings.md#resetruntimesettings) | Resets the runtime settings. |
- | [`appendSettingsFromString`](settings.md#appendsettingsfromstring) | Appends LabelRecognitionParameter settings in a string to the SDK object. |
- | [`outputSettingsToFile`](settings.md#outputsettingstofile) | Outputs LabelRecognitionParameter settings into a file (JSON file). |
- | [`clearAppendedSettings`](settings.md#clearappendedsettings) | Clear all appended LabelRecognitionParameter settings in the SDK object. |
- | [`updateReferenceRegionFromBarcodeResults`](settings.md#updatereferenceregionfrombarcoderesults) | Updates reference region which is defined with source type DLR_LST_BARCODE. |
- | [`getModeArgument`](settings.md#getmodeargument) | Get argument value for the specified mode parameter. |
- | [`setModeArgument`](settings.md#setmodeargument) | Set argument value for the specified mode parameter. |
- | [`appendCharacterModelBuffer`](settings.md#appendcharactermodelbuffer) | Appends CharacterModel to the SDK object. |
- | [`eraseAllCharacterModels`](settings.md#appendcharactermodelbuffer) | Erases all CharacterModels the SDK object currently loaded. |
- | [`eraseCharacterModelByName`](settings.md#appendcharactermodelbuffer) | Erases a name specified CharacterModel from the SDK object. |
-
-
-
-## Recognizing
-
- | Method | Description |
- |----------------------|-------------|
- | [`recognizeByBuffer`](recognizing.md#recognizebybuffer) | Recognizes text from memory buffer containing image pixels in defined format. |
- | [`recognizeByFile`](recognizing.md#recognizebyfile) | Recognizes text from a specified image file. |
-
-
-
\ No newline at end of file
diff --git a/programming-old/android/api-reference/label-recognition/index.md b/programming-old/android/api-reference/label-recognition/index.md
deleted file mode 100644
index f0e8669..0000000
--- a/programming-old/android/api-reference/label-recognition/index.md
+++ /dev/null
@@ -1,62 +0,0 @@
----
-layout: default-layout
-title: LabelRecognition Class - Dynamsoft Label Recognition Android API Reference
-description: This page shows LabelRecognition methods of Dynamsoft Label Recognition for Android API Reference.
-keywords: api reference, android
-needAutoGenerateSidebar: false
-permalink: /programming/android/api-reference/label-recognition/index.html
----
-
-
-# Dynamsoft Label Recognition - CLabelRecognition Class
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v1.x.
-
-## General
-
- | Method | Description |
- |----------------------|-------------|
- | [`getVersion`](general.md#getversion) | Returns the version number string for the SDK. |
-
-
-
-## Initialization
-
- | Method | Description |
- |----------------------|-------------|
- | [`LabelRecognition`](initialization.md#labelrecognition) | Initialization of `LabelRecognition` object.|
- | [`destroy`](initialization.md#destroy) | Destroys an instance of `LabelRecognition` object.|
- | [`initLicense`](initialization.md#initlicense) | Sets the license and activates the SDK. |
- | [`initLicenseFromLTS`](initialization.md#initlicensefromlts) | Initializes the label recognition license and connects to the specified server for online verification. |
-
-
-
-## Setting
-
- | Method | Description |
- |----------------------|-------------|
- | [`getRuntimeSettings`](settings.md#getruntimesettings) | Gets the current settings and saves it into a struct. |
- | [`updateRuntimeSettings`](settings.md#updateruntimesettings) | Updates runtime settings with a given struct. |
- | [`resetRuntimeSettings`](settings.md#resetruntimesettings) | Resets the runtime settings. |
- | [`appendSettingsFromString`](settings.md#appendsettingsfromstring) | Appends LabelRecognitionParameter settings in a string to the SDK object. |
- | [`appendSettingsFromFile`](settings.md#appendsettingsfromFile) | Appends LabelRecognitionParameter settings from a file to the SDK object. |
- | [`outputSettingsToFile`](settings.md#outputsettingstofile) | Outputs LabelRecognitionParameter settings into a file (JSON file). |
- | [`clearAppendedSettings`](settings.md#clearappendedsettings) | Clear all appended LabelRecognitionParameter settings in the SDK object. |
- | [`updateReferenceRegionFromBarcodeResults`](settings.md#updatereferenceregionfrombarcoderesults) | Updates reference region which is defined with source type DLR_LST_BARCODE. |
- | [`getModeArgument`](settings.md#getmodeargument) | Get argument value for the specified mode parameter. |
- | [`setModeArgument`](settings.md#setmodeargument) | Set argument value for the specified mode parameter. |
- | [`appendCharacterModelBuffer`](settings.md#appendcharactermodelbuffer) | Appends CharacterModel to the SDK object. |
- | [`eraseAllCharacterModels`](settings.md#appendcharactermodelbuffer) | Erases all CharacterModels the SDK object currently loaded. |
- | [`eraseCharacterModelByName`](settings.md#appendcharactermodelbuffer) | Erases a name specified CharacterModel from the SDK object. |
-
-
-
-## Recognizing
-
- | Method | Description |
- |----------------------|-------------|
- | [`recognizeByBuffer`](recognizing.md#recognizebybuffer) | Recognizes text from memory buffer containing image pixels in defined format. |
- | [`recognizeByFile`](recognizing.md#recognizebyfile) | Recognizes text from a specified image file. |
-
-
-
\ No newline at end of file
diff --git a/programming-old/android/api-reference/label-recognition/initialization.md b/programming-old/android/api-reference/label-recognition/initialization.md
deleted file mode 100644
index d27fdb5..0000000
--- a/programming-old/android/api-reference/label-recognition/initialization.md
+++ /dev/null
@@ -1,125 +0,0 @@
----
-layout: default-layout
-title: Initialization - Dynamsoft Label Recognition Android API Reference
-description: This is the initialization functions of Dynamsoft Label Recognition for Android API Reference.
-keywords: api reference, android
-needAutoGenerateSidebar: true
-permalink: /programming/android/api-reference/label-recognition/initialization.html
----
-
-# Android API Reference - Initialization
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v1.x.
-
-| Method | Description |
-|----------------------|-------------|
-| [`LabelRecognition`](#labelrecognition-initialization) | Initialization of `LabelRecognition` object.|
-| [`destroy`](#destroy) | Destroys an instance of `LabelRecognition` object.|
-| [`initLicense`](#initlicense) | Sets product key and activates the SDK. |
-| [`initLicenseFromLTS`](#initlicensefromlts) | Initializes the label recognition license and connects to the specified server for online verification. |
-
- ---
-
-## LabelRecognition Initialization
-
-Initialization of `LabelRecognition` object without a license.
-
-```java
-com.dynamsoft.dlr.LabelRecognition.LabelRecognition() throws LabelRecognitionException
-```
-
-Initialization of `LabelRecognition` with a license.
-
-```java
-com.dynamsoft.dlr.LabelRecognition.LabelRecognition(String license) throws Exception
-```
-
-**Exceptions**
-
-[`LabelRecognitionException`](../class/label-recognition-exception.md)
-
-
-**Remarks**
-
-If you initialize DynamsoftLabelRecognition without a license, the recognition results may be unreliable.
-
-**Code Snippet**
-
-```java
-LabelRecognition recognizer = new LabelRecognition();
-```
-
-```java
-LabelRecognition recognizer = new LabelRecognition("t0260NwAAAHV***************");
-```
-
-
-
-
-## Destroy
-
-```java
-void com.dynamsoft.dlr.LabelRecognition.destroy()
-```
-
-**Code Snippet**
-
-```java
-LabelRecognition recognizer = new LabelRecognition("t0260NwAAAHV***************");
-recognizer.destroy();
-```
-
-
-## initLicense
-Sets product key and activate the SDK.
-
-```java
-void com.dynamsoft.dlr.LabelRecognition.initLicense(String license) throws LabelRecognitionException
-```
-
-**Parameters**
-`license`: The product keys.
-
-**Exceptions**
-
-[`LabelRecognitionException`](../class/label-recognition-exception.md)
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-recognizer.initLicense("t0260NwAAAHV***************");
-recognizer.destroy();
-```
-
-
-
-
-## initLicenseFromLTS
-Initializes the label recognition license and connects to the specified server for online verification.
-
-```java
-void com.dynamsoft.dlr.LabelRecognition.initLicenseFromLTS(DMLTSConnectionParameters ltsInfo, DLRLTSLicenseVerificationListener listener)
-```
-
-**Parameters**
-- `ltsInfo`: The struct DMLTSConnectionParameters with customized settings.
-- `listener`: The delegate to handle callback when license server returns.
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-DMLTSConnectionParameters info = new DMLTSConnectionParameters();
-info.handShakeCode = "*****-hs-****";
-info.sessionPassword = "******";
-recognizer.initLicenseFromLTS(info, new DLRLTSLicenseVerificationListener() {
- @Override
- public void LTSLicenseVerificationCallback(boolean b, Exception e) {
- if (!b && e != null) {
- e.printStackTrace();
- }
- }
-}
-```
-
-
-
diff --git a/programming-old/android/api-reference/label-recognition/recognizing-v1.0.md b/programming-old/android/api-reference/label-recognition/recognizing-v1.0.md
deleted file mode 100644
index 011e834..0000000
--- a/programming-old/android/api-reference/label-recognition/recognizing-v1.0.md
+++ /dev/null
@@ -1,79 +0,0 @@
----
-layout: default-layout
-title: Recognizing - Dynamsoft Label Recognition Android API Reference
-description: This is the recognizing functions of Dynamsoft Label Recognition for Android API Reference.
-keywords: api reference, android
-needAutoGenerateSidebar: true
-permalink: /programming/android/api-reference/label-recognition/recognizing-v1.0.html
----
-
-# Android API Reference - Recognizing
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v1.x.
-
-| Method | Description |
-|----------------------|-------------|
- | [`recognizeByBuffer`](#recognizebybuffer) | Recognizes text from memory buffer containing image pixels in defined format. |
- | [`recognizeByFile`](#recognizebyfile) | Recognizes text from a specified image file. |
-
----
-
-## recognizeByBuffer
-Recognizes text from the memory buffer containing image pixels in defined format.
-
-```java
-DLRResult[] com.dynamsoft.dlr.LabelRecognition.recognizeByBuffer(DLRImageData imageData, String templateName) throws LabelRecognitionException
-```
-
-**Parameters**
-`[in] imageData` An object of DLRImageData that represents an image.
-`[in] templateName` The template name. A template name is the value of key LabelRecognitionParameter.Name defined in JSON formatted settings. If no template name is specified, current runtime settings will be used.
-
-**Return Value**
-All results recognized successfully.
-
-**Exceptions**
-
-[`LabelRecognitionException`](../class/label-recognition-exception.md)
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-recognizer.initLicense("t0260NwAAAHV***************");
-//Generate imageData from somewhere else
-DLRResult[] result = recognizer.recognizeByBuffer(imageData, "");
-recognizer.destroy();
-```
-
-
-
-
-## recognizeByFile
-Recognizes text from a specified image file.
-
-```java
-DLRResult[] com.dynamsoft.dlr.LabelRecognition.recognizeByFile (String fileName, String templateName) throws LabelRecognitionException
-```
-
-**Parameters**
-`fileName` A string defining the file name.
-`templateName` The template name. A template name is the value of key LabelRecognitionParameter.Name defined in JSON formatted settings. If no template name is specified, current runtime settings will be used.
-
-**Return Value**
-All results recognized successfully.
-
-**Exceptions**
-
-[`LabelRecognitionException`](../class/label-recognition-exception.md)
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-recognizer.initLicense("t0260NwAAAHV***************");
-DLRResult[] result = recognizer.recognizeByFile("full file path", "");
-recognizer.destroy();
-```
-
-
-
-
diff --git a/programming-old/android/api-reference/label-recognition/recognizing.md b/programming-old/android/api-reference/label-recognition/recognizing.md
deleted file mode 100644
index 27c9e77..0000000
--- a/programming-old/android/api-reference/label-recognition/recognizing.md
+++ /dev/null
@@ -1,99 +0,0 @@
----
-layout: default-layout
-title: Recognizing - Dynamsoft Label Recognition Android API Reference
-description: This is the recognizing functions of Dynamsoft Label Recognition for Android API Reference.
-keywords: api reference, android
-needAutoGenerateSidebar: true
-permalink: /programming/android/api-reference/label-recognition/recognizing.html
----
-
-# Android API Reference - Recognizing
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v1.x.
-
-| Method | Description |
-|----------------------|-------------|
- | [`recognizeByBuffer`](#recognizebybuffer) | Recognizes text from memory buffer containing image pixels in defined format. |
- | [`recognizeByFile`](#recognizebyfile) | Recognizes text from a specified image file. |
-
----
-
-## recognizeByBuffer
-Recognizes text from the memory buffer containing image pixels in defined format.
-
-```java
-DLRResult[] com.dynamsoft.dlr.LabelRecognition.recognizeByBuffer(DLRImageData imageData, String templateName) throws LabelRecognitionException
-```
-
-**Parameters**
-`[in] imageData` An object of DLRImageData that represents an image.
-`[in] templateName` The template name. A template name is the value of key LabelRecognitionParameter.Name defined in JSON formatted settings. If no template name is specified, current runtime settings will be used.
-
-**Return Value**
-All results recognized successfully.
-
-**Exceptions**
-
-[`LabelRecognitionException`](../class/label-recognition-exception.md)
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-DMLTSConnectionParameters parameters = new DMLTSConnectionParameters();
-parameters.organizationID = "200001";
-recognizer.initLicenseFromLTS(parameters, new DLRLTSLicenseVerificationListener() {
- @Override
- public void LTSLicenseVerificationCallback(boolean isSuccess, Exception error) {
- if (!isSuccess) {
- error.printStackTrace();
- }
- }
- });
-
-//Generate imageData from somewhere else
-DLRResult[] result = recognizer.recognizeByBuffer(imageData, "");
-recognizer.destroy();
-```
-
-
-
-
-## recognizeByFile
-Recognizes text from a specified image file.
-
-```java
-DLRResult[] com.dynamsoft.dlr.LabelRecognition.recognizeByFile (String fileName, String templateName) throws LabelRecognitionException
-```
-
-**Parameters**
-`fileName` A string defining the file name.
-`templateName` The template name. A template name is the value of key LabelRecognitionParameter.Name defined in JSON formatted settings. If no template name is specified, current runtime settings will be used.
-
-**Return Value**
-All results recognized successfully.
-
-**Exceptions**
-
-[`LabelRecognitionException`](../class/label-recognition-exception.md)
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-DMLTSConnectionParameters parameters = new DMLTSConnectionParameters();
-parameters.organizationID = "200001";
-recognizer.initLicenseFromLTS(parameters, new DLRLTSLicenseVerificationListener() {
- @Override
- public void LTSLicenseVerificationCallback(boolean isSuccess, Exception error) {
- if (!isSuccess) {
- error.printStackTrace();
- }
- }
- });
-
-DLRResult[] result = recognizer.recognizeByFile("full file path", "");
-recognizer.destroy();
-```
-
-
-
-
diff --git a/programming-old/android/api-reference/label-recognition/settings-v1.0.md b/programming-old/android/api-reference/label-recognition/settings-v1.0.md
deleted file mode 100644
index 47ba291..0000000
--- a/programming-old/android/api-reference/label-recognition/settings-v1.0.md
+++ /dev/null
@@ -1,358 +0,0 @@
----
-layout: default-layout
-title: Settings - Dynamsoft Label Recognition Android API Reference
-description: This is the settings functions of Dynamsoft Label Recognition for Android API Reference.
-keywords: api reference, android
-needAutoGenerateSidebar: true
-permalink: /programming/android/api-reference/label-recognition/settings-v1.0.html
----
-
-# Android API Reference - Settings
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v1.x.
-
-| Method | Description |
-|----------------------|-------------|
- | [`appendCharacterModelBuffer`](#appendcharactermodelbuffer) | Appends CharacterModel to the SDK object. |
- | [`appendSettingsFromString`](#appendsettingsfromstring) | Appends LabelRecognitionParameter settings in a string to the SDK object. |
- | [`clearAppendedSettings`](#clearappendedsettings) | Clears appended LabelRecognitionParameter settings. |
- | [`eraseAllCharacterModels`](#appendcharactermodelbuffer) | Erases all CharacterModels the SDK object currently loaded. |
- | [`eraseCharacterModelByName`](#appendcharactermodelbuffer) | Erases a name specified CharacterModel from the SDK object. |
- | [`getModeArgument`](#getmodeargument) | Get argument value for the specified mode parameter. |
- | [`getRuntimeSettings`](#getruntimesettings) | Gets the current settings and saves it into a class object. |
- | [`outputSettingsToFile`](#outputsettingstofile) | Outputs LabelRecognitionParameter settings into a file (JSON file). |
- | [`resetRuntimeSettings`](#resetruntimesettings) | Resets the runtime settings. |
- | [`setModeArgument`](#setmodeargument) | Set argument value for the specified mode parameter. |
- | [`updateReferenceRegionFromBarcodeResults`](#updatereferenceregionfrombarcoderesults) | Updates reference region which is defined with source type DLR_LST_BARCODE. |
- | [`updateRuntimeSettings`](#updateruntimesettings) | Updates runtime settings with a given class object. |
-
----
-
-## appendCharacterModelBuffer
-Appends CharacterModel to the SDK object.
-
-```java
-void com.dynamsoft.dlr.LabelRecognition.appendCharacterModelBuffer (String name, byte[] prototxtBuffer, byte[] txtBuffer, byte[] characterModelBuffer) throws LabelRecognitionException
-```
-
-**Parameters**
-`name` A unique name for the appended CharacterModel.
-`prototxtBuffer` The .prototxt file data of the CharacterModel in a byte array.
-`txtBuffer` The .txt file data of the CharacterModel in a byte array.
-`characterModelBuffer` The .caffemodel file data of the CharacterModel in a byte array.
-
-
-**Exceptions**
-[`LabelRecognitionException`](../class/label-recognition-exception.md)
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-recognizer.initLicense("t0260NwAAAHV***************");
-AssetManager manager = getAssets();
-InputStream isPrototxt = manager.open("CharacterModel/NumberLetter.prototxt");
-byte[] prototxt = new byte[isPrototxt.available()];
-isPrototxt.read(prototxt);
-isPrototxt.close();
-InputStream isCharacterModel = manager.open("CharacterModel/NumberLetter.caffemodel");
-byte[] characterModel = new byte[isCharacterModel.available()];
-isCharacterModel.read(characterModel);
-isCharacterModel.close();
-InputStream isTxt = manager.open("CharacterModel/NumberLetter.txt");
-byte[] txt = new byte[isTxt.available()];
-isTxt.read(txt);
-isTxt.close();
-recognizer.appendCharacterModelBuffer("NumberLetter", prototxt, txt, characterModel);
-recognizer.destroy();
-```
-
-
-
-
-## appendSettingsFromString
-Append a new template string to the current label recognition instance.
-
-```java
-void com.dynamsoft.dlr.LabelRecognition.appendSettingsFromString (String content) throws LabelRecognitionException
-```
-
-**Parameters**
-`content` A JSON string that represents the content of the settings.
-
-
-**Exceptions**
-
-[`LabelRecognitionException`](../class/label-recognition-exception.md)
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-recognizer.initLicense("t0260NwAAAHV***************");
-recognizer.appendSettingsFromString("{\"LabelRecognitionParameter\":{\"Name\":\"P1\", \"RegionPredetectionModes\":[{\"Mode\":\"DLR_RPM_GENERAL_HSV_CONTRAST\"}], \"ReferenceRegionNameArray\": [\"R1\"]},\"ReferenceRegion\":{\"Name\":\"R1\",\"Localization\":{\"SourceType\":\"DLR_LST_PREDETECTED_REGION\",\"RegionPredetectionModesIndex\":0},\"TextAreaNameArray\":[\"T1\"]},\"TextArea\":{\"Name\":\"T1\",\"CharacterModelName\":\"Number\"}}");
-recognizer.destroy();
-```
-
-
-
-
-## clearAppendedSettings
-Clear all appended parameter settings of the current label recognition instance.
-
-```java
-void com.dynamsoft.dlr.LabelRecognition.clearAppendedSettings () throws LabelRecognitionException
-```
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-recognizer.initLicense("t0260NwAAAHV***************");
-recognizer.clearAppendedSettings();
-```
-
-
-
-
-## eraseAllCharacterModels
-Erases all CharacterModels the SDK object currently loaded.
-
-```java
-void com.dynamsoft.dlr.LabelRecognition.eraseAllCharacterModels () throws LabelRecognitionException
-```
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-recognizer.initLicense("t0260NwAAAHV***************");
-recognizer.eraseAllCharacterModels();
-```
-
-
-
-
-## eraseCharacterModelByName
-Clear all appended parameter settings of the current label recognition instance.
-
-```java
-void com.dynamsoft.dlr.LabelRecognition.eraseCharacterModelByName(String name) throws LabelRecognitionException
-```
-
-**Parameters**
-`name` A unique name representing the CharacterModel to erase.
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-recognizer.initLicense("t0260NwAAAHV***************");
-recognizer.eraseCharacterModelByName("NumberLetter");
-```
-
-
-
-
-## getModeArgument
-
-Get argument value for the specified mode parameter.
-
-```java
-String com.dynamsoft.dlr.LabelRecognition.getModeArgument (String modesName, int index, String argumentName) throws LabelRecognitionException
-```
-
-**Parameters**
-- `modesName`: The mode parameter name to get argument.
-- `index`: The array index of mode parameter to indicate a specific mode.
-- `argumentName`: The name of the argument to get.
-
-**Return Value**
-the optional argument for a specified mode in Modes parameters.
-
-**Exceptions**
-[`LabelRecognitionException`](../class/label-recognition-exception.md)
-
-#### Remark
-Check follow link for available modes and arguments:
-- [`RegionPredetectionModes`]({{ site.parameters-reference }}label-recognition-parameter/region-predetection-modes.html#regionpredetectionmodes)
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-recognizer.initLicense("t0260NwAAAHV***************");
-DLRRuntimeSettings settings = recognizer.getRuntimeSettings();
-settings.regionPredetectionModes[0] = EnumRegionPredetectionMode.DLR_RPM_GENERAL_RGB_CONTRAST;
-recognizer.updateRuntimeSettings(settings);
-recognizer.setModeArgument("RegionPredetectionModes", 0, "AspectRatioRange", "100");
-String argumentValue = recognizer.getModeArgument("RegionPredetectionModes", 0, "AspectRatioRange");
-recognizer.destroy();
-```
-
-
-
-
-## getRuntimeSettings
-Get current settings and save them into a [`DLRRuntimeSettings`](../class/dlr-runtime-settings.html) class object.
-
-```java
-PublicRuntimeSettings com.dynamsoft.dlr.LabelRecognition.getRuntimeSettings () throws LabelRecognitionException
-```
-
-**Return Value**
-
-The class object of template settings.
-
-**Exceptions**
-
-[`LabelRecognitionException`](../class/label-recognition-exception.md)
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-recognizer.initLicense("t0260NwAAAHV***************");
-DLRRuntimeSettings settings = recognizer.getRuntimeSettings();
-recognizer.destroy();
-```
-
-
-
-## outputSettingsToFile
-Outputs runtime settings and save them into a settings file (JSON file).
-
-```java
-void com.dynamsoft.dlr.LabelRecognition.outputSettingsToFile (String filePath, String templateName) throws LabelRecognitionException
-```
-
-**Parameters**
-`filePath` The path of the output file which stores current settings.
-`templateName` A unique name for declaring current runtime settings.
-
-
-**Exceptions**
-
-[`LabelRecognitionException`](../class/label-recognition-exception.md)
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-recognizer.initLicense("t0260NwAAAHV***************");
-recognizer.appendSettingsFromString("{\"LabelRecognitionParameter\":{\"Name\":\"P1\", \"RegionPredetectionModes\":[{\"Mode\":\"DLR_RPM_GENERAL_HSV_CONTRAST\"}], \"ReferenceRegionNameArray\": [\"R1\"]},\"ReferenceRegion\":{\"Name\":\"R1\",\"Localization\":{\"SourceType\":\"DLR_LST_PREDETECTED_REGION\",\"RegionPredetectionModesIndex\":0},\"TextAreaNameArray\":[\"T1\"]},\"TextArea\":{\"Name\":\"T1\",\"CharacterModelName\":\"Number\"}}");
-recognizer.outputSettingsToFile("your saving file path", "currentRuntimeSettings");
-recognizer.destroy();
-```
-
-
-
-
-## resetRuntimeSettings
-Reset all runtime settings to default values.
-
-```java
-void com.dynamsoft.dlr.LabelRecognition.resetRuntimeSettings () throws LabelRecognitionException
-```
-
-**Exceptions**
-[`LabelRecognitionException`](../class/label-recognition-exception.md)
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-recognizer.initLicense("t0260NwAAAHV***************");
-DLRRuntimeSettings settings = recognizer.getRuntimeSettings();
-settings.linesCount = 1;
-recognizer.updateRuntimeSettings(settings);
-recognizer.resetRuntimeSettings();
-recognizer.destroy();
-```
-
-
-
-
-
-## setModeArgument
-
-Set argument value for the specified mode parameter.
-
-
-```java
-void com.dynamsoft.dlr.LabelRecognition.setModeArgument (String modesName, int index, String argumentName, String argumentValue) throws LabelRecognitionException
-```
-**Parameters**
-- `modesName`: The mode parameter name to set argument.
-- `index`: The array index of mode parameter to indicate a specific mode.
-- `argumentName`: The name of the argument to set.
-- `argumentValue`: The value of the argument to set.
-
-**Exceptions**
-[`LabelRecognitionException`](../class/label-recognition-exception.md)
-
-
-#### Remark
-Check follow link for available modes and arguments:
-- [`RegionPredetectionModes`]({{ site.parameters-reference }}label-recognition-parameter/region-predetection-modes.html#regionpredetectionmodes)
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-recognizer.initLicense("t0260NwAAAHV***************");
-DLRRuntimeSettings settings = recognizer.getRuntimeSettings();
-settings.regionPredetectionModes[0] = EnumRegionPredetectionMode.DLR_RPM_GENERAL_RGB_CONTRAST;
-recognizer.updateRuntimeSettings(settings);
-recognizer.setModeArgument("RegionPredetectionModes", 0, "AspectRatioRange", "100");
-recognizer.destroy();
-```
-
-
-
-
-## updateReferenceRegionFromBarcodeResults
-Updates reference region which is defined with source type DLR_LST_BARCODE.
-
-```java
-void com.dynamsoft.dlr.LabelRecognition.updateReferenceRegionFromBarcodeResults (TextResult[] barcodeResults, String templateName) throws LabelRecognitionException
-```
-
-**Parameters**
-`barcodeResults` The barcode results used to localize reference region.
-`templateName` The template name. A template name is the value of key LabelRecognitionParameter.Name defined in JSON formatted settings. If no template name is specified, current runtime settings will be used.
-
-
-**Exceptions**
-
-[`LabelRecognitionException`](../class/label-recognition-exception.md)
-
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-recognizer.initLicense("t0260NwAAAHV***************");
-recognizer.appendSettingsFromString("{\"LabelRecognitionParameter\":{\"Name\":\"P1\", \"RegionPredetectionModes\":[{\"Mode\":\"DLR_RPM_GENERAL_HSV_CONTRAST\"}], \"ReferenceRegionNameArray\": [\"R1\"]},\"ReferenceRegion\":{\"Name\":\"R1\",\"Localization\":{\"SourceType\":\"DLR_LST_BARCODE\"},\"TextAreaNameArray\":[\"T1\"]},\"TextArea\":{\"Name\":\"T1\",\"CharacterModelName\":\"Number\"}}");
-//Get barcodeResults from Dynamsoft Barcode Reader SDK
-recognizer.updateReferenceRegionFromBarcodeResults(barcodeResults, "P1");
-recognizer.destroy();
-```
-
-
-
-## updateRuntimeSettings
-Update runtime settings with a given [`DLRRuntimeSettings`](../class/dlr-runtime-settings.html) class object.
-
-```java
-void com.dynamsoft.dlr.LabelRecognition.updateRuntimeSettings (DLRRuntimeSettings settings) throws LabelRecognitionException
-```
-
-**Parameters**
-`settings` The class object of template settings.
-
-**Exceptions**
-
-[`LabelRecognitionException`](../class/label-recognition-exception.md)
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-recognizer.initLicense("t0260NwAAAHV***************");
-DLRRuntimeSettings settings = recognizer.getRuntimeSettings();
-settings.linesCount = 1;
-recognizer.updateRuntimeSettings(settings);
-recognizer.destroy();
-```
-
-
-
diff --git a/programming-old/android/api-reference/label-recognition/settings.md b/programming-old/android/api-reference/label-recognition/settings.md
deleted file mode 100644
index 26675ce..0000000
--- a/programming-old/android/api-reference/label-recognition/settings.md
+++ /dev/null
@@ -1,513 +0,0 @@
----
-layout: default-layout
-title: Settings - Dynamsoft Label Recognition Android API Reference
-description: This is the settings functions of Dynamsoft Label Recognition for Android API Reference.
-keywords: api reference, android
-needAutoGenerateSidebar: true
-permalink: /programming/android/api-reference/label-recognition/settings.html
----
-
-# Android API Reference - Settings
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v1.x.
-
-| Method | Description |
-|----------------------|-------------|
- | [`appendCharacterModelBuffer`](#appendcharactermodelbuffer) | Appends CharacterModel to the SDK object. |
- | [`appendSettingsFromFile`](#appendsettingsfromfile) | Appends LabelRecognitionParameter settings in a file to the SDK object. |
- | [`appendSettingsFromString`](#appendsettingsfromstring) | Appends LabelRecognitionParameter settings in a string to the SDK object. |
- | [`clearAppendedSettings`](#clearappendedsettings) | Clears appended LabelRecognitionParameter settings. |
- | [`eraseAllCharacterModels`](#eraseallcharactermodels) | Erases all CharacterModels the SDK object currently loaded. |
- | [`eraseCharacterModelByName`](#erasecharactermodelbyname) | Erases a name specified CharacterModel from the SDK object. |
- | [`getModeArgument`](#getmodeargument) | Get argument value for the specified mode parameter. |
- | [`getRuntimeSettings`](#getruntimesettings) | Gets the current settings and saves it into a class object. |
- | [`outputSettingsToFile`](#outputsettingstofile) | Outputs LabelRecognitionParameter settings into a file (JSON file). |
- | [`resetRuntimeSettings`](#resetruntimesettings) | Resets the runtime settings. |
- | [`setModeArgument`](#setmodeargument) | Set argument value for the specified mode parameter. |
- | [`updateReferenceRegionFromBarcodeResults`](#updatereferenceregionfrombarcoderesults) | Updates reference region which is defined with source type DLR_LST_BARCODE. |
- | [`updateRuntimeSettings`](#updateruntimesettings) | Updates runtime settings with a given class object. |
-
----
-
-## appendCharacterModelBuffer
-Appends CharacterModel to the SDK object.
-
-```java
-void com.dynamsoft.dlr.LabelRecognition.appendCharacterModelBuffer (String name, byte[] prototxtBuffer, byte[] txtBuffer, byte[] characterModelBuffer) throws LabelRecognitionException
-```
-
-**Parameters**
-`name` A unique name for the appended CharacterModel.
-`prototxtBuffer` The .prototxt file data of the CharacterModel in a byte array.
-`txtBuffer` The .txt file data of the CharacterModel in a byte array.
-`characterModelBuffer` The .caffemodel file data of the CharacterModel in a byte array.
-
-
-**Exceptions**
-[`LabelRecognitionException`](../class/label-recognition-exception.md)
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-DMLTSConnectionParameters parameters = new DMLTSConnectionParameters();
-parameters.organizationID = "200001";
-recognizer.initLicenseFromLTS(parameters, new DLRLTSLicenseVerificationListener() {
- @Override
- public void LTSLicenseVerificationCallback(boolean isSuccess, Exception error) {
- if (!isSuccess) {
- error.printStackTrace();
- }
- }
- });
-
-AssetManager manager = getAssets();
-InputStream isPrototxt = manager.open("CharacterModel/NumberLetter.prototxt");
-byte[] prototxt = new byte[isPrototxt.available()];
-isPrototxt.read(prototxt);
-isPrototxt.close();
-InputStream isCharacterModel = manager.open("CharacterModel/NumberLetter.caffemodel");
-byte[] characterModel = new byte[isCharacterModel.available()];
-isCharacterModel.read(characterModel);
-isCharacterModel.close();
-InputStream isTxt = manager.open("CharacterModel/NumberLetter.txt");
-byte[] txt = new byte[isTxt.available()];
-isTxt.read(txt);
-isTxt.close();
-recognizer.appendCharacterModelBuffer("NumberLetter", prototxt, txt, characterModel);
-recognizer.destroy();
-```
-
-
-
-
-## appendSettingsFromFile
-Appends LabelRecognitionParameter settings in a file to the SDK object.
-
-```java
-void com.dynamsoft.dlr.LabelRecognition.appendSettingsFromFile (String filePath) throws LabelRecognitionException
-```
-
-**Parameters**
-`filePath` The settings file path.
-
-
-**Exceptions**
-
-[`LabelRecognitionException`](../class/label-recognition-exception.md)
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-DMLTSConnectionParameters parameters = new DMLTSConnectionParameters();
-parameters.organizationID = "200001";
-recognizer.initLicenseFromLTS(parameters, new DLRLTSLicenseVerificationListener() {
- @Override
- public void LTSLicenseVerificationCallback(boolean isSuccess, Exception error) {
- if (!isSuccess) {
- error.printStackTrace();
- }
- }
- });
-
-recognizer.appendSettingsFromFile("your file path");
-recognizer.destroy();
-```
-
-
-
-
-## appendSettingsFromString
-Append a new template string to the current label recognition instance.
-
-```java
-void com.dynamsoft.dlr.LabelRecognition.appendSettingsFromString (String content) throws LabelRecognitionException
-```
-
-**Parameters**
-`content` A JSON string that represents the content of the settings.
-
-**Exceptions**
-
-[`LabelRecognitionException`](../class/label-recognition-exception.md)
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-DMLTSConnectionParameters parameters = new DMLTSConnectionParameters();
-parameters.organizationID = "200001";
-recognizer.initLicenseFromLTS(parameters, new DLRLTSLicenseVerificationListener() {
- @Override
- public void LTSLicenseVerificationCallback(boolean isSuccess, Exception error) {
- if (!isSuccess) {
- error.printStackTrace();
- }
- }
- });
-
-recognizer.appendSettingsFromString("{\"LabelRecognitionParameter\":{\"Name\":\"P1\", \"RegionPredetectionModes\":[{\"Mode\":\"DLR_RPM_GENERAL_HSV_CONTRAST\"}], \"ReferenceRegionNameArray\": [\"R1\"]},\"ReferenceRegion\":{\"Name\":\"R1\",\"Localization\":{\"SourceType\":\"DLR_LST_PREDETECTED_REGION\",\"RegionPredetectionModesIndex\":0},\"TextAreaNameArray\":[\"T1\"]},\"TextArea\":{\"Name\":\"T1\",\"CharacterModelName\":\"Number\"}}");
-recognizer.destroy();
-```
-
-
-
-## clearAppendedSettings
-Clear all appended parameter settings of the current label recognition instance.
-
-```java
-void com.dynamsoft.dlr.LabelRecognition.clearAppendedSettings () throws LabelRecognitionException
-```
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-DMLTSConnectionParameters parameters = new DMLTSConnectionParameters();
-parameters.organizationID = "200001";
-recognizer.initLicenseFromLTS(parameters, new DLRLTSLicenseVerificationListener() {
- @Override
- public void LTSLicenseVerificationCallback(boolean isSuccess, Exception error) {
- if (!isSuccess) {
- error.printStackTrace();
- }
- }
- });
-
-recognizer.clearAppendedSettings();
-```
-
-
-
-
-## eraseAllCharacterModels
-Erases all CharacterModels the SDK object currently loaded.
-
-```java
-void com.dynamsoft.dlr.LabelRecognition.eraseAllCharacterModels () throws LabelRecognitionException
-```
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-DMLTSConnectionParameters parameters = new DMLTSConnectionParameters();
-parameters.organizationID = "200001";
-recognizer.initLicenseFromLTS(parameters, new DLRLTSLicenseVerificationListener() {
- @Override
- public void LTSLicenseVerificationCallback(boolean isSuccess, Exception error) {
- if (!isSuccess) {
- error.printStackTrace();
- }
- }
- });
-
-recognizer.eraseAllCharacterModels();
-```
-
-
-
-
-## eraseCharacterModelByName
-Erases a name specified CharacterModel from the SDK object.
-
-```java
-void com.dynamsoft.dlr.LabelRecognition.eraseCharacterModelByName(String name) throws LabelRecognitionException
-```
-
-**Parameters**
-`name` A unique name representing the CharacterModel to erase.
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-DMLTSConnectionParameters parameters = new DMLTSConnectionParameters();
-parameters.organizationID = "200001";
-recognizer.initLicenseFromLTS(parameters, new DLRLTSLicenseVerificationListener() {
- @Override
- public void LTSLicenseVerificationCallback(boolean isSuccess, Exception error) {
- if (!isSuccess) {
- error.printStackTrace();
- }
- }
- });
-
-recognizer.eraseCharacterModelByName("NumberLetter");
-```
-
-
-
-
-## getModeArgument
-
-Get argument value for the specified mode parameter.
-
-```java
-String com.dynamsoft.dlr.LabelRecognition.getModeArgument (String modesName, int index, String argumentName) throws LabelRecognitionException
-```
-
-**Parameters**
-- `modesName`: The mode parameter name to get argument.
-- `index`: The array index of mode parameter to indicate a specific mode.
-- `argumentName`: The name of the argument to get.
-
-**Return Value**
-the optional argument for a specified mode in Modes parameters.
-
-**Exceptions**
-[`LabelRecognitionException`](../class/label-recognition-exception.md)
-
-#### Remark
-Check follow link for available modes and arguments:
-- [`RegionPredetectionModes`]({{ site.parameters-reference }}label-recognition-parameter/region-predetection-modes.html#regionpredetectionmodes)
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-DMLTSConnectionParameters parameters = new DMLTSConnectionParameters();
-parameters.organizationID = "200001";
-recognizer.initLicenseFromLTS(parameters, new DLRLTSLicenseVerificationListener() {
- @Override
- public void LTSLicenseVerificationCallback(boolean isSuccess, Exception error) {
- if (!isSuccess) {
- error.printStackTrace();
- }
- }
- });
-
-DLRRuntimeSettings settings = recognizer.getRuntimeSettings();
-settings.regionPredetectionModes[0] = EnumRegionPredetectionMode.DLR_RPM_GENERAL_RGB_CONTRAST;
-recognizer.updateRuntimeSettings(settings);
-recognizer.setModeArgument("RegionPredetectionModes", 0, "AspectRatioRange", "100");
-String argumentValue = recognizer.getModeArgument("RegionPredetectionModes", 0, "AspectRatioRange");
-recognizer.destroy();
-```
-
-
-
-
-## getRuntimeSettings
-Get current settings and save them into a [`DLRRuntimeSettings`](../class/dlr-runtime-settings.html) class object.
-
-```java
-PublicRuntimeSettings com.dynamsoft.dlr.LabelRecognition.getRuntimeSettings () throws LabelRecognitionException
-```
-
-**Return Value**
-
-The class object of template settings.
-
-**Exceptions**
-
-[`LabelRecognitionException`](../class/label-recognition-exception.md)
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-DMLTSConnectionParameters parameters = new DMLTSConnectionParameters();
-parameters.organizationID = "200001";
-recognizer.initLicenseFromLTS(parameters, new DLRLTSLicenseVerificationListener() {
- @Override
- public void LTSLicenseVerificationCallback(boolean isSuccess, Exception error) {
- if (!isSuccess) {
- error.printStackTrace();
- }
- }
- });
-
-DLRRuntimeSettings settings = recognizer.getRuntimeSettings();
-recognizer.destroy();
-```
-
-
-
-## outputSettingsToFile
-Outputs runtime settings and save them into a settings file (JSON file).
-
-```java
-void com.dynamsoft.dlr.LabelRecognition.outputSettingsToFile (String filePath, String templateName) throws LabelRecognitionException
-```
-
-**Parameters**
-`filePath` The path of the output file which stores current settings.
-`templateName` A unique name for declaring current runtime settings.
-
-
-**Exceptions**
-
-[`LabelRecognitionException`](../class/label-recognition-exception.md)
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-DMLTSConnectionParameters parameters = new DMLTSConnectionParameters();
-parameters.organizationID = "200001";
-recognizer.initLicenseFromLTS(parameters, new DLRLTSLicenseVerificationListener() {
- @Override
- public void LTSLicenseVerificationCallback(boolean isSuccess, Exception error) {
- if (!isSuccess) {
- error.printStackTrace();
- }
- }
- });
-
-recognizer.appendSettingsFromString("{\"LabelRecognitionParameter\":{\"Name\":\"P1\", \"RegionPredetectionModes\":[{\"Mode\":\"DLR_RPM_GENERAL_HSV_CONTRAST\"}], \"ReferenceRegionNameArray\": [\"R1\"]},\"ReferenceRegion\":{\"Name\":\"R1\",\"Localization\":{\"SourceType\":\"DLR_LST_PREDETECTED_REGION\",\"RegionPredetectionModesIndex\":0},\"TextAreaNameArray\":[\"T1\"]},\"TextArea\":{\"Name\":\"T1\",\"CharacterModelName\":\"Number\"}}");
-recognizer.outputSettingsToFile("your saving file path", "currentRuntimeSettings");
-recognizer.destroy();
-```
-
-
-
-
-## resetRuntimeSettings
-Reset all runtime settings to default values.
-
-```java
-void com.dynamsoft.dlr.LabelRecognition.resetRuntimeSettings () throws LabelRecognitionException
-```
-
-**Exceptions**
-[`LabelRecognitionException`](../class/label-recognition-exception.md)
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-DMLTSConnectionParameters parameters = new DMLTSConnectionParameters();
-parameters.organizationID = "200001";
-recognizer.initLicenseFromLTS(parameters, new DLRLTSLicenseVerificationListener() {
- @Override
- public void LTSLicenseVerificationCallback(boolean isSuccess, Exception error) {
- if (!isSuccess) {
- error.printStackTrace();
- }
- }
- });
-
-DLRRuntimeSettings settings = recognizer.getRuntimeSettings();
-settings.linesCount = 1;
-recognizer.updateRuntimeSettings(settings);
-recognizer.resetRuntimeSettings();
-recognizer.destroy();
-```
-
-
-
-
-
-## setModeArgument
-
-Set argument value for the specified mode parameter.
-
-
-```java
-void com.dynamsoft.dlr.LabelRecognition.setModeArgument (String modesName, int index, String argumentName, String argumentValue) throws LabelRecognitionException
-```
-**Parameters**
-- `modesName`: The mode parameter name to set argument.
-- `index`: The array index of mode parameter to indicate a specific mode.
-- `argumentName`: The name of the argument to set.
-- `argumentValue`: The value of the argument to set.
-
-**Exceptions**
-[`LabelRecognitionException`](../class/label-recognition-exception.md)
-
-
-#### Remark
-Check follow link for available modes and arguments:
-- [`RegionPredetectionModes`]({{ site.parameters-reference }}label-recognition-parameter/region-predetection-modes.html#regionpredetectionmodes)
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-DMLTSConnectionParameters parameters = new DMLTSConnectionParameters();
-parameters.organizationID = "200001";
-recognizer.initLicenseFromLTS(parameters, new DLRLTSLicenseVerificationListener() {
- @Override
- public void LTSLicenseVerificationCallback(boolean isSuccess, Exception error) {
- if (!isSuccess) {
- error.printStackTrace();
- }
- }
- });
-
-DLRRuntimeSettings settings = recognizer.getRuntimeSettings();
-settings.regionPredetectionModes[0] = EnumRegionPredetectionMode.DLR_RPM_GENERAL_RGB_CONTRAST;
-recognizer.updateRuntimeSettings(settings);
-recognizer.setModeArgument("RegionPredetectionModes", 0, "AspectRatioRange", "100");
-recognizer.destroy();
-```
-
-
-
-
-## updateReferenceRegionFromBarcodeResults
-Updates reference region which is defined with source type DLR_LST_BARCODE.
-
-```java
-void com.dynamsoft.dlr.LabelRecognition.updateReferenceRegionFromBarcodeResults (TextResult[] barcodeResults, String templateName) throws LabelRecognitionException
-```
-
-**Parameters**
-`barcodeResults` The barcode results used to localize reference region.
-`templateName` The template name. A template name is the value of key LabelRecognitionParameter.Name defined in JSON formatted settings. If no template name is specified, current runtime settings will be used.
-
-
-**Exceptions**
-
-[`LabelRecognitionException`](../class/label-recognition-exception.md)
-
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-DMLTSConnectionParameters parameters = new DMLTSConnectionParameters();
-parameters.organizationID = "200001";
-recognizer.initLicenseFromLTS(parameters, new DLRLTSLicenseVerificationListener() {
- @Override
- public void LTSLicenseVerificationCallback(boolean isSuccess, Exception error) {
- if (!isSuccess) {
- error.printStackTrace();
- }
- }
- });
-
-recognizer.appendSettingsFromString("{\"LabelRecognitionParameter\":{\"Name\":\"P1\", \"RegionPredetectionModes\":[{\"Mode\":\"DLR_RPM_GENERAL_HSV_CONTRAST\"}], \"ReferenceRegionNameArray\": [\"R1\"]},\"ReferenceRegion\":{\"Name\":\"R1\",\"Localization\":{\"SourceType\":\"DLR_LST_BARCODE\"},\"TextAreaNameArray\":[\"T1\"]},\"TextArea\":{\"Name\":\"T1\",\"CharacterModelName\":\"Number\"}}");
-//Get barcodeResults from Dynamsoft Barcode Reader SDK
-recognizer.updateReferenceRegionFromBarcodeResults(barcodeResults, "P1");
-recognizer.destroy();
-```
-
-
-
-## updateRuntimeSettings
-Update runtime settings with a given [`DLRRuntimeSettings`](../class/dlr-runtime-settings.html) class object.
-
-```java
-void com.dynamsoft.dlr.LabelRecognition.updateRuntimeSettings (DLRRuntimeSettings settings) throws LabelRecognitionException
-```
-
-**Parameters**
-`settings` The class object of template settings.
-
-**Exceptions**
-
-[`LabelRecognitionException`](../class/label-recognition-exception.md)
-
-**Code Snippet**
-```java
-LabelRecognition recognizer = new LabelRecognition();
-DMLTSConnectionParameters parameters = new DMLTSConnectionParameters();
-parameters.organizationID = "200001";
-recognizer.initLicenseFromLTS(parameters, new DLRLTSLicenseVerificationListener() {
- @Override
- public void LTSLicenseVerificationCallback(boolean isSuccess, Exception error) {
- if (!isSuccess) {
- error.printStackTrace();
- }
- }
- });
-
-DLRRuntimeSettings settings = recognizer.getRuntimeSettings();
-settings.linesCount = 1;
-recognizer.updateRuntimeSettings(settings);
-recognizer.destroy();
-```
-
-
-
diff --git a/programming-old/android/api-reference/label-recognizer-exception.md b/programming-old/android/api-reference/label-recognizer-exception.md
deleted file mode 100644
index faafae4..0000000
--- a/programming-old/android/api-reference/label-recognizer-exception.md
+++ /dev/null
@@ -1,37 +0,0 @@
----
-layout: default-layout
-title: LabelRecognizerException Class - Dynamsoft Label Recognizer Android API Reference
-description: This page shows the LabelRecognizerException Class of Dynamsoft Label Recognizer for Android SDK.
-keywords: LabelRecognizerException, class, api reference, android
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/android/api-reference/label-recognizer-exception.html
----
-
-
-# LabelRecognizerException
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v2.2.20.
-
-Exception for signalling label recognition errors.
-
-```java
-class com.dynamsoft.dlr.LabelRecognizerException
-```
-
-## Method
-
-| Method | Type |
-|---------- | ----------- |
-| [`getErrorCode`](#geterrorcode)| *int* |
-
-
-
-### getErrorCode
-
-Gets the error code.
-
-```java
-int getErrorCode()
-```
diff --git a/programming-old/android/api-reference/label-recognizer-v2.0.md b/programming-old/android/api-reference/label-recognizer-v2.0.md
deleted file mode 100644
index f439753..0000000
--- a/programming-old/android/api-reference/label-recognizer-v2.0.md
+++ /dev/null
@@ -1,600 +0,0 @@
----
-layout: default-layout
-title: LabelRecognizer Class - Dynamsoft Label Recognizer Android API Reference
-description: This page shows LabelRecognizer methods of Dynamsoft Label Recognizer for Android API Reference.
-keywords: api reference, android
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/android/api-reference/label-recognizer-v2.0.html
----
-
-# LabelRecognizer
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v2.0.0.
-
-```java
-class com.dynamsoft.dlr.LabelRecognizer
-```
-
-## Initialization
-
- | Method | Description |
- |----------------------|-------------|
- | [`LabelRecognizer`](#labelrecognizer) | Initialization of `LabelRecognizer` object.|
- | [`destroy`](#destroy) | Destroys an instance of `LabelRecognizer` object.|
- | [`initLicense`](#initlicense) | Sets the license and activates the SDK. |
-
-
-
-### LabelRecognizer
-
-Initialization of `LabelRecognizer` object.
-
-```java
-LabelRecognizer() throws LabelRecognizerException
-```
-
-**Exceptions**
-
-[`LabelRecognizerException`](label-recognizer-exception.md)
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-```
-
-
-
-### destroy
-
-```java
-void destroy()
-```
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-recognizer.destroy();
-```
-
-
-
-### initLicense
-
-Sets product key and activate the SDK.
-
-```java
-static void initLicense(String license, DLRLicenseVerificationListener listener)
-```
-
-**Parameters**
-
-`license`: The product keys.
-`listener`: The delegate to handle callback when license server returns.
-
-**Code Snippet**
-
-```java
-LabelRecognizer.initLicense("t0260NwAAAHV***************", new DLRLicenseVerificationListener() {
- @Override
- public void DLRLicenseVerificationCallback(boolean b, Exception e) {
- if (!b && e != null) {
- e.printStackTrace();
- }
- }
-}
-```
-
-## Settings
-
- | Method | Description |
- |----------------------|-------------|
- | [`getRuntimeSettings`](#getruntimesettings) | Gets the current settings and saves it into a struct. |
- | [`updateRuntimeSettings`](#updateruntimesettings) | Updates runtime settings with a given struct. |
- | [`resetRuntimeSettings`](#resetruntimesettings) | Resets the runtime settings. |
- | [`appendSettingsFromString`](#appendsettingsfromstring) | Appends LabelRecognizerParameter settings in a string to the SDK object. |
- | [`appendSettingsFromFile`](#appendsettingsfromfile) | Appends LabelRecognizerParameter settings from a file to the SDK object. |
- | [`outputSettingsToFile`](#outputsettingstofile) | Outputs LabelRecognizerParameter settings into a file (JSON file). |
- | [`clearAppendedSettings`](#clearappendedsettings) | Clear all appended LabelRecognizerParameter settings in the SDK object. |
- | [`updateReferenceRegionFromBarcodeResults`](#updatereferenceregionfrombarcoderesults) | Updates reference region which is defined with source type LST_BARCODE. |
- | [`getModeArgument`](#getmodeargument) | Get argument value for the specified mode parameter. |
- | [`setModeArgument`](#setmodeargument) | Set argument value for the specified mode parameter. |
- | [`appendCharacterModelBuffer`](#appendcharactermodelbuffer) | Appends CharacterModel to the SDK object. |
- | [`eraseAllCharacterModels`](#appendcharactermodelbuffer) | Erases all CharacterModels the SDK object currently loaded. |
- | [`eraseCharacterModelByName`](#appendcharactermodelbuffer) | Erases a name specified CharacterModel from the SDK object. |
-
-
-
-### appendCharacterModelBuffer
-
-Appends CharacterModel to the SDK object.
-
-```java
-static void appendCharacterModelBuffer (String name, byte[] prototxtBuffer, byte[] txtBuffer, byte[] characterModelBuffer)
-```
-
-**Parameters**
-
-`name` A unique name for the appended CharacterModel.
-`prototxtBuffer` The .prototxt file data of the CharacterModel in a byte array.
-`txtBuffer` The .txt file data of the CharacterModel in a byte array.
-`characterModelBuffer` The .caffemodel file data of the CharacterModel in a byte array.
-
-**Code Snippet**
-
-```java
-AssetManager manager = getAssets();
-InputStream isPrototxt = manager.open("CharacterModel/NumberLetter.prototxt");
-byte[] prototxt = new byte[isPrototxt.available()];
-isPrototxt.read(prototxt);
-isPrototxt.close();
-InputStream isCharacterModel = manager.open("CharacterModel/NumberLetter.caffemodel");
-byte[] characterModel = new byte[isCharacterModel.available()];
-isCharacterModel.read(characterModel);
-isCharacterModel.close();
-InputStream isTxt = manager.open("CharacterModel/NumberLetter.txt");
-byte[] txt = new byte[isTxt.available()];
-isTxt.read(txt);
-isTxt.close();
-
-LabelRecognizer.appendCharacterModelBuffer("NumberLetter", prototxt, txt, characterModel);
-```
-
-
-
-### eraseAllCharacterModels
-Erases all CharacterModels the SDK object currently loaded.
-
-```java
-static void eraseAllCharacterModels ()
-```
-
-**Code Snippet**
-
-```java
-LabelRecognizer.eraseAllCharacterModels();
-```
-
-
-
-### eraseCharacterModelByName
-
-Erases a name specified CharacterModel from the SDK object.
-
-```java
-static void eraseCharacterModelByName(String name)
-```
-
-**Parameters**
-
-`name` A unique name representing the CharacterModel to erase.
-
-**Code Snippet**
-
-```java
-LabelRecognizer.eraseCharacterModelByName("NumberLetter");
-```
-
-
-
-### appendSettingsFromFile
-
-Appends LabelRecognizerParameter settings in a file to the SDK object.
-
-```java
-void appendSettingsFromFile(String filePath) throws LabelRecognizerException
-```
-
-**Parameters**
-
-`filePath` The settings file path.
-
-**Exceptions**
-
-[`LabelRecognizerException`](label-recognizer-exception.md)
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-recognizer.appendSettingsFromFile("your file path");
-recognizer.destroy();
-```
-
-
-
-### appendSettingsFromString
-
-Append a new template string to the current label Recognizer instance.
-
-```java
-void appendSettingsFromString(String content) throws LabelRecognizerException
-```
-
-**Parameters**
-
-`content` A JSON string that represents the content of the settings.
-
-**Exceptions**
-
-[`LabelRecognizerException`](label-recognizer-exception.md)
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-recognizer.appendSettingsFromString("{\"LabelRecognizerParameter\":{\"Name\":\"P1\", \"RegionPredetectionModes\":[{\"Mode\":\"RPM_GENERAL_HSV_CONTRAST\"}], \"ReferenceRegionNameArray\": [\"R1\"]},\"ReferenceRegion\":{\"Name\":\"R1\",\"Localization\":{\"SourceType\":\"LST_PREDETECTED_REGION\",\"RegionPredetectionModesIndex\":0},\"TextAreaNameArray\":[\"T1\"]},\"TextArea\":{\"Name\":\"T1\",\"CharacterModelName\":\"Number\"}}");
-recognizer.destroy();
-```
-
-
-
-### clearAppendedSettings
-
-Clear all appended parameter settings of the current label recognizer instance.
-
-```java
-void clearAppendedSettings () throws LabelRecognizerException
-```
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-recognizer.clearAppendedSettings();
-```
-
-
-
-### getModeArgument
-
-Get argument value for the specified mode parameter.
-
-```java
-String getModeArgument(String modesName, int index, String argumentName) throws LabelRecognizerException
-```
-
-**Parameters**
-
-`modesName`: The mode parameter name to get argument.
-`index`: The array index of mode parameter to indicate a specific mode.
-`argumentName`: The name of the argument to get.
-
-**Return value**
-
-the optional argument for a specified mode in Modes parameters.
-
-**Exceptions**
-
-[`LabelRecognizerException`](label-recognizer-exception.md)
-
-**Remark**
-
-Check follow link for available modes and arguments:
-
-- [`RegionPredetectionModes`]({{ site.parameters-reference }}label-recognition-parameter/region-predetection-modes.html#regionpredetectionmodes)
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-
-DLRRuntimeSettings settings = recognizer.getRuntimeSettings();
-settings.furtherModes.regionPredetectionModes[0] = EnumRegionPredetectionMode.RPM_GENERAL_RGB_CONTRAST;
-recognizer.updateRuntimeSettings(settings);
-recognizer.setModeArgument("RegionPredetectionModes", 0, "AspectRatioRange", "100");
-String argumentValue = recognizer.getModeArgument("RegionPredetectionModes", 0, "AspectRatioRange");
-recognizer.destroy();
-```
-
-
-
-### getRuntimeSettings
-
-Get current settings and save them into a [`DLRRuntimeSettings`](dlr-runtime-settings.html) class object.
-
-```java
-DLRRuntimeSettings getRuntimeSettings () throws LabelRecognizerException
-```
-
-**Return value**
-
-The class object of template settings.
-
-**Exceptions**
-
-[`LabelRecognizerException`](label-recognizer-exception.md)
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-
-DLRRuntimeSettings settings = recognizer.getRuntimeSettings();
-recognizer.destroy();
-```
-
-
-
-### outputSettingsToFile
-
-Outputs runtime settings and save them into a settings file (JSON file).
-
-```java
-void outputSettingsToFile (String filePath, String templateName) throws LabelRecognizerException
-```
-
-**Parameters**
-
-`filePath` The path of the output file which stores current settings.
-`templateName` A unique name for declaring current runtime settings.
-
-**Exceptions**
-
-[`LabelRecognizerException`](label-recognizer-exception.md)
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-
-recognizer.appendSettingsFromString("{\"LabelRecognizerParameter\":{\"Name\":\"P1\", \"RegionPredetectionModes\":[{\"Mode\":\"RPM_GENERAL_HSV_CONTRAST\"}], \"ReferenceRegionNameArray\": [\"R1\"]},\"ReferenceRegion\":{\"Name\":\"R1\",\"Localization\":{\"SourceType\":\"LST_PREDETECTED_REGION\",\"RegionPredetectionModesIndex\":0},\"TextAreaNameArray\":[\"T1\"]},\"TextArea\":{\"Name\":\"T1\",\"CharacterModelName\":\"Number\"}}");
-recognizer.outputSettingsToFile("your saving file path", "currentRuntimeSettings");
-recognizer.destroy();
-```
-
-
-
-### resetRuntimeSettings
-
-Reset all runtime settings to default values.
-
-```java
-void resetRuntimeSettings () throws LabelRecognizerException
-```
-
-**Exceptions**
-
-[`LabelRecognizerException`](label-recognizer-exception.md)
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-
-DLRRuntimeSettings settings = recognizer.getRuntimeSettings();
-settings.maxThreadCount = 4;
-recognizer.updateRuntimeSettings(settings);
-recognizer.resetRuntimeSettings();
-recognizer.destroy();
-```
-
-
-
-### setModeArgument
-
-Set argument value for the specified mode parameter.
-
-```java
-void setModeArgument(String modesName, int index, String argumentName, String argumentValue) throws LabelRecognizerException
-```
-
-**Parameters**
-
-`modesName`: The mode parameter name to set argument.
-`index`: The array index of mode parameter to indicate a specific mode.
-`argumentName`: The name of the argument to set.
-`argumentValue`: The value of the argument to set.
-
-**Exceptions**
-
-[`LabelRecognizerException`](label-recognizer-exception.md)
-
-**Remark**
-
-Check follow link for available modes and arguments:
-- [`RegionPredetectionModes`]({{ site.parameters-reference }}label-recognition-parameter/region-predetection-modes.html#regionpredetectionmodes)
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-
-DLRRuntimeSettings settings = recognizer.getRuntimeSettings();
-settings.furtherModes.regionPredetectionModes[0] = EnumRegionPredetectionMode.RPM_GENERAL_RGB_CONTRAST;
-recognizer.updateRuntimeSettings(settings);
-recognizer.setModeArgument("RegionPredetectionModes", 0, "AspectRatioRange", "100");
-recognizer.destroy();
-```
-
-
-
-### updateReferenceRegionFromBarcodeResults
-Updates reference region which is defined with source type LST_BARCODE.
-
-```java
-void updateReferenceRegionFromBarcodeResults (BarcodeResult[] barcodeResults, String templateName) throws LabelRecognizerException
-```
-
-**Parameters**
-
-`barcodeResults` The barcode results used to localize reference region. See also [`BarcodeResult`](barcode-result.md).
-`templateName` The template name. A template name is the value of key LabelRecognizerParameter.Name defined in JSON formatted settings. If no template name is specified, current runtime settings will be used.
-
-**Exceptions**
-
-[`LabelRecognizerException`](label-recognizer-exception.md)
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-
-recognizer.appendSettingsFromString("{\"LabelRecognizerParameter\":{\"Name\":\"P1\", \"RegionPredetectionModes\":[{\"Mode\":\"RPM_GENERAL_HSV_CONTRAST\"}], \"ReferenceRegionNameArray\": [\"R1\"]},\"ReferenceRegion\":{\"Name\":\"R1\",\"Localization\":{\"SourceType\":\"LST_BARCODE\"},\"TextAreaNameArray\":[\"T1\"]},\"TextArea\":{\"Name\":\"T1\",\"CharacterModelName\":\"Number\"}}");
-//Get barcodeResults from Dynamsoft Barcode Reader SDK
-recognizer.updateReferenceRegionFromBarcodeResults(barcodeResults, "P1");
-recognizer.destroy();
-```
-
-
-
-### updateRuntimeSettings
-
-Update runtime settings with a given [`DLRRuntimeSettings`](dlr-runtime-settings.html) class object.
-
-```java
-void updateRuntimeSettings (DLRRuntimeSettings settings) throws LabelRecognizerException
-```
-
-**Parameters**
-
-`settings` The class object of template settings. See also [`DLRRuntimeSettings`](dlr-runtime-settings.html)
-
-**Exceptions**
-
-[`LabelRecognizerException`](label-recognizer-exception.md)
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-
-DLRRuntimeSettings settings = recognizer.getRuntimeSettings();
-settings.maxThreadCount = 1;
-recognizer.updateRuntimeSettings(settings);
-recognizer.destroy();
-```
-
-## Recognizing
-
- | Method | Description |
- |----------------------|-------------|
- | [`recognizeByBuffer`](#recognizebybuffer) | Recognizes text from memory buffer containing image pixels in defined format. |
- | [`recognizeByFile`](#recognizebyfile) | Recognizes text from a specified image file. |
- | [`recognizeByImage`](#recognizebyimage) | Recognizes text from a bitmap. |
-
-
-
-### recognizeByBuffer
-Recognizes text from the memory buffer containing image pixels in defined format.
-
-```java
-DLRResult[] recognizeByBuffer(ImageData imageData, String templateName) throws LabelRecognizerException
-```
-
-**Parameters**
-
-`[in] imageData` An object of [`ImageData`](image-data.md) that represents an image.
-`[in] templateName` The template name. A template name is the value of key LabelRecognizerParameter.Name defined in JSON formatted settings. If no template name is specified, current runtime settings will be used.
-
-**Return value**
-
-All results recognized successfully.
-
-**Exceptions**
-
-[`LabelRecognizerException`](label-recognizer-exception.md)
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-
-//Generate imageData from somewhere else
-DLRResult[] result = recognizer.recognizeByBuffer(imageData, "");
-recognizer.destroy();
-```
-
-
-
-### recognizeByFile
-Recognizes text from a specified image file.
-
-```java
-DLRResult[] recognizeByFile (String fileName, String templateName) throws LabelRecognizerException
-```
-
-**Parameters**
-
-`fileName` A string defining the file name.
-`templateName` The template name. A template name is the value of key LabelRecognizerParameter.Name defined in JSON formatted settings. If no template name is specified, current runtime settings will be used.
-
-**Return value**
-
-All results recognized successfully.
-
-**Exceptions**
-
-[`LabelRecognizerException`](label-recognizer-exception.md)
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-
-DLRResult[] result = recognizer.recognizeByFile("full file path", "");
-recognizer.destroy();
-```
-
-
-
-### recognizeByImage
-Recognizes text from a bitmap.
-
-```java
-DLRResult[] recognizeByImage (Bitmap image, String templateName) throws LabelRecognizerException
-```
-
-**Parameters**
-
-`image` A bitmap image.
-`templateName` The template name. A template name is the value of key LabelRecognizerParameter.Name defined in JSON formatted settings. If no template name is specified, current runtime settings will be used.
-
-**Return value**
-
-All results recognized successfully.
-
-**Exceptions**
-
-[`LabelRecognizerException`](label-recognizer-exception.md)
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-
-Bitmap img = BitmapFactory.decodeFile("full file path");
-DLRResult[] result = recognizer.recognizeByImage(img, "");
-recognizer.destroy();
-```
-
-## General
-
- | Method | Description |
- |----------------------|-------------|
- | [`getVersion`](#getversion) | Returns the version number string for the SDK. |
-
-
-
-### getVersion
-
-Get version information of SDK.
-
-```java
-String getVersion()
-```
-
-**Return value**
-
-The version information string.
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-String versionInfo = recognizer.getVersion();
-recognizer.destroy();
-```
diff --git a/programming-old/android/api-reference/label-recognizer.md b/programming-old/android/api-reference/label-recognizer.md
deleted file mode 100644
index f466678..0000000
--- a/programming-old/android/api-reference/label-recognizer.md
+++ /dev/null
@@ -1,672 +0,0 @@
----
-layout: default-layout
-title: LabelRecognizer Class - Dynamsoft Label Recognizer Android API Reference
-description: This page shows LabelRecognizer methods of Dynamsoft Label Recognizer for Android API Reference.
-keywords: api reference, android
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/android/api-reference/label-recognizer.html
----
-
-# class LabelRecognizer
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v2.2.20.
-
-```java
-class com.dynamsoft.dlr.LabelRecognizer
-```
-
-## Initialization Methods Summary
-
- | Method | Description |
- |----------------------|-------------|
- | [`LabelRecognizer`](#labelrecognizer) | Initialization of `LabelRecognizer` object.|
-
-## Settings Methods Summary
-
- | Method | Description |
- |----------------------|-------------|
- | [`appendCharacterModelBuffer`](#appendcharactermodelbuffer) | Appends CharacterModel to the SDK object. |
- | [`getRuntimeSettings`](#getruntimesettings) | Gets the current settings and saves it into a struct. |
- | [`updateRuntimeSettings`](#updateruntimesettings) | Updates runtime settings with a given struct. |
- | [`resetRuntimeSettings`](#resetruntimesettings) | Resets the runtime settings. |
- | [`initRuntimeSettings`](#initruntimesettings) | Initializes a new setting to the current label recognizer instance via template string. |
- | [`initRuntimeSettingsFromFile`](#initruntimesettingsfromfile) | Initializes a new setting to the current label recognizer instance via template file. |
- | [`outputRuntimeSettings`](#outputruntimesettings) | Clear all appended LabelRecognizerParameter settings in the SDK object. |
- | [`outputRuntimeSettingsToFile`](#outputruntimesettingstofile) | Outputs LabelRecognizerParameter settings into a file (JSON file). |
- | [`updateReferenceRegionFromBarcodeResults`](#updatereferenceregionfrombarcoderesults) | Updates reference region which is defined with source type LST_BARCODE. |
- | [`getModeArgument`](#getmodeargument) | Get argument value for the specified mode parameter. |
- | [`setModeArgument`](#setmodeargument) | Set argument value for the specified mode parameter. |
-
-## Recognition Methods Summary
-
- | Method | Description |
- |----------------------|-------------|
- | [`recognizeBuffer`](#recognizebuffer) | Recognizes text from memory buffer containing image pixels in defined format. |
- | [`recognizeFile`](#recognizefile) | Recognizes text from a specified image file. |
- | [`recognizeImage`](#recognizeimage) | Recognizes text from a bitmap. |
- | [`recognizeFileInMemory`](#recognizefileinmemory) | Recognizes text from an image file in memory. |
-
-## Video Recognizing Methods Summary
-
- | Method | Description |
- |--------|-------------|
- | [`setImageSource`](#setimagesource) | Bind an instance of ImageSource to the Label Recognizer. |
- | [`startScanning`](#startscanning) | Start the label recognizing thread in the video streaming scenario. |
- | [`stopScanning`](#stopscanning) | Stop the label recognizing thread in the video streaming scenario. |
- | [`setLabelResultListener`](#setlabelresultlistener) | Set callback interface to process recognized label results generated during frame processing. |
-
-## General Methods Summary
-
- | Method | Description |
- |----------------------|-------------|
- | [`getVersion`](#getversion) | Returns the version number string for the SDK. |
-
-## Initialization Methods Details
-
-### LabelRecognizer
-
-Initialization of `LabelRecognizer` object.
-
-```java
-LabelRecognizer() throws LabelRecognizerException
-```
-
-**Exceptions**
-
-[`LabelRecognizerException`](label-recognizer-exception.md)
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-```
-
-## Settings Methods Details
-
-### appendCharacterModelBuffer
-
-Appends CharacterModel into memory.
-
-```java
-static void appendCharacterModelBuffer (String name, byte[] prototxtBuffer, byte[] txtBuffer, byte[] characterModelBuffer)
-```
-
-**Parameters**
-
-`[in] name` A unique name for the appended CharacterModel.
-`[in] prototxtBuffer` The .prototxt file data of the CharacterModel in a byte array.
-`[in] txtBuffer` The .txt file data of the CharacterModel in a byte array.
-`[in] characterModelBuffer` The .caffemodel file data of the CharacterModel in a byte array.
-
-**Code Snippet**
-
-```java
-AssetManager manager = getAssets();
-InputStream isPrototxt = manager.open("CharacterModel/NumberLetter.prototxt");
-byte[] prototxt = new byte[isPrototxt.available()];
-isPrototxt.read(prototxt);
-isPrototxt.close();
-InputStream isCharacterModel = manager.open("CharacterModel/NumberLetter.caffemodel");
-byte[] characterModel = new byte[isCharacterModel.available()];
-isCharacterModel.read(characterModel);
-isCharacterModel.close();
-InputStream isTxt = manager.open("CharacterModel/NumberLetter.txt");
-byte[] txt = new byte[isTxt.available()];
-isTxt.read(txt);
-isTxt.close();
-
-LabelRecognizer.appendCharacterModelBuffer("NumberLetter", prototxt, txt, characterModel);
-```
-
-
-
-### getRuntimeSettings
-
-Get current runtime settings and save them into a [`DLRRuntimeSettings`](dlr-runtime-settings.html) object.
-
-```java
-DLRRuntimeSettings getRuntimeSettings () throws LabelRecognizerException
-```
-
-**Return value**
-
-An object of [`DLRRuntimeSettings`](dlr-runtime-settings.html) stores the current runtime settings.
-
-**Exceptions**
-
-[`LabelRecognizerException`](label-recognizer-exception.md)
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-DLRRuntimeSettings settings = recognizer.getRuntimeSettings();
-```
-
-
-
-### updateRuntimeSettings
-
-Update runtime settings with a given [`DLRRuntimeSettings`](dlr-runtime-settings.html) object.
-
-```java
-void updateRuntimeSettings (DLRRuntimeSettings settings) throws LabelRecognizerException
-```
-
-**Parameters**
-
-`[in] settings` The class object of template settings. See also [`DLRRuntimeSettings`](dlr-runtime-settings.html)
-
-**Exceptions**
-
-[`LabelRecognizerException`](label-recognizer-exception.md)
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-
-DLRRuntimeSettings settings = recognizer.getRuntimeSettings();
-settings.maxThreadCount = 1;
-recognizer.updateRuntimeSettings(settings);
-```
-
-
-
-### resetRuntimeSettings
-
-Reset all runtime settings to default values.
-
-```java
-void resetRuntimeSettings () throws LabelRecognizerException
-```
-
-**Exceptions**
-
-[`LabelRecognizerException`](label-recognizer-exception.md)
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-
-DLRRuntimeSettings settings = recognizer.getRuntimeSettings();
-settings.maxThreadCount = 4;
-recognizer.updateRuntimeSettings(settings);
-recognizer.resetRuntimeSettings();
-```
-
-
-
-### initRuntimeSettings
-
-Initializes a new setting to the current label recognizer instance via template file.
-
-```java
-void initRuntimeSettings(String content) throws LabelRecognizerException
-```
-
-**Parameters**
-
-`[in] content` A JSON string that represents the content of the settings.
-
-**Exceptions**
-
-[`LabelRecognizerException`](label-recognizer-exception.md)
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-recognizer.initRuntimeSettings("{\"LabelRecognizerParameter\":{\"Name\":\"P1\", \"RegionPredetectionModes\":[{\"Mode\":\"RPM_GENERAL_HSV_CONTRAST\"}], \"ReferenceRegionNameArray\": [\"R1\"]},\"ReferenceRegion\":{\"Name\":\"R1\",\"Localization\":{\"SourceType\":\"LST_PREDETECTED_REGION\",\"RegionPredetectionModesIndex\":0},\"TextAreaNameArray\":[\"T1\"]},\"TextArea\":{\"Name\":\"T1\",\"CharacterModelName\":\"Number\"}}");
-```
-
-
-
-### initRuntimeSettingsFromFile
-
-Initializes a new setting to the current label recognizer instance via template file.
-
-```java
-void initRuntimeSettingsFromFile(String filePath) throws LabelRecognizerException
-```
-
-**Parameters**
-
-`[in] filePath` The settings file path.
-
-**Exceptions**
-
-[`LabelRecognizerException`](label-recognizer-exception.md)
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-recognizer.initRuntimeSettingsFromFile("your file path");
-```
-
-
-
-### outputRuntimeSettingsToFile
-
-Outputs runtime settings and save them into a settings file (JSON file).
-
-```java
-void outputRuntimeSettingsToFile (String filePath, String templateName) throws LabelRecognizerException
-```
-
-**Parameters**
-
-`[in] filePath` The path of the output file which stores current settings.
-`[in] templateName` A unique name for declaring current runtime settings.
-
-**Exceptions**
-
-[`LabelRecognizerException`](label-recognizer-exception.md)
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-
-recognizer.initRuntimeSettings("{\"LabelRecognizerParameter\":{\"Name\":\"P1\", \"RegionPredetectionModes\":[{\"Mode\":\"RPM_GENERAL_HSV_CONTRAST\"}], \"ReferenceRegionNameArray\": [\"R1\"]},\"ReferenceRegion\":{\"Name\":\"R1\",\"Localization\":{\"SourceType\":\"LST_PREDETECTED_REGION\",\"RegionPredetectionModesIndex\":0},\"TextAreaNameArray\":[\"T1\"]},\"TextArea\":{\"Name\":\"T1\",\"CharacterModelName\":\"Number\"}}");
-recognizer.outputRuntimeSettingsToFile("your saving file path", "P1");
-```
-
-
-
-### outputRuntimeSettings
-
-Outputs runtime settings and save them into a string.
-
-```java
-String outputRuntimeSettings (String templateName) throws LabelRecognizerException
-```
-
-**Parameters**
-
-`[in] templateName` A unique name for declaring current runtime settings.
-
-**Exceptions**
-
-[`LabelRecognizerException`](label-recognizer-exception.md)
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-
-recognizer.initRuntimeSettings("{\"LabelRecognizerParameter\":{\"Name\":\"P1\", \"RegionPredetectionModes\":[{\"Mode\":\"RPM_GENERAL_HSV_CONTRAST\"}], \"ReferenceRegionNameArray\": [\"R1\"]},\"ReferenceRegion\":{\"Name\":\"R1\",\"Localization\":{\"SourceType\":\"LST_PREDETECTED_REGION\",\"RegionPredetectionModesIndex\":0},\"TextAreaNameArray\":[\"T1\"]},\"TextArea\":{\"Name\":\"T1\",\"CharacterModelName\":\"Number\"}}");
-String settingsStr = recognizer.outputRuntimeSettings("P1");
-```
-
-
-
-### getModeArgument
-
-Get argument value for the specified mode parameter.
-
-```java
-String getModeArgument(String modesName, int index, String argumentName) throws LabelRecognizerException
-```
-
-**Parameters**
-
-`[in] modesName` The mode parameter name to get argument.
-`[in] index` The array index of mode parameter to indicate a specific mode.
-`[in] argumentName` The name of the argument to get.
-
-**Return value**
-
-the optional argument for a specified mode in Modes parameters.
-
-**Exceptions**
-
-[`LabelRecognizerException`](label-recognizer-exception.md)
-
-**Remark**
-
-Check follow link for available modes and arguments:
-
-- [`RegionPredetectionModes`]({{ site.parameters-reference }}label-recognition-parameter/region-predetection-modes.html#regionpredetectionmodes)
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-
-DLRRuntimeSettings settings = recognizer.getRuntimeSettings();
-settings.furtherModes.regionPredetectionModes[0] = EnumRegionPredetectionMode.RPM_GENERAL_RGB_CONTRAST;
-recognizer.updateRuntimeSettings(settings);
-recognizer.setModeArgument("RegionPredetectionModes", 0, "AspectRatioRange", "100");
-String argumentValue = recognizer.getModeArgument("RegionPredetectionModes", 0, "AspectRatioRange");
-```
-
-
-
-### setModeArgument
-
-Set argument value for the specified mode parameter.
-
-```java
-void setModeArgument(String modesName, int index, String argumentName, String argumentValue) throws LabelRecognizerException
-```
-
-**Parameters**
-
-`[in] modesName` The mode parameter name to set argument.
-`[in] index` The array index of mode parameter to indicate a specific mode.
-`[in] argumentName` The name of the argument to set.
-`[in] argumentValue` The value of the argument to set.
-
-**Exceptions**
-
-[`LabelRecognizerException`](label-recognizer-exception.md)
-
-**Remark**
-
-Check follow link for available modes and arguments:
-
-- [`RegionPredetectionModes`]({{ site.parameters-reference }}label-recognition-parameter/region-predetection-modes.html#regionpredetectionmodes)
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-
-DLRRuntimeSettings settings = recognizer.getRuntimeSettings();
-settings.furtherModes.regionPredetectionModes[0] = EnumRegionPredetectionMode.RPM_GENERAL_RGB_CONTRAST;
-recognizer.updateRuntimeSettings(settings);
-recognizer.setModeArgument("RegionPredetectionModes", 0, "AspectRatioRange", "100");
-```
-
-
-
-### updateReferenceRegionFromBarcodeResults
-
-Updates reference region which is defined with source type LST_BARCODE.
-
-```java
-void updateReferenceRegionFromBarcodeResults (BarcodeResult[] barcodeResults, String templateName) throws LabelRecognizerException
-```
-
-**Parameters**
-
-`[in] barcodeResults` The barcode results used to localize reference region. See also [`BarcodeResult`](barcode-result.md).
-`[in] templateName` The template name. A template name is the value of key LabelRecognizerParameter.Name defined in JSON formatted settings. If no template name is specified, current runtime settings will be used.
-
-**Exceptions**
-
-[`LabelRecognizerException`](label-recognizer-exception.md)
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-
-recognizer.initRuntimeSettings("{\"LabelRecognizerParameter\":{\"Name\":\"P1\", \"RegionPredetectionModes\":[{\"Mode\":\"RPM_GENERAL_HSV_CONTRAST\"}], \"ReferenceRegionNameArray\": [\"R1\"]},\"ReferenceRegion\":{\"Name\":\"R1\",\"Localization\":{\"SourceType\":\"LST_BARCODE\"},\"TextAreaNameArray\":[\"T1\"]},\"TextArea\":{\"Name\":\"T1\",\"CharacterModelName\":\"Number\"}}");
-//Get barcodeResults from Dynamsoft Barcode Reader SDK
-recognizer.updateReferenceRegionFromBarcodeResults(barcodeResults, "P1");
-```
-
-
-
-## Recognition Methods Details
-
-### recognizeBuffer
-
-Recognizes text from the memory buffer containing image pixels in defined format.
-
-```java
-DLRResult[] recognizeBuffer(ImageData imageData) throws LabelRecognizerException
-```
-
-**Parameters**
-
-`[in] imageData` An object of [`ImageData`](image-data.md) that represents an image.
-
-**Return value**
-
-All results recognized successfully.
-
-**Exceptions**
-
-[`LabelRecognizerException`](label-recognizer-exception.md)
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-//Generate imageData from somewhere else
-DLRResult[] result = recognizer.recognizeBuffer(imageData);
-```
-
-
-
-### recognizeFile
-
-Recognizes text from a specified image file.
-
-```java
-DLRResult[] recognizeFile(String fileName) throws LabelRecognizerException
-```
-
-**Parameters**
-
-`[in] fileName` A string defining the file name.
-
-**Return value**
-
-All results recognized successfully.
-
-**Exceptions**
-
-[`LabelRecognizerException`](label-recognizer-exception.md)
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-DLRResult[] result = recognizer.recognizeFile("full file path");
-```
-
-
-
-### recognizeImage
-
-Recognizes text from a bitmap.
-
-```java
-DLRResult[] recognizeByImage (Bitmap image) throws LabelRecognizerException
-```
-
-**Parameters**
-
-`[in] image` A bitmap image.
-
-**Return value**
-
-All results recognized successfully.
-
-**Exceptions**
-
-[`LabelRecognizerException`](label-recognizer-exception.md)
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-Bitmap img = BitmapFactory.decodeFile("full file path");
-DLRResult[] result = recognizer.recognizeImage(img);
-```
-
-### RecognizeFileInMemory
-
-Recognizes text from a specified image file in memory.
-
-```java
-DLRResult[] RecognizeFileInMemory(byte[] fileBytes) throws LabelRecognizerException
-```
-
-**Parameters**
-
-`[in] fileBytes` The image file bytes in memory.
-
-**Return value**
-
-All results recognized successfully.
-
-**Exceptions**
-
-[`LabelRecognizerException`](label-recognizer-exception.md)
-
-**Code Snippet**
-
-```java
-LabelRecognizer recognizer = new LabelRecognizer();
-// user code: read from an image into fileBytes
-byte[] fileBytes = null;
-DLRResult[] result = recognizer.recognizeFileInMemory(fileBytes);
-```
-
-## Video Recognizing Methods Details
-
-### setImageSource
-
-Sets an instance of ImageSource to get images. `CameraEnhancer` is a specific implementation of ImageSource, which can help the Label Recognizer to acquire video frames continuously for recognition.
-
-```java
-void setImageSource(ImageSource source)
-```
-
-**Parameters**
-
-`[in] source`: An instance of ImageSource. If you are using `Dynamsoft Camera Enhancer`(DCE) to capture camera frames, pass an instance of `CameraEnhancer`.
-
-**Code Snippet**
-
-This code snippet displays a complete code on how to add CameraEnhancer to your project and start detecting and get detection results from the video streaming.
-
-```java
-LabelRecognizer recognizer;
-CameraEnhancer mCameraEnhancer;
-
-@Override
-protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
-
- // Be sure that you have added a cameraView in the layout file.
- DCECameraView cameraView = findViewById(R.id.cameraView);
-
- try {
- // Create an instance of Dynamsoft Label recognizer.
- recognizer = new LabelRecognizer();
- } catch (LabelRecognizerException e) {
- e.printStackTrace();
- }
- mCameraEnhancer = new CameraEnhancer(MainActivity.this);
- mCameraEnhancer.setCameraView(cameraView);
-
- // Bind the Camera Enhancer instance to the Label recognizer instance.
- recognizer.setImageSource(mCameraEnhancer);
-
- // Result callback configurations
- LabelResultListener mLabelResultListener = new LabelResultListener() {
- // Obtain the recognized label results and display.
- @Override
- public void labelResultCallback(int id, ImageData imageData, DLRResult[] labelResults) {
- // Add your code to execute when label results are returned.
- }
- };
-
- recognizer.setLabelResultListener(mLabelResultListener);
-}
-
-@Override
-public void onResume() {
- // Open the camera and start video label recognition
- try {
- mCameraEnhancer.open();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- recognizer.startScanning();
- super.onResume();
-}
-
-@Override
-public void onPause() {
- // Stop video label recognition
- try {
- mCameraEnhancer.close();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- recognizer.stopScanning();
- super.onPause();
-}
-```
-
-## startScanning
-
-Start the label recognition thread in the video streaming scenario. Please be sure that you have bound an object of `ImageSource` before you trigger `startScanning`.
-
-```java
-void startScanning()
-```
-
-**Code Snippet**
-
-You can view the complete code snippet in [`setImageSource`](#setimagesource).
-
-## stopScanning
-
-Stop the label recognition thread in the video streaming scenario.
-
-```java
-void stopScanning()
-```
-
-**Code Snippet**
-
-You can view the complete code snippet in [`setImageSource`](#setimagesource).
-
-## setLabelResultListener
-
-Set the callback interface to process recongnized label results generated during frame processing.
-
-```java
-void setLabelResultListener(LabelResultListener labelResultListener)
-```
-
-**Parameters**
-
-`[in] labelResultListener`: The Callback interface.
-
-**Code Snippet**
-
-You can view the complete code snippet in [`setImageSource`](#setimagesource).
-
-## General Methods Details
-
-### getVersion
-
-Get version information of SDK.
-
-```java
-static String getVersion()
-```
-
-**Return value**
-
-The version information string.
-
-**Code Snippet**
-
-```java
-String versionInfo = LabelRecognizer.getVersion();
-```
diff --git a/programming-old/android/api-reference/label-result-listener.md b/programming-old/android/api-reference/label-result-listener.md
deleted file mode 100644
index 0d666b7..0000000
--- a/programming-old/android/api-reference/label-result-listener.md
+++ /dev/null
@@ -1,49 +0,0 @@
----
-layout: default-layout
-title: Interface LabelResultListener - Dynamsoft Label Recognizer Android API Reference
-description: This the interface LabelResultListener page of Dynamsoft Label Recognizer for Android SDK.
-keywords: LabelResultListener, interface, android
-needAutoGenerateSidebar: true
-needGenerateH3Content: false
-noTitleIndex: true
-permalink: /programming/android/api-reference/label-result-listener.html
----
-
-# LabelResultListener
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v2.2.20.
-
-`LabelResultListener` is the interface to handle callbacks when the detection results are returned.
-
-```java
-interface com.dynamsoft.dlr.LabelResultListener
-```
-
-| Method | Description |
-| ------ | ----------- |
-| `labelResultCallback` | The callback method to handle the recognized label results returned by the library. |
-
-## labelResultCallback
-
-The callback method to handle the recognized label results returned by the library.
-
-```java
-void labelResultCallback(int frameId, ImageData imageData, DLRResult[] labelResults);
-```
-
-**Parameters**
-
-`[in] frameId` The ID of the frame.
-`[in] imgData` The image data of frame.
-`[in] labelResults` Recognized label results of the frame.
-
-**Code Snippet**
-
-```java
-LabelResultListener labelResultListener = new LabelResultListener() {
- @Override
- public void labelResultCallback(int frameId, ImageData imageData, DLRResult[] labelResults) {
- // Add your code
- }
-};
-```
diff --git a/programming-old/android/api-reference/license-manager.md b/programming-old/android/api-reference/license-manager.md
deleted file mode 100644
index 6f54fea..0000000
--- a/programming-old/android/api-reference/license-manager.md
+++ /dev/null
@@ -1,55 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Core Module Android API Reference - LicenseManager class
-description: This page shows LicenseManager class of Dynamsoft Core Module for Android SDK.
-keywords: initLicense, LicenseManager, api reference, android
-needAutoGenerateSidebar: true
-noTitleIndex: true
-pageStartVer: 1.0
-permalink: /programming/android/api-reference/license-manager.html
----
-
-# LicenseManager
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v2.2.20.
-
-The LicenseManager class unlocks the Dynamsoft SDK with a purchased full license or a provided trial license to allow you to develop your application.
-
-```java
-class com.dynamsoft.core.LicenseManager
-```
-
-## Methods
-
- | Method | Description |
- |----------------------|-------------|
- | [`initLicense`](#initlicense) | Read the license key and activate the SDK. |
-
- ---
-
-### initLicense
-
-Read the license key and activate the SDK.
-
-```java
-static void initLicense(String license, android.content.Context context, LicenseVerificationListener listener)
-```
-
-**Parameters**
-
-`[in] license` The license key.
-`[in] context` The interface to global information about an application environment.
-`[in] listener` The listener that handles callback when the license server returns.
-
-**Code Snippet**
-
-```java
-LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", MainActivity.this, new LicenseVerificationListener() {
- @Override
- public void LicenseVerificationCallback(boolean isSuccess, Exception error) {
- if(!isSuccess){
- error.printStackTrace();
- }
- }
-});
-```
diff --git a/programming-old/android/api-reference/license-verification-listener.md b/programming-old/android/api-reference/license-verification-listener.md
deleted file mode 100644
index 70943de..0000000
--- a/programming-old/android/api-reference/license-verification-listener.md
+++ /dev/null
@@ -1,52 +0,0 @@
----
-layout: default-layout
-title: Interface LicenseVerificationListener - Dynamsoft Core Module Android API Reference
-description: This page shows interface LicenseVerificationListener of Dynamsoft Core Module for Android SDK.
-keywords: initLicense, LicenseVerificationListener, api reference, android
-needAutoGenerateSidebar: true
-noTitleIndex: true
-pageStartVer: 1.0
-permalink: /programming/android/api-reference/license-verification-listener.html
----
-
-# LicenseVerificationListener
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v2.2.20.
-
-`LicenseVerificationListener` is the interface to handle callback when message is output by license server.
-
-```java
-interface com.dynamsoft.core.LicenseVerificationListener
-```
-
-## Methods
-
-| Method | Description |
-|----------------------|-------------|
-| [`licenseVerificationCallback`](#licenseverificationcallback) | The callback of license server. It contains error message when license verification is failed. |
-
-### LicenseVerificationCallback
-
-The callback of license server. It contains error message when license verification is failed.
-
-```java
-void licenseVerificationCallback(boolean isSuccess, CoreException error);
-```
-
-**Parameters**
-
-`[in] isSuccess`: Whether the license verification was successful.
-`[in out] error`: The error message from license server.
-
-**Code Snippet**
-
-```java
-LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", MainActivity.this, new LicenseVerificationListener() {
- @Override
- public void licenseVerificationCallback(boolean isSuccess, CoreException error) {
- if(!isSuccess){
- error.printStackTrace();
- }
- }
-});
-```
diff --git a/programming-old/android/api-reference/point.md b/programming-old/android/api-reference/point.md
deleted file mode 100644
index 13d333e..0000000
--- a/programming-old/android/api-reference/point.md
+++ /dev/null
@@ -1,48 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Class Android Class - Point
-description: This page shows the Point Class of Dynamsoft Class for Android Language.
-keywords: Point, android
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/android/api-reference/point.html
----
-
-
-# Point
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v2.2.20.
-
-Stores an x- and y-coordinate pair in two-dimensional space.
-
-```java
-class com.dynamsoft.core.Point
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`x`](#x) | *int* |
-| [`y`](#y) | *int* |
-
-
-
-### x
-
-The X coordinate of the point.
-
-```java
-int x
-```
-
-
-
-### y
-
-The Y coordinate of the point.
-
-```java
-int y
-```
diff --git a/programming-old/android/api-reference/quadrilateral-v2.0.md b/programming-old/android/api-reference/quadrilateral-v2.0.md
deleted file mode 100644
index 36bb00a..0000000
--- a/programming-old/android/api-reference/quadrilateral-v2.0.md
+++ /dev/null
@@ -1,37 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Core Android Class - Quadrilateral
-description: This page shows the Quadrilateral Class of Dynamsoft Core for Android Language.
-keywords: Quadrilateral, android
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/android/api-reference/quadrilateral-v2.0.html
----
-
-
-# Quadrilateral
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v2.0.0.
-
-Stores the quadrilateral.
-
-```java
-class com.dynamsoft.core.Quadrilateral
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`points`](#points) | [`Point[]`](point.md) |
-
-
-
-### points
-
-Four vertexes in a clockwise direction of a quadrilateral. Index 0 represents the left-most vertex.
-
-```java
-Point[] points
-```
diff --git a/programming-old/android/api-reference/quadrilateral.md b/programming-old/android/api-reference/quadrilateral.md
deleted file mode 100644
index 608a797..0000000
--- a/programming-old/android/api-reference/quadrilateral.md
+++ /dev/null
@@ -1,37 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Core Android Class - Quadrilateral
-description: This page shows the Quadrilateral Class of Dynamsoft Core for Android Language.
-keywords: Quadrilateral, android
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/android/api-reference/quadrilateral.html
----
-
-
-# Quadrilateral
-
-> You are viewing a history document page of Dynamsoft Label Recognizer Android v2.2.20.
-
-Stores the quadrilateral.
-
-```java
-class com.dynamsoft.core.Quadrilateral
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`points`](#points) | `android.graphics.Point[]`|
-
-
-
-### points
-
-Four vertexes in a clockwise direction of a quadrilateral. Index 0 represents the left-most vertex.
-
-```java
-android.graphics.Point[] points
-```
diff --git a/programming-old/android/hello-world-sample-v2.2.20.md b/programming-old/android/hello-world-sample-v2.2.20.md
deleted file mode 100644
index 5ed743e..0000000
--- a/programming-old/android/hello-world-sample-v2.2.20.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-layout: default-layout
-title: HelloWorld (Android) Dynamsoft Label Recognizer
-description: This is the page of Dynamsoft Label Recognizer Android HelloWorld sample.
-keywords: HelloWorld, Android
-needAutoGenerateSidebar: true
-permalink: /programming/android/hello-world-sample-v2.2.20.html
----
-
-# HelloWorld Sample
-
-The Android Helloworld sample shows how to create the simplest video streaming text scanning app with Dynamsoft Label Recognizer Android SDK.
-
-View the sample:
-
-- HelloWorld (Android)
-
-For more details about how to get started with Dynamsoft Label Recognizer, please view the [user guide](user-guide.md).
diff --git a/programming-old/android/index-v1.2.1.md b/programming-old/android/index-v1.2.1.md
deleted file mode 100644
index 4ea9d01..0000000
--- a/programming-old/android/index-v1.2.1.md
+++ /dev/null
@@ -1,23 +0,0 @@
----
-layout: default-layout
-title: Main Page - Dynamsoft Label Recognition for Android
-description: This is the main page of Dynamsoft Label Recognition for Android Language.
-keywords: android
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /programming/android/index-v1.2.1.html
----
-
-# Dynamsoft Label Recognition - for Android
-
-## Getting Started
-
-- [User Guide](user-guide.md)
-
-## API Reference
-
-- [API Reference](api-reference/index.md)
-
-## Release Notes
-
-- [Version 1.x](release-notes/android-1.md)
diff --git a/programming-old/android/index-v2.2.20.md b/programming-old/android/index-v2.2.20.md
deleted file mode 100644
index 3056f4f..0000000
--- a/programming-old/android/index-v2.2.20.md
+++ /dev/null
@@ -1,30 +0,0 @@
----
-layout: default-layout
-title: Android Main Page - Dynamsoft Label Recognizer
-description: This is the main page of Dynamsoft Label Recognizer for Android Language.
-keywords: android
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /programming/android/index-v2.2.20.html
----
-
-# Android Documentation
-
-## Getting Started
-
-- [User Guide](user-guide.md)
-
-## Samples
-
-- [Samples](samples.md)
- - [HelloWorld](hello-world-sample.md)
- - [MRZScanner](mrz-sample.md)
-
-## API Reference
-
-- [API Reference](api-reference/index.md)
-
-## Release Notes
-
-- [Version 2.x](release-notes/android-2.md)
-- [Version 1.x](release-notes/android-1.md)
diff --git a/programming-old/android/mrz-sample-v2.2.20.md b/programming-old/android/mrz-sample-v2.2.20.md
deleted file mode 100644
index cdf3451..0000000
--- a/programming-old/android/mrz-sample-v2.2.20.md
+++ /dev/null
@@ -1,99 +0,0 @@
----
-layout: default-layout
-title: MRZ Scanner (Android) Dynamsoft Label Recognizer
-description: This is the page of Dynamsoft Label Recognizer Android MRZ Scanner sample.
-keywords: MRZ Scanner, Android
-needAutoGenerateSidebar: true
-permalink: /programming/android/mrz-sample-v2.2.20.html
----
-
-# MRZ Scanner Sample
-
-MRZScanner sample shows you how to develop with Dynamsoft Label Recognizer to create a simple app to scan machine-readable zome (MRZ).
-
-View the sample:
-
-- MRZScanner (Android)
-
-In the MRZScanner sample, we include an additional library **MRZLib**, which is developed from Dynamsoft Label Recognizer. MRZ models or parameters are preset in the library. As a result, you don't need to add additional settings.
-
-The following APIs are available in the MRZScanner sample
-
-- `MRZRecognizer`: The class extended from `DynamsoftLabelRecognizer`.
-- `MRZResult`: The class that stores MRZ result information. When using **MRZLib**, you can obtain `MRZResult` as the output of the library instead of `DLRResult`.
-- `MRZResultListener`: The listener to handle callbacks when MRZ results are returned.
-
-## How to use MRZLib
-
-### Setup Camera Module
-
-In this sample, we use Dynamsoft Camera Enhancer to set up the camera module and capture video frames.
-
-```java
-public class ScanFragment extends Fragment {
- private DCECameraView mCameraView;
- private CameraEnhancer mCamera;
- @Override
- public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
- mCameraView = view.findViewById(R.id.dce_camera_view);
- mCamera = new CameraEnhancer(requireActivity());
- mCamera.setCameraView(mCameraView);
- }
-}
-```
-
-### Initialize MRZ Recognizer and Bind the Camera Module
-
-Create an instance of `MRZRecognizer`. Use the method `setImageSource` to bind the `MRZRecognizer` and the camera module you created. After that, the instance of `MRZRecognizer` will be able to obtain video frames from the camera continuously.
-
-```java
-public class ScanFragment extends Fragment {
- ...
- private MRZRecognizer mMRZRecognizer;
- @Override
- public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
- ...
- try {
- mMRZRecognizer = new MRZRecognizer();
- } catch (LabelRecognizerException e) {
- e.printStackTrace();
- }
- // Use setImageSource to bind MRZRecognizer with the camera enhancer.
- // You can also implement the interface ImageSource by yourself.
- mMRZRecognizer.setImageSource(mCamera);
- }
-}
-```
-
-### Obtain Results
-
-Use `setMRZResultListener` to Register a `MRZResultListener`. Trigger `startScanning`. So that you can obtain the MRZ results from `mrzResultCallback`.
-
-```java
-public class ScanFragment extends Fragment {
- ...
- private MRZRecognizer mMRZRecognizer;
- @Override
- public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
- mMRZRecognizer.setMRZResultListener(new MRZResultListener() {
- @Override
- public void mrzResultCallback(int i, ImageData imageData, MRZResult mrzResult) {
- // Implement mrzResultCallback
- }
- });
- }
-
- @Override
- public void onResume() {
- super.onResume();
- if (!isShowing) {
- mMRZRecognizer.startScanning();
- try {
- mCamera.open();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- }
- }
-}
-```
diff --git a/programming-old/android/mrz-sample.md b/programming-old/android/mrz-sample.md
deleted file mode 100644
index 8075d59..0000000
--- a/programming-old/android/mrz-sample.md
+++ /dev/null
@@ -1,99 +0,0 @@
----
-layout: default-layout
-title: MRZ Scanner (Android) Dynamsoft Label Recognizer
-description: This is the page of Dynamsoft Label Recognizer Android MRZ Scanner sample.
-keywords: MRZ Scanner, Android
-needAutoGenerateSidebar: true
-permalink: /programming/android/mrz-sample.html
----
-
-# MRZ Scanner Sample
-
-MRZScanner sample shows you how to develop with Dynamsoft Label Recognizer to create a simple app to scan machine-readable zome (MRZ).
-
-View the sample:
-
-- MRZScanner (Android)
-
-In the MRZScanner sample, we include an additional library **MRZLib**, which is developed from Dynamsoft Label Recognizer. MRZ models or parameters are preset in the library. As a result, you don't need to add additional settings.
-
-The following APIs are available in the MRZScanner sample
-
-- `MRZRecognizer`: The class extended from `DynamsoftLabelRecognizer`.
-- `MRZResult`: The class that stores MRZ result information. When using **MRZLib**, you can obtain `MRZResult` as the output of the library instead of `DLRResult`.
-- `MRZResultListener`: The listener to handle callbacks when MRZ results are returned.
-
-## How to use MRZLib
-
-### Setup Camera Module
-
-In this sample, we use Dynamsoft Camera Enhancer to set up the camera module and capture video frames.
-
-```java
-public class ScanFragment extends Fragment {
- private DCECameraView mCameraView;
- private CameraEnhancer mCamera;
- @Override
- public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
- mCameraView = view.findViewById(R.id.dce_camera_view);
- mCamera = new CameraEnhancer(requireActivity());
- mCamera.setCameraView(mCameraView);
- }
-}
-```
-
-### Initialize MRZ Recognizer and Bind the Camera Module
-
-Create an instance of `MRZRecognizer`. Use the method `setImageSource` to bind the `MRZRecognizer` and the camera module you created. After that, the instance of `MRZRecognizer` will be able to obtain video frames from the camera continuously.
-
-```java
-public class ScanFragment extends Fragment {
- ...
- private MRZRecognizer mMRZRecognizer;
- @Override
- public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
- ...
- try {
- mMRZRecognizer = new MRZRecognizer();
- } catch (LabelRecognizerException e) {
- e.printStackTrace();
- }
- // Use setImageSource to bind MRZRecognizer with the camera enhancer.
- // You can also implement the interface ImageSource by yourself.
- mMRZRecognizer.setImageSource(mCamera);
- }
-}
-```
-
-### Obtain Results
-
-Use `setMRZResultListener` to Register a `MRZResultListener`. Trigger `startScanning`. So that you can obtain the MRZ results from `mrzResultCallback`.
-
-```java
-public class ScanFragment extends Fragment {
- ...
- private MRZRecognizer mMRZRecognizer;
- @Override
- public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
- mMRZRecognizer.setMRZResultListener(new MRZResultListener() {
- @Override
- public void mrzResultCallback(int i, ImageData imageData, MRZResult mrzResult) {
- // Implement mrzResultCallback
- }
- });
- }
-
- @Override
- public void onResume() {
- super.onResume();
- if (!isShowing) {
- mMRZRecognizer.startScanning();
- try {
- mCamera.open();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- }
- }
-}
-```
diff --git a/programming-old/android/release-notes/android-1-v1.2.1.md b/programming-old/android/release-notes/android-1-v1.2.1.md
deleted file mode 100644
index 4c2eefc..0000000
--- a/programming-old/android/release-notes/android-1-v1.2.1.md
+++ /dev/null
@@ -1,70 +0,0 @@
----
-layout: default-layout
-title: Release Notes 1.x - Dynamsoft Label Recognition Android SDK
-description: This is the release notes page of Dynamsoft Label Recognition for Android SDK version 1.x.
-keywords: release notes, android
-needAutoGenerateSidebar: false
-permalink: /programming/android/release-notes/android-1-v1.2.1.html
----
-
-# Release Notes for Android - 1.x
-
-## 1.2.1 (06/08/2021)
-
-### New
-
-- Added a new property [`products`]({{ site.dlr_android_api }}class/dm-lts-connection-parameters.html#products) to `DMLTSConnectionParameters`.
-- Added a new enumeration [`EnumProduct`]({{ site.enumerations }}other-enums.html#product).
-
-### Fixed
-
-- Fixed a bug of license client.
-
-## 1.2 (05/18/2021)
-
-### New
-
-- Added a new parameter [`LabelRecognitionParameter.Timeout`]({{ site.parameters-reference }}label-recognition-parameter/parameter-control.html#timeout). Should the recognition time pass the value of this parameter, a new error code [`DLRERR_RECOGNITION_TIMEOUT`]({{ site.enumerations }}error-code.html) will be returned.
-
-- Added a new parameter [`LabelRecognitionParameter.Pages`]({{ site.parameters-reference }}label-recognition-parameter/parameter-control.html#page) that specifies a page or a subset of pages of a single file to run the recognition process on.
-
-- Added the following error codes: [`DLRERR_TIFF_READ_FAILED`]({{ site.enumerations }}error-code.html) , [`DLRERR_PDF_READ_FAILED`]({{ site.enumerations }}error-code.html) and [`DLRERR_PDF_DLL_MISSING`]({{ site.enumerations }}error-code.html). These error codes will be returned when the recognizer fails to read a TIFF file, a PDF file, or if the PDF DLL is missing, respectively.
-
-- Added a new property [`pageNumber`]({{ site.dlr_android-structs }}dlr-result.html#pagenumber) to `DLRResult` to identify the page on which the result is located.
-
-- Added parameters `TextStringLengthRange` and `LineStringLengthRange` that can be used to define the minimum and maximum string length when running the recognition process on a text area or a specific line, respectively. They are available as:
- - [`LabelRecognitionParameter.TextStringLengthRange`]({{ site.parameters-reference }}label-recognition-parameter/parameter-control.html#textstringlengthrange)
- - [`LabelRecognitionParameter.LineStringLengthRange`]({{ site.parameters-reference }}label-recognition-parameter/parameter-control.html#linestringlengthrange)
- - [`TextArea.TextStringLengthRange`]({{ site.parameters-reference }}text-area/parameter-control.html#textstringlengthrange)
- - [`TextArea.LineStringLengthRange`]({{ site.parameters-reference }}text-area/parameter-control.html#linestringlengthrange)
- - [`LineSpecification.LineStringLengthRange`]({{ site.parameters-reference }}line-specification/parameter-control.html#linestringlengthrange)
-
-- Added a new parameter `MaxLineCharacterSpacing` to limit the spacing between characters treated as one line. They are available as:
- - [`LabelRecognitionParameter.MaxLineCharacterSpacing`]({{ site.parameters-reference }}label-recognition-parameter/parameter-control.html#maxlinecharacterspacing)
- - [`TextArea.MaxLineCharacterSpacing`]({{ site.parameters-reference }}text-area/parameter-control.html#maxlinecharacterspacing)
-
-- Added parameters [`LineSpecification.FirstPoint`]({{ site.parameters-reference }}line-specification/parameter-control.html#firstpoint), [`LineSpecification.SecondPoint`]({{ site.parameters-reference }}line-specification/parameter-control.html#secondpoint), [`LineSpecification.ThirdPoint`]({{ site.parameters-reference }}line-specification/parameter-control.html#thirdpoint), and [`LineSpecification.FourthPoint`]({{ site.parameters-reference }}line-specification/parameter-control.html#fourthpoint) to specify the coordinates of a line.
-
-- Added a new API [`appendSettingsFromFile`]({{ site.dlr_android_api }}label-recognition/settings.html#appendsettingsfromfile) to allow appending settings directly from a JSON file.
-
-### Improved
-
-- Improved the recognition performance.
-
-- Improved the regular expression parameter by supporting more [RegEx pattern syntaxes]({{ site.parameters-reference }}label-recognition-parameter/parameter-control.html#textregexpattern).
-
-- Improved the recognition accuracy when dealing with skewed and italics characters.
-
-- Improved the recognition accuracy for serif fonts.
-
-
-
-## 1.0 (02/24/2021)
-
-- Supports recognition of `A-Z`, `a-z`, `0-9`, `.`, `-`, `_`, `(blank space)`, `/` and `:` characters.
-- Supports text recognition from BMP, JPEG, PNG and single-page TIFF files.
-- Supports zonal OCR and provides three ways to localize text areas:
- - Pre-define an area manually in pixel or percentage.
- - Specify an area relative to the barcode zone, which allows you to recognize accompanying texts near the barcode.
- - Specify an area relative to blocks which share the same colour or uses the same font colour. A common example would be a price tag, where the text of interest is always on a yellow square background, the yellow square can serve as the reference region.
-- Supports specifying a regular expression to improve recognition accuracy and robustness.
diff --git a/programming-old/android/release-notes/android-1.md b/programming-old/android/release-notes/android-1.md
deleted file mode 100644
index e3d213f..0000000
--- a/programming-old/android/release-notes/android-1.md
+++ /dev/null
@@ -1,70 +0,0 @@
----
-layout: default-layout
-title: Android SDK Release Notes 1.x - Dynamsoft Label Recognizer
-description: This is the release notes page of Dynamsoft Label Recognizer for Android SDK version 1.x.
-keywords: release notes, android
-needAutoGenerateSidebar: false
-permalink: /programming/android/release-notes/android-1.html
----
-
-# Release Notes - Android 1.x
-
-## 1.2.1 (06/08/2021)
-
-### New
-
-- Added a new property [`products`]({{ site.dlr_android_api }}class/dm-lts-connection-parameters.html#products) to `DMLTSConnectionParameters`.
-- Added a new enumeration [`EnumProduct`]({{ site.enumerations }}other-enums.html#product).
-
-### Fixed
-
-- Fixed a bug of license client.
-
-## 1.2 (05/18/2021)
-
-### New
-
-- Added a new parameter [`LabelRecognitionParameter.Timeout`]({{ site.parameters-reference }}label-recognition-parameter/parameter-control.html#timeout). Should the recognition time pass the value of this parameter, a new error code [`DLRERR_RECOGNITION_TIMEOUT`]({{ site.enumerations }}error-code.html) will be returned.
-
-- Added a new parameter [`LabelRecognitionParameter.Pages`]({{ site.parameters-reference }}label-recognition-parameter/parameter-control.html#page) that specifies a page or a subset of pages of a single file to run the recognition process on.
-
-- Added the following error codes: [`DLRERR_TIFF_READ_FAILED`]({{ site.enumerations }}error-code.html) , [`DLRERR_PDF_READ_FAILED`]({{ site.enumerations }}error-code.html) and [`DLRERR_PDF_DLL_MISSING`]({{ site.enumerations }}error-code.html). These error codes will be returned when the recognizer fails to read a TIFF file, a PDF file, or if the PDF DLL is missing, respectively.
-
-- Added a new property [`pageNumber`]({{ site.dlr_android_api }}dlr-result.html#pagenumber) to `DLRResult` to identify the page on which the result is located.
-
-- Added parameters `TextStringLengthRange` and `LineStringLengthRange` that can be used to define the minimum and maximum string length when running the recognition process on a text area or a specific line, respectively. They are available as:
- - [`LabelRecognitionParameter.TextStringLengthRange`]({{ site.parameters-reference }}label-recognition-parameter/parameter-control.html#textstringlengthrange)
- - [`LabelRecognitionParameter.LineStringLengthRange`]({{ site.parameters-reference }}label-recognition-parameter/parameter-control.html#linestringlengthrange)
- - [`TextArea.TextStringLengthRange`]({{ site.parameters-reference }}text-area/parameter-control.html#textstringlengthrange)
- - [`TextArea.LineStringLengthRange`]({{ site.parameters-reference }}text-area/parameter-control.html#linestringlengthrange)
- - [`LineSpecification.LineStringLengthRange`]({{ site.parameters-reference }}line-specification/parameter-control.html#linestringlengthrange)
-
-- Added a new parameter `MaxLineCharacterSpacing` to limit the spacing between characters treated as one line. They are available as:
- - [`LabelRecognitionParameter.MaxLineCharacterSpacing`]({{ site.parameters-reference }}label-recognition-parameter/parameter-control.html#maxlinecharacterspacing)
- - [`TextArea.MaxLineCharacterSpacing`]({{ site.parameters-reference }}text-area/parameter-control.html#maxlinecharacterspacing)
-
-- Added parameters [`LineSpecification.FirstPoint`]({{ site.parameters-reference }}line-specification/parameter-control.html#firstpoint), [`LineSpecification.SecondPoint`]({{ site.parameters-reference }}line-specification/parameter-control.html#secondpoint), [`LineSpecification.ThirdPoint`]({{ site.parameters-reference }}line-specification/parameter-control.html#thirdpoint), and [`LineSpecification.FourthPoint`]({{ site.parameters-reference }}line-specification/parameter-control.html#fourthpoint) to specify the coordinates of a line.
-
-- Added a new API [`appendSettingsFromFile`]({{ site.dlr_android_api }}label-recognition/settings.html#appendsettingsfromfile) to allow appending settings directly from a JSON file.
-
-### Improved
-
-- Improved the recognition performance.
-
-- Improved the regular expression parameter by supporting more [RegEx pattern syntaxes]({{ site.parameters-reference }}label-recognition-parameter/parameter-control.html#textregexpattern).
-
-- Improved the recognition accuracy when dealing with skewed and italics characters.
-
-- Improved the recognition accuracy for serif fonts.
-
-
-
-## 1.0 (02/24/2021)
-
-- Supports recognition of `A-Z`, `a-z`, `0-9`, `.`, `-`, `_`, `(blank space)`, `/` and `:` characters.
-- Supports text recognition from BMP, JPEG, PNG and single-page TIFF files.
-- Supports zonal OCR and provides three ways to localize text areas:
- - Pre-define an area manually in pixel or percentage.
- - Specify an area relative to the barcode zone, which allows you to recognize accompanying texts near the barcode.
- - Specify an area relative to blocks which share the same colour or uses the same font colour. A common example would be a price tag, where the text of interest is always on a yellow square background, the yellow square can serve as the reference region.
-- Supports specifying a regular expression to improve recognition accuracy and robustness.
diff --git a/programming-old/android/release-notes/android-2.md b/programming-old/android/release-notes/android-2.md
deleted file mode 100644
index 796b4e9..0000000
--- a/programming-old/android/release-notes/android-2.md
+++ /dev/null
@@ -1,106 +0,0 @@
----
-layout: default-layout
-title: Android SDK Release Notes 2.x - Dynamsoft Label Recognizer
-description: This is the release notes page of Dynamsoft Label Recognizer for Android SDK version 2.x.
-keywords: release notes, android
-needAutoGenerateSidebar: false
-permalink: /programming/android/release-notes/android-2.html
----
-
-# Release Notes - Android 2.x
-
-## 2.2.20 (09/29/2022)
-
-
-
-### Version Highlights
-
-
-
-{%- include release-notes/product-highlight-2.2.md -%}
-
-
-
-### Changelog
-
-#### New
-
-- Added methods in `LabelRecognizer` class to support video streaming recognition.
- - [`setImageSource`](../api-reference/label-recognizer.md#setimagesource): Set the source of image/video.
- - [`setLabelResultListener`](../api-reference/label-recognizer.md#setlabelresultlistener): Register a listener to receive label recognizing results.
- - [`startScanning`](../api-reference/label-recognizer.md#startscanning): Start the label recognizing processes.
- - [`stopScanning`](../api-reference/label-recognizer.md#stopscanning): Stop the label recognizing processes.
-- Added methods in `LabelRecognizer` class to configure settings.
- - [`initRuntimeSettings`](../api-reference/label-recognizer.md#initruntimesettings)
- - [`initRuntimeSettingsFromFile`](../api-reference/label-recognizer.md#initruntimesettingsfromfile)
- - [`outputRuntimeSettings`](../api-reference/label-recognizer.md#outputruntimesettings)
- - [`outputRuntimeSettingsFromFile`](../api-reference/label-recognizer.md#outputruntimesettingstofile)
-- Added a new recognition method [`recognizeFileInMemory`](../api-reference/label-recognizer.md#recognizefileinmemory) in `LabelRecognizer` class.
-- Added a protocol [`LabelResultListener`](../api-reference/label-result-listener.md) to obtain video label recognition results.
-- Added a new parameter [`timeout`](../api-reference/dlr-runtime-settings.md#timeout) to `DLRRuntimeSettings` class.
-
-#### Rename
-
-- The following methods of `LabelRecognizer` class are renamed
- - Renamed `recognizeByFile` to [`recognizeFile`](../api-reference/label-recognizer.md#recognizefile).
- - Renamed `recognizeByBuffer` to [`recognizeBuffer`](../api-reference/label-recognizer.md#recognizebuffer).
- - Renamed `recognizeByImage` to [`recognizeImage`](../api-reference/label-recognizer.md#recognizeimage).
- - Renamed `outputSettingsToFile` to [`outputRuntimeSettingsToFile`](../api-reference/label-recognizer.md#outputruntimesettingstofile).
-
-#### Removed
-
-- The following methods of `LabelRecognizer` class are removed
- - `initLicense`. The method is replaced by `LicenseManager.initLicense` under `DynamsoftCore`.
- - `appendSettingsFromString`
- - `appendSettingsFromFile`
- - `clearAppendedSettings`
- - `destory`
-
-## 2.0 (08/26/2021)
-
-
-
-### Version Highlights
-
-
-
-{%- include release-notes/product-highlight-2.0.md -%}
-
-
-
-### Changelog
-
-#### New
-
-- Added auto-deskew algorithm to improve the performance on recognizing the skewed characters.
-- Added package `DynamsoftCoreAndroid.aar`. Migrated the Dynamsoft core classes/enums from package `DynamsoftLabelRecognizerAndroid.aar` to `DynamsoftCoreAndroid.aar`.
-- Added class [`BarcodeResult`](../api-reference/barcode-result.md) for users to interact with Dynamsoft Barcode Reader SDK.
-- Added [`DLRRuntimeSettings`](../api-reference/dlr-runtime-settings.md) property [`dictionaryPath`](../api-reference/dlr-runtime-settings.md#dictionarypath) and [`dictionaryCorrectionThreshold`](../api-reference/dlr-runtime-settings.md#dictionarycorrectionthreshold) for users to further improve the recognizing accuracy by referencing dictionary files.
-- Added class [`DLRDictionaryCorrectionThreshold`](../api-reference/dlr-dictionary-correction-threshold.md).
-- Added class [`DLRFurtherModes`](../api-reference/dlr-further-modes.md) and property [`DLRRuntimeSettings.furtherModes`](../api-reference/dlr-runtime-settings.md#furthermodes) for users to config more processing modes.
-- Added enumeration [`TextureDetectionMode`]({{ site.enumerations }}texture-detection-mode.html) and property [`DLRFurtherModes.textureDetectionModes`](../api-reference/dlr-further-modes.md#texturedetectionmodes) for users to detect and remove the texture background.
-- Added enumeration [`ColourConversionMode`]({{ site.enumerations }}colour-conversion-mode.html) and property [`DLRFurtherModes.colourConversionModes`](../api-reference/dlr-further-modes.md#colourconversionmodes) for users to convert color images to grayscale images in differenct ways.
-- Added enumeration [`BinarizationMode`]({{ site.enumerations }}binarization-mode.html) and property [`DLRRuntimeSettings.binarizationModes`](../api-reference/dlr-runtime-settings.md#binarizationmodes) for users to convert grayscale images to binary images in different ways.
-- Added enumeration [`GrayscaleEnhancementMode`]({{ site.enumerations }}grayscale-enhancement-mode.html) and property [`DLRFurtherModes.grayscaleEnhancementModes`](../api-reference/dlr-further-modes.md#grayscaleenhancementmodes) for users to enable grayscale images preprocessing.
-- Added [`characterHConfidence`](../api-reference/dlr-character-result.md#characterhconfidence), [`characterMConfidence`](../api-reference/dlr-character-result.md#charactermconfidence) and [`characterLConfidence`](../api-reference/dlr-character-result.md#characterlconfidence) properties in [`DLRCharacterResult`](../api-reference/dlr-character-result.md) class so that more alternative results will be available for users.
-- Added API [`recognizeByImage`](../api-reference/label-recognizer.md#recognizebyimage).
-
-#### Improved
-
-- Improved the neural network performance by replacing Caffe engine with OpenCV DNN engine.
-
-#### Fixed
-
-- Fixed a bug that might cause wrong line number matching when using [`LineSpecification.LineNumber`]({{ site.parameters-reference }}line-specification/parameter-control.html#linenumber).
-
-#### API Changes
-
-- Modified the method initLicense(String) to static [`initLicense(String, DLRLicenseVerificationListener)`](../api-reference/label-recognizer.md#initlicense).
-- Modified the parameter type of the method [`updateReferenceRegionFromBarcodeResults`](../api-reference/label-recognizer.md#updatereferenceregionfrombarcoderesults) from `TextResult[]` to `BarcodeResult[]`.
-- Modified the parameters [`LabelRecognizerParameter.LetterHeightRange`]({{ site.parameters-reference }}label-recognition-parameter/parameter-control.html#letterheightrange) and [`TextArea.LetterHeightRange`]({{ site.parameters-reference }}text-area/parameter-control.html#letterheightrange). The value unit of the parameters are modified from percentage to thousandth. The available range of the value and the default value are updated as well.
-- Renamed class `LabelRecognition` to [`LableRecognizer`](../api-reference/label-recognizer.md).
-- Renamed interface `DLRLTSLicenseVerificationListener` to `DLRLicenseVerificationListener`.
-- Renamed interface method `LTSLicenseVerificationCallback` to `DLRLicenseVerificationCallback`.
-- Removed method `initLicenseFromLTS`.
-- Removed method `LabelRecognizer(string license)`.
-- Removed class `DMLTSConnectionParameters`.
diff --git a/programming-old/android/release-notes/index-v1.2.1.md b/programming-old/android/release-notes/index-v1.2.1.md
deleted file mode 100644
index 7c5d1c2..0000000
--- a/programming-old/android/release-notes/index-v1.2.1.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-layout: default-layout
-title: Release Notes - Dynamsoft Label Recognition Android SDK
-description: This is the release notes page of Dynamsoft Label Recognition for Android SDK.
-keywords: release notes, android
-needAutoGenerateSidebar: false
-permalink: /programming/android/release-notes/index-v1.2.1.html
----
-
-# Dynamsoft Label Recognition Android SDK - Release Notes
-
-- [1.2.1 (06/08/2021)](android-1.md#121-06082021)
-- [1.2 (05/18/2021)](android-1.md#12-05182021)
-- [1.0 (02/24/2021)](android-1.md#10-02242021)
diff --git a/programming-old/android/samples-v2.2.20.md b/programming-old/android/samples-v2.2.20.md
deleted file mode 100644
index 6005a33..0000000
--- a/programming-old/android/samples-v2.2.20.md
+++ /dev/null
@@ -1,33 +0,0 @@
----
-layout: default-layout
-title: Android Samples - Dynamsoft Label Recognizer
-description: This is the android samples page of Dynamsoft Label Recognizer.
-keywords: samples, android
-needAutoGenerateSidebar: true
-permalink: /programming/android/samples-v2.2.20.html
----
-
-# Demo and Samples
-
-## Samples
-
-| Name | Description |
-| ---- | ----------- |
-| [HelloWorld](hello-world-sample.md) | The simplest video streaming label text scanner. |
-| [MRZScanner](mrz-sample.md) | An example shows how to use Dynamsoft Label Recognizer on scanning MRZ. |
-
-Before you start viewing the samples, the following concepts may help you understand how to get started with Dynamsoft Label Recognizer.
-
-### License
-
-A network connection is required to verify the trial license in the samples. You can request a 30-day trial license via the [Request a Trial License](https://www.dynamsoft.com/customer/license/trialLicense?product=dlr&utm_source=docs&package=android){:target="_blank"} link. If you download the [Installation Package](https://www.dynamsoft.com/label-recognition/downloads/?product=dlr&utm_source=docs&package=android), it comes with a 30-day trial license by default.
-
-### Video Text Line Recognizing
-
-Most of the Dynamsoft Label Recognizer mobile samples are designed for video label text recognizing. Dynamsoft Camera Enhancer (DCE) is applied to the video streaming scanning samples. The following features in the samples are powered by DCE:
-
-- Capture video frames for label text recognition.
-- Specify a scan region.
-- Highlighting the recognized label text areas.
-
-View the [API reference](api-reference/camera-enhancer/index.md) for more details
diff --git a/programming-old/android/user-guide-mrz-v2.2.20.md b/programming-old/android/user-guide-mrz-v2.2.20.md
deleted file mode 100644
index e1992be..0000000
--- a/programming-old/android/user-guide-mrz-v2.2.20.md
+++ /dev/null
@@ -1,364 +0,0 @@
----
-layout: default-layout
-title: Android User Guide - Dynamsoft MRZ Recognizer
-description: This is the user guide page of Dynamsoft MRZ Recognizer for Android Language.
-keywords: a, user guide
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /programming/android/user-guide-mrz-v2.2.20.html
----
-
-# MRZ Scanner Solution for Android - User Guide
-
-- [MRZ Scanner Solution for Android - User Guide](#mrz-scanner-solution-for-android---user-guide)
- - [Requirements](#requirements)
- - [Add the Libraries](#add-the-libraries)
- - [Add the Libraries Manually](#add-the-libraries-manually)
- - [Add the Libraries via Maven](#add-the-libraries-via-maven)
- - [Build Your First Application](#build-your-first-application)
- - [Create a New Project](#create-a-new-project)
- - [Include the Libraries](#include-the-libraries)
- - [Initialize the License](#initialize-the-license)
- - [Initialize Camera Module](#initialize-camera-module)
- - [Initialize MRZ Recognizer](#initialize-mrz-recognizer)
- - [Start Recognition Process](#start-recognition-process)
- - [Obtain and Display Recognized MRZ Result](#obtain-and-display-recognized-mrz-result)
- - [Build and Run the Project](#build-and-run-the-project)
-
-## 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 3.4+ (Android Studio 4.2+ recommended).
-
-## Add the Libraries
-
-The MRZ SCanner Solution Android Package comes with four libraries:
-
-- **DynamsoftLabelRecognizer.aar**: Dynamsoft Label Recognizer (DLR) is a library that offers APIs for text recognition from image files and camera video. **A license is required for its use.**
-- **DynamsoftCore.aar**: The core library includes common basic structure and license related APIs.
-- **DynamsoftCameraEnhancer.aar** (Optional): Dynamsoft Camera Enhancer (DCE) is a library of getting video frames from mobile cameras. Provides APIs for camera control, camera preview, and other advanced features. **A license is required for its advanced features such as `frame filter`, `sensor control`, `autozoom`, `enhanced focus` and `smart torch`**.
-- **MRZScanner.aar**: MRZScanner is a library wrapped around the Dynamsoft Label Recognizer SDK. It is not a part of the Dynamsoft standard SDK but is completely open source. You can download it and freely modify it.
-
-There are two ways to add the libraries into your project - **Manually** and **Maven**.
-
-### Add the Libraries Manually
-
-1. Download the solution package from the Dynamsoft Website. After unzipping, four **aar** files can be found in the **MRZScanner\Libs** directory:
-
- - **MRZScanner.aar**
- - **DynamsoftLabelRecognizer.aar**
- - **DynamsoftCore.aar**
- - **DynamsoftCameraEnhancer.aar** (Optional)
- >Note:
- >
- >If you want to use Android Camera SDK or your own sdk to control camera, please ignore **DynamsoftCameraEnhancer.aar** in the following steps.
-
-2. Copy the above two **aar** files to the target directory such as `[App Project Root Path]\app\libs`
-
-3. Open the file `[App Project Root Path]\app\build.gradle` and add reference in the dependencies:
-
- ```groovy
- dependencies {
- implementation fileTree(dir: 'libs', include: ['*.aar'])
-
- def camerax_version = '1.1.0'
- implementation "androidx.camera:camera-core:$camerax_version"
- implementation "androidx.camera:camera-camera2:$camerax_version"
- implementation "androidx.camera:camera-lifecycle:$camerax_version"
- implementation "androidx.camera:camera-view:$camerax_version"
- }
- ```
-
- > Note:
- >
- > DCE 3.x is based on Android CameraX, so you need to add the CameraX dependency manually.
-
-4. Click **Sync Now**. After the synchronization completes, the SDK is added to the project.
-
-### Add the Libraries via Maven
-
-1. Open the file `[App Project Root Path]\app\build.gradle` and add the maven repository:
-
- ```groovy
- repositories {
- maven {
- url "https://download2.dynamsoft.com/maven/aar"
- }
- }
- ```
-
-2. Add reference in the dependencies:
-
- ```groovy
- dependencies {
- implementation 'com.dynamsoft:mrzscanner:2.2.20'
- // Remove the following line if you want to use Android Camera sdk or your own sdk to control camera.
- implementation 'com.dynamsoft:dynamsoftcameraenhancer:3.0.1'
- }
- ```
-
-3. Click **Sync Now**. After the synchronization completes, the SDK is added to the project.
-
-## Build Your First Application
-
-The following sample will demonstrate how to create a `HelloWorld` app for recognizing MRZ from camera video input. After you complete all steps, the final application looks like this example.
-
-[Download the sample source code](todo)
-
->Note:
->
->- The following steps are completed in Android Studio 4.2.
-
-### Create a New Project
-
-1. Open Android Studio and select `New Project…` in the `File > New > New Project…` menu to create a new project.
-
-2. Choose the correct template for your project. In this sample, we'll use `Empty Activity`.
-
-3. When prompted, choose your app name (`HelloWorld`) and set the Save location, Language, and Minimum SDK (21)
- >Note: With minSdkVersion set to 21, your app is available on more than 94.1% of devices on the Google Play Store (last update: March 2021).
-
-### Include the Libraries
-
-Add the SDK to your new project. Please read [Add the Libraries](#add-the-libraries) section for more details.
-
-### Initialize the License
-
-1. Import the `LicenseManager` class and initialize the license in the file `MainActivity.java`.
-
- ```java
- import com.dynamsoft.core.LicenseManager;
- import com.dynamsoft.core.LicenseVerificationListener;
- import com.dynamsoft.core.CoreException;
-
- public class MainActivity extends AppCompatActivity {
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
-
- LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", MainActivity.this, new LicenseVerificationListener() {
- @Override
- public void licenseVerificationCallback(boolean isSuccess, CoreException error) {
- if(!isSuccess){
- error.printStackTrace();
- }
- }
- });
- }
- }
- ```
-
- >Note:
- >
- >- Network connection is required for the license to work.
- >- The license string here will grant you a time-limited trial license.
- >- You can request a 30-day trial license via the [Request a Trial License](https://www.dynamsoft.com/customer/license/trialLicense?product=dlr&utm_source=guide&package=android){:target="_blank"} link
-
-### Initialize 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 module, initialize a `DCECameraView` and bind to the created `CameraEnhancer` instance in the file `MainActivity.java`.
-
- ```java
- ...
-
- import com.dynamsoft.dce.DCECameraView;
- import com.dynamsoft.dce.CameraEnhancer;
- import com.dynamsoft.dce.CameraEnhancerException;
-
- public class MainActivity extends AppCompatActivity {
- private CameraEnhancer mCamera;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
-
- ...
-
- DCECameraView cameraView = findViewById(R.id.camera_view);
-
- mCamera = new CameraEnhancer(MainActivity.this);
- mCamera.setCameraView(cameraView);
- }
- }
- ```
-
-3. Define a scan region for MRZ recognition.
-
- ```java
- ...
-
- import com.dynamsoft.core.RegionDefiniton;
-
- public class MainActivity extends AppCompatActivity {
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
-
- ...
-
- RegionDefinition region = new RegionDefinition(10, 40, 90, 60, 1);
- try {
- mCamera.setScanRegion(region);
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- }
- }
- ```
-
-### Initialize MRZ Recognizer
-
-1. Import and initialize an instance of `MRZRecognizer`, bind to the created `CameraEnhancer` instance.
-
- ```java
- ...
-
- import com.dynamsoft.dlr.MRZRecognizer;
- import com.dynamsoft.dlr.LabelRecognizerException;
-
- public class MainActivity extends AppCompatActivity {
-
- ...
-
- private MRZRecognizer mRecognizer;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
-
- ...
-
- try {
- mRecognizer = new MRZRecognizer();
- } catch (LabelRecognizerException e) {
- e.printStackTrace();
- }
-
- mRecognizer.setImageSource(mCamera);
- }
- }
- ```
-
-### Start Recognition Process
-
-1. Override the `MainActivity.onResume` and `MainActivity.onPause` functions to start/stop video MRZ recognition. After recognition starts, the `MRZRecognizer` will automatically process the video frames from the `CameraEnhancer`, then send the recognized `MRZResult` to the callback function.
-
- ```java
- public class MainActivity extends AppCompatActivity {
-
- ...
-
- @Override
- protected void onResume() {
- mRecognizer.startScanning();
- try {
- mCamera.open();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- super.onResume();
- }
-
-
- @Override
- protected void onPause() {
- mRecognizer.stopScanning();
- try {
- mCamera.close();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- super.onPause();
- }
- }
- ```
-
-### Obtain and Display Recognized MRZ Result
-
-1. Create a `MRZResultListener` and register with the `MRZRecognizer` instance to get recognized MRZ result.
-
- ```java
- ...
- import androidx.appcompat.app.AlertDialog;
- import android.content.DialogInterface;
-
- import com.dynamsoft.core.ImageData;
- import com.dynamsoft.dce.DCEFeedback;
- import com.dynamsoft.dlr.MRZResult;
- import com.dynamsoft.dlr.MRZResultListener;
-
- public class MainActivity extends AppCompatActivity {
-
- ...
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
-
- ...
-
- mMRZRecognizer.setMRZResultListener(new MRZResultListener() {
- @Override
- public void mrzResultCallback(int i, ImageData imageData, MRZResult mrzResult) {
- if (mrzResult != null && mrzResult.isParsed) {
- DCEFeedback.vibrate(MainActivity.this);
- mMRZRecognizer.stopScanning();
-
- runOnUiThread(() -> showResult(mrzResult));
- }
- }
- });
- }
-
- private void showResult(MRZResult mrzResult) {
- StringBuilder resultBuilder = new StringBuilder();
-
- resultBuilder.append("Document Type : " + mrzResult.docType + "\n");
- resultBuilder.append("Issuing State : " + mrzResult.issuer + "\n");
- resultBuilder.append("Surname : " + mrzResult.surname + "\n");
- resultBuilder.append("Given Name : " + mrzResult.givenName + "\n");
- resultBuilder.append("Passport Number : " + mrzResult.docId + "\n");
- resultBuilder.append("Nationality : " + mrzResult.nationality + "\n");
- resultBuilder.append("Date of Birth(YY-MM-DD) : " + mrzResult.dateOfBirth + "\n");
- resultBuilder.append("Gender : " + mrzResult.gender + "\n");
- resultBuilder.append("Date of Expiry(YY-MM-DD) : " + mrzResult.dateOfExpiration + "\n");
- resultBuilder.append("Is Parsed : " + mrzResult.isParsed + "\n");
- resultBuilder.append("Is Verified : " + mrzResult.isVerified + "\n");
- resultBuilder.append("MRZ Text : " + mrzResult.mrzText + "\n");
-
- showDialog("Result", resultBuilder.toString(), new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- mMRZRecognizer.startScanning();
- }
- });
- }
-
- private void showDialog(String title, String message, DialogInterface.OnClickListener listener) {
- new AlertDialog.Builder(this).setTitle(title)
- .setPositiveButton("OK", listener)
- .setMessage(message)
- .setCancelable(false)
- .show();
- }
- }
- ```
-
-### 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 `Run app` button, then Android Studio installs your app on your connected device and starts it.
diff --git a/programming-old/android/user-guide-mrz.md b/programming-old/android/user-guide-mrz.md
deleted file mode 100644
index d5006b4..0000000
--- a/programming-old/android/user-guide-mrz.md
+++ /dev/null
@@ -1,364 +0,0 @@
----
-layout: default-layout
-title: Android User Guide - Dynamsoft MRZ Recognizer
-description: This is the user guide page of Dynamsoft MRZ Recognizer for Android Language.
-keywords: a, user guide
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /programming/android/user-guide-mrz.html
----
-
-# MRZ Scanner Solution for Android - User Guide
-
-- [MRZ Scanner Solution for Android - User Guide](#mrz-scanner-solution-for-android---user-guide)
- - [Requirements](#requirements)
- - [Add the Libraries](#add-the-libraries)
- - [Add the Libraries Manually](#add-the-libraries-manually)
- - [Add the Libraries via Maven](#add-the-libraries-via-maven)
- - [Build Your First Application](#build-your-first-application)
- - [Create a New Project](#create-a-new-project)
- - [Include the Libraries](#include-the-libraries)
- - [Initialize the License](#initialize-the-license)
- - [Initialize Camera Module](#initialize-camera-module)
- - [Initialize MRZ Recognizer](#initialize-mrz-recognizer)
- - [Start Recognition Process](#start-recognition-process)
- - [Obtain and Display Recognized MRZ Result](#obtain-and-display-recognized-mrz-result)
- - [Build and Run the Project](#build-and-run-the-project)
-
-## 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 3.4+ (Android Studio 4.2+ recommended).
-
-## Add the Libraries
-
-The MRZ SCanner Solution Android Package comes with four libraries:
-
-- **DynamsoftLabelRecognizer.aar**: Dynamsoft Label Recognizer (DLR) is a library that offers APIs for text recognition from image files and camera video. **A license is required for its use.**
-- **DynamsoftCore.aar**: The core library includes common basic structure and license related APIs.
-- **DynamsoftCameraEnhancer.aar** (Optional): Dynamsoft Camera Enhancer (DCE) is a library of getting video frames from mobile cameras. Provides APIs for camera control, camera preview, and other advanced features. **A license is required for its advanced features such as `frame filter`, `sensor control`, `autozoom`, `enhanced focus` and `smart torch`**.
-- **MRZScanner.aar**: MRZScanner is a library wrapped around the Dynamsoft Label Recognizer SDK. It is not a part of the Dynamsoft standard SDK but is completely open source. You can download it and freely modify it.
-
-There are two ways to add the libraries into your project - **Manually** and **Maven**.
-
-### Add the Libraries Manually
-
-1. Download the solution package from the Dynamsoft Website. After unzipping, four **aar** files can be found in the **MRZScanner\Libs** directory:
-
- - **MRZScanner.aar**
- - **DynamsoftLabelRecognizer.aar**
- - **DynamsoftCore.aar**
- - **DynamsoftCameraEnhancer.aar** (Optional)
- >Note:
- >
- >If you want to use Android Camera SDK or your own sdk to control camera, please ignore **DynamsoftCameraEnhancer.aar** in the following steps.
-
-2. Copy the above two **aar** files to the target directory such as `[App Project Root Path]\app\libs`
-
-3. Open the file `[App Project Root Path]\app\build.gradle` and add reference in the dependencies:
-
- ```groovy
- dependencies {
- implementation fileTree(dir: 'libs', include: ['*.aar'])
-
- def camerax_version = '1.1.0'
- implementation "androidx.camera:camera-core:$camerax_version"
- implementation "androidx.camera:camera-camera2:$camerax_version"
- implementation "androidx.camera:camera-lifecycle:$camerax_version"
- implementation "androidx.camera:camera-view:$camerax_version"
- }
- ```
-
- > Note:
- >
- > DCE 3.x is based on Android CameraX, so you need to add the CameraX dependency manually.
-
-4. Click **Sync Now**. After the synchronization completes, the SDK is added to the project.
-
-### Add the Libraries via Maven
-
-1. Open the file `[App Project Root Path]\app\build.gradle` and add the maven repository:
-
- ```groovy
- repositories {
- maven {
- url "https://download2.dynamsoft.com/maven/aar"
- }
- }
- ```
-
-2. Add reference in the dependencies:
-
- ```groovy
- dependencies {
- implementation 'com.dynamsoft:mrzscanner:2.2.20'
- // Remove the following line if you want to use Android Camera sdk or your own sdk to control camera.
- implementation 'com.dynamsoft:dynamsoftcameraenhancer:3.0.1'
- }
- ```
-
-3. Click **Sync Now**. After the synchronization completes, the SDK is added to the project.
-
-## Build Your First Application
-
-The following sample will demonstrate how to create a `HelloWorld` app for recognizing MRZ from camera video input. After you complete all steps, the final application looks like this example.
-
-[Download the sample source code](todo)
-
->Note:
->
->- The following steps are completed in Android Studio 4.2.
-
-### Create a New Project
-
-1. Open Android Studio and select `New Project…` in the `File > New > New Project…` menu to create a new project.
-
-2. Choose the correct template for your project. In this sample, we'll use `Empty Activity`.
-
-3. When prompted, choose your app name (`HelloWorld`) and set the Save location, Language, and Minimum SDK (21)
- >Note: With minSdkVersion set to 21, your app is available on more than 94.1% of devices on the Google Play Store (last update: March 2021).
-
-### Include the Libraries
-
-Add the SDK to your new project. Please read [Add the Libraries](#add-the-libraries) section for more details.
-
-### Initialize the License
-
-1. Import the `LicenseManager` class and initialize the license in the file `MainActivity.java`.
-
- ```java
- import com.dynamsoft.core.LicenseManager;
- import com.dynamsoft.core.LicenseVerificationListener;
- import com.dynamsoft.core.CoreException;
-
- public class MainActivity extends AppCompatActivity {
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
-
- LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", MainActivity.this, new LicenseVerificationListener() {
- @Override
- public void licenseVerificationCallback(boolean isSuccess, CoreException error) {
- if(!isSuccess){
- error.printStackTrace();
- }
- }
- });
- }
- }
- ```
-
- >Note:
- >
- >- Network connection is required for the license to work.
- >- The license string here will grant you a time-limited trial license.
- >- You can request a 30-day trial license via the [Request a Trial License](https://www.dynamsoft.com/customer/license/trialLicense?product=dlr&utm_source=guide&package=android){:target="_blank"} link
-
-### Initialize 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 module, initialize a `DCECameraView` and bind to the created `CameraEnhancer` instance in the file `MainActivity.java`.
-
- ```java
- ...
-
- import com.dynamsoft.dce.DCECameraView;
- import com.dynamsoft.dce.CameraEnhancer;
- import com.dynamsoft.dce.CameraEnhancerException;
-
- public class MainActivity extends AppCompatActivity {
- private CameraEnhancer mCamera;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
-
- ...
-
- DCECameraView cameraView = findViewById(R.id.camera_view);
-
- mCamera = new CameraEnhancer(MainActivity.this);
- mCamera.setCameraView(cameraView);
- }
- }
- ```
-
-3. Define a scan region for MRZ recognition.
-
- ```java
- ...
-
- import com.dynamsoft.core.RegionDefiniton;
-
- public class MainActivity extends AppCompatActivity {
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
-
- ...
-
- RegionDefinition region = new RegionDefinition(10, 40, 90, 60, 1);
- try {
- mCamera.setScanRegion(region);
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- }
- }
- ```
-
-### Initialize MRZ Recognizer
-
-1. Import and initialize an instance of `MRZRecognizer`, bind to the created `CameraEnhancer` instance.
-
- ```java
- ...
-
- import com.dynamsoft.dlr.MRZRecognizer;
- import com.dynamsoft.dlr.LabelRecognizerException;
-
- public class MainActivity extends AppCompatActivity {
-
- ...
-
- private MRZRecognizer mRecognizer;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
-
- ...
-
- try {
- mRecognizer = new MRZRecognizer();
- } catch (LabelRecognizerException e) {
- e.printStackTrace();
- }
-
- mRecognizer.setImageSource(mCamera);
- }
- }
- ```
-
-### Start Recognition Process
-
-1. Override the `MainActivity.onResume` and `MainActivity.onPause` functions to start/stop video MRZ recognition. After recognition starts, the `MRZRecognizer` will automatically process the video frames from the `CameraEnhancer`, then send the recognized `MRZResult` to the callback function.
-
- ```java
- public class MainActivity extends AppCompatActivity {
-
- ...
-
- @Override
- protected void onResume() {
- mRecognizer.startScanning();
- try {
- mCamera.open();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- super.onResume();
- }
-
-
- @Override
- protected void onPause() {
- mRecognizer.stopScanning();
- try {
- mCamera.close();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- super.onPause();
- }
- }
- ```
-
-### Obtain and Display Recognized MRZ Result
-
-1. Create a `MRZResultListener` and register with the `MRZRecognizer` instance to get recognized MRZ result.
-
- ```java
- ...
- import androidx.appcompat.app.AlertDialog;
- import android.content.DialogInterface;
-
- import com.dynamsoft.core.ImageData;
- import com.dynamsoft.dce.DCEFeedback;
- import com.dynamsoft.dlr.MRZResult;
- import com.dynamsoft.dlr.MRZResultListener;
-
- public class MainActivity extends AppCompatActivity {
-
- ...
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
-
- ...
-
- mMRZRecognizer.setMRZResultListener(new MRZResultListener() {
- @Override
- public void mrzResultCallback(int i, ImageData imageData, MRZResult mrzResult) {
- if (mrzResult != null && mrzResult.isParsed) {
- DCEFeedback.vibrate(MainActivity.this);
- mMRZRecognizer.stopScanning();
-
- runOnUiThread(() -> showResult(mrzResult));
- }
- }
- });
- }
-
- private void showResult(MRZResult mrzResult) {
- StringBuilder resultBuilder = new StringBuilder();
-
- resultBuilder.append("Document Type : " + mrzResult.docType + "\n");
- resultBuilder.append("Issuing State : " + mrzResult.issuer + "\n");
- resultBuilder.append("Surname : " + mrzResult.surname + "\n");
- resultBuilder.append("Given Name : " + mrzResult.givenName + "\n");
- resultBuilder.append("Passport Number : " + mrzResult.docId + "\n");
- resultBuilder.append("Nationality : " + mrzResult.nationality + "\n");
- resultBuilder.append("Date of Birth(YY-MM-DD) : " + mrzResult.dateOfBirth + "\n");
- resultBuilder.append("Gender : " + mrzResult.gender + "\n");
- resultBuilder.append("Date of Expiry(YY-MM-DD) : " + mrzResult.dateOfExpiration + "\n");
- resultBuilder.append("Is Parsed : " + mrzResult.isParsed + "\n");
- resultBuilder.append("Is Verified : " + mrzResult.isVerified + "\n");
- resultBuilder.append("MRZ Text : " + mrzResult.mrzText + "\n");
-
- showDialog("Result", resultBuilder.toString(), new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- mMRZRecognizer.startScanning();
- }
- });
- }
-
- private void showDialog(String title, String message, DialogInterface.OnClickListener listener) {
- new AlertDialog.Builder(this).setTitle(title)
- .setPositiveButton("OK", listener)
- .setMessage(message)
- .setCancelable(false)
- .show();
- }
- }
- ```
-
-### 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 `Run app` button, then Android Studio installs your app on your connected device and starts it.
diff --git a/programming-old/android/user-guide-v1.2.1.md b/programming-old/android/user-guide-v1.2.1.md
deleted file mode 100644
index 8a4ec40..0000000
--- a/programming-old/android/user-guide-v1.2.1.md
+++ /dev/null
@@ -1,87 +0,0 @@
----
-layout: default-layout
-title: Android User Guide - Dynamsoft Label Recognition
-description: This is the user guide page of Dynamsoft Label Recognition for Android Language.
-keywords: a, user guide
-needAutoGenerateSidebar: true
-permalink: /programming/android/user-guide-v1.2.1.html
----
-
-# Dynamsoft Label Recognition - Android User Guide
-
-## System Requirements
-
-- Operating systems:
- - Supported OS: Android 5 or higher (Android 7 or higher recommended)
- - Supported ABI: armeabi-v7a, arm64-v8a, x86, x86_64
-
-## Installation
-
-Download the Dynamsoft Label Recognition SDK from the [Dynamsoft website](https://www.dynamsoft.com/label-recognition/downloads) and unzip the package. The package includes a free trial license valid for 30 days.
-
-## Getting Started: Hello World
-
-1. Create a new Android project in Android Studio.
-
-2. Import the `DynamsoftLabelRecognitionAndroid.aar` package into the new project. To manually import the `.aar`:
-
- i. Locate `DynamsoftLabelRecognitionAndroid.aar` in the downloaded android zip.
- ii. Put the .aar file under the `libs` directory in the project.
- iii. In the project, open build.gradle(Module: app) and add the following code:
-
- ```groovy
- repositories {
- flatDir {
- dirs 'libs'
- }
- }
- ```
-
- iv. Add `.aar` reference in the dependencies:
-
- ```groovy
- implementation(name: 'DynamsoftLabelRecognitionAndroid', ext: 'aar')
- ```
-
- v. Click **Sync Now**. After the synchronization completes, `DynamsoftLabelRecognitionAndroid.aar` is added to the project.
-
-3. Add the following code to initiate and use the Dynamsoft Label Recognition SDK.
-
- ```java
- import com.dynamsoft.dlr.*;
- public class MainActivity extends AppCompatActivity {
- private LabelRecognition mRecognition;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- try {
- mRecognition = new LabelRecognition("");
- DLRResult[] results = mRecognition.recognizeByFile("", "");
-
- if (results != null && results.length > 0) {
- String strCurResult = "";
- for (int i = 0; i < results.length; i++) {
- strCurResult += "["+i+"] :\n";
- for (int j = 0; j < results[i].lineResults.length; j++) {
- strCurResult += results[i].lineResults[j].text + "\n";
- }
- }
- Log.i("DLR", strCurResult);
- }
- else {
- Log.i("DLR", "No results returned.");
- }
- }
- catch (Exception ex) {
- ex.printStackTrace();
- }
- }
- }
- ```
-
- Please replace `` with your DLR license key. You can request a 30-day trial license via the [Request a Trial License](https://www.dynamsoft.com/customer/license/trialLicense?product=dlr&utm_source=guide&package=android){:target="_blank"} link
-
- In the snippet above, `` should also be replaced with the full path to the image you'd like to recognize.
-
-4. Run the project.
diff --git a/programming-old/android/user-guide-v2.0.0.md b/programming-old/android/user-guide-v2.0.0.md
deleted file mode 100644
index 13c7df2..0000000
--- a/programming-old/android/user-guide-v2.0.0.md
+++ /dev/null
@@ -1,336 +0,0 @@
----
-layout: default-layout
-title: Android User Guide - Dynamsoft Label Recognizer
-description: This is the user guide page of Dynamsoft Label Recognizer for Android Language.
-keywords: a, user guide
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /programming/android/user-guide-v2.0.0.html
----
-
-# Dynamsoft Label Recognizer - Android User Guide
-
-* [Requirements](#requirements)
-* [Installation](#installation)
-* [Build Your First Application](#build-your-first-application)
- * [Create a New Project](#create-a-new-project)
- * [Include the Label Recognizer Library](#include-the-label-recognizer-library)
- * [Initialize the Label Recognizer](#initialize-the-label-recognizer)
- * [Recognition Process and How to Use the Results](#recognition-process-and-how-to-use-the-results)
- * [Additional Auxiliary Steps](#additional-auxiliary-steps)
- * [Build and Run the Project](#build-and-run-the-project)
-
-## Requirements
-
-- Operating systems:
- - Supported OS: Android 5 or higher (Android 7 or higher recommended)
- - Supported ABI: armeabi-v7a, arm64-v8a, x86, x86_64
-
-- Environment: Android Studio 3.4+.
-
-## Installation
-
-If you don't have SDK yet, please go to Dynamsoft website to get it. After the sdk is decompressed, the root directory of the DLR installation package is `DynamsoftLabelRecognizer`, which is represented by `[INSTALLATION FOLDER]`.
-
-## Build Your First Application
-
-The following sample will demonstrate how to take a picture and recognize it.
->Note:
->- The following steps are completed in Android Studio 4.2.
->- You can download the similar complete source code from [Here](https://github.com/Dynamsoft/label-recognizer-mobile-samples/tree/master/android/HelloWorld).
-
-### Create a New Project
-
-1. Open Android Studio and select New Project… in the File > New > New Project… menu to create a new project.
-
-2. Choose the correct template for your project. In this sample, we'll use `Empty Activity`.
-
-3. When prompted, choose your app name (`DLRAndroidSample`) and set the Save location, Language, and Minimum SDK (21)
- >Note: With minSdkVersion set to 21, your app is available on more than 94.1% of devices on the Google Play Store (last update: March 2021).
-
-
-### Include the Label Recognizer Library
-
-There are two ways to include the Dynamsoft Label Recognizer SDK into your project:
-
-#### Local Binary Dependency
-
-1. Copy the file `[INSTALLATION FOLDER]\DynamsoftLabelRecognizerAndroid.aar` and `[INSTALLATION FOLDER]\DynamsoftCoreAndroid.aar` to the target directory `DLRAndroidSample\app\libs`
-
-2. Open the file `DLRAndroidSample\app\build.gradle`, and add reference in the dependencies:
- ```
- dependencies {
- implementation fileTree(dir: 'libs', include: ['*.aar'])
- }
- ```
-
-3. Click `Sync Now`. After the synchronization completes, the SDK is added to the project.
-
-4. import the package int the file `MainActivity.java`
- ```java
- import com.dynamsoft.dlr.*;
- ```
-
-#### Remote Binary Dependency
-
-1. Open the file `DLRAndroidSample\app\build.gradle`, and add the remote repository:
- ```
- repositories {
- maven {
- url "https://download2.dynamsoft.com/maven/dc/aar"
- }
- maven {
- url "https://download2.dynamsoft.com/maven/dlr/aar"
- }
- }
- ```
-
-2. Add reference in the dependencies:
- ```
- dependencies {
- implementation 'com.dynamsoft:dynamsoftcore:{version-number}@aar'
- implementation 'com.dynamsoft:dynamsoftlabelrecognizer:{version-number}@aar'
- }
- ```
->Note:Please replace {version-number} with the correct version number.
-
-3. Click `Sync Now`. After the synchronization completes, the SDK is added to the project.
-
-4. import the package in the file `MainActivity.java`
- ```java
- import com.dynamsoft.dlr.*;
- ```
-
-### Initialize the Label Recognizer
-
-
-1. Initialize the license
-
- ```java
- LabelRecognizer.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSIsInByb2R1Y3RzIjoyfQ==", new DLRLicenseVerificationListener() {
- @Override
- public void DLRLicenseVerificationCallback(boolean isSuccess, Exception error) {
- if(!isSuccess){
- error.printStackTrace();
- }
- }
- });
- ```
-
- >Note:
- >- Network connection is required for the license to work.
- >- "DLS2***" is a default free public trial license used in the sample.
- >- You can request a 30-day trial license via the [Request a Trial License](https://www.dynamsoft.com/customer/license/trialLicense?product=dlr&utm_source=guide&package=android){:target="_blank"} link
-
-2. Create an instance of Dynamsoft Label Recognizer
-
- ```java
- LabelRecognizer dlr = new LabelRecognizer();
- ```
-
-### Recognition Process and How to Use the Results
-
-1. Recognizing text
-
- ```java
- DLRResult[] results = dlr.recognizeByFile(imgPath, "");
- ```
-
- >The variable `imgPath` represents the temporary storage location of the photos taken, which will be explained later.
-
-2. Get and output the recognition results
-
- ```java
- if (results != null && results.length > 0) {
- String strCurResult = "";
- for (int i = 0; i < results.length; i++) {
-
- // Get result of each text area (also called label).
- DLRResult result = results[i];
- strCurResult += "Result " + i + ":\n";
- for (int j = 0; j < result.lineResults.length; j++) {
-
- // Get the result of each text line in the label.
- DLRLineResult lineResult = result.lineResults[j];
- strCurResult += ">>Line Result " + j + ": " + lineResult.text + "\n";
- }
- }
- }
- ```
-
- The recognition results of SDK are organized into a four-tier structure:
- - `DLRResult[]` corresponds to the results of an `image`
- - `DLRResult` corresponds to the result of a `TextArea` (also called Label)
- - `DLRLineResult` corresponds to the result of each `TextLine` in the Label
- - `DLRCharacterResult` corresponds to the result of each `Character` in the `TextLine`
-
- The structure is shown in the figure below:
-
-
-
-
Figure 1 – DLR Result Structure
-
-
-### Additional Auxiliary Steps
-
-1. In the Project window, open app > res > layout > activity_main.xml, and add four controls (one `ImageView`, one `TextView` and two `Buttons`). The following code shows the addition code of `activity_main.xml`.
- ```xml
-
-
-
-
-
-
-
-
-
-
-
-
-
- ```
-
-2. Add four UI variables and event response codes
-
- ```java
- // Click to take a photo
- private Button btnCapture;
- // Click to recognize thext
- private Button btnRecognize;
- // Display the photo taken with Camera App
- private ImageView imgView;
- // Display the recognition results
- private TextView txtView;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- btnCapture =(Button)findViewById(R.id.btnCapture);
- btnRecognize =(Button)findViewById(R.id.btnRecognize);
- imgView = (ImageView)findViewById(R.id.imgView);
- txtView = (TextView)findViewById(R.id.txtView);
-
- btnCapture.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- // take a photo with Camera App
- takePhoto();
- }
- });
-
- btnRecognize.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- // recognize text in the photo
- recognizeText();
- }
- });
- }
- ```
- >Note: The implementation of the `recognizeText` function has been explained in [Initialize the Dynamsoft Label Recognizer](#initialize-the-dynamsoft-label-recognizer) and [Recognizing and output results](#recognizing-and-output-results).
-
-3. Take a photo with the camera app.
- ```java
- // Uri of the captured photo
- private Uri imgUri;
- // The full path of the captured photo
- private String imgPath;
-
- private void takePhoto() {
- String status= Environment.getExternalStorageState();
- if(status.equals(Environment.MEDIA_MOUNTED)) {
- try {
- File outputImage = new File(getExternalCacheDir(), "output_image.jpg");
- imgPath = outputImage.getAbsolutePath();
-
- if (outputImage.exists()) {
- outputImage.delete();
- }
- outputImage.createNewFile();
-
- if (Build.VERSION.SDK_INT >= 24) {
- imgUri = FileProvider.getUriForFile(this, "com.example.dlrandroidsample", outputImage);
- } else {
- imgUri = Uri.fromFile(outputImage);
- }
-
- Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
- intent.putExtra(MediaStore.EXTRA_OUTPUT, imgUri);
- startActivityForResult(intent, Image_Capture_Code);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- ```
-
-4. Display the photo in the `ImageView` control
- ```java
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
-
- if (requestCode == Image_Capture_Code && resultCode == RESULT_OK) {
- try {
- Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(imgUri));
- imgView.setImageBitmap(bitmap);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- ```
-
-5. Config the `FileProvdier` in the file `AndroidManifest.xml`
- ```xml
-
-
-
-
- ```
- >Note: Make sure that the authorities string matches the second argument to `getUriForFile`. In the meta-data section of the provider definition, you can see that the provider expects eligible paths to be configured in a dedicated resource file, res/xml/file_paths.xml. Here is the content required for this particular example:
-
- ```xml
-
-
-
-
- ```
-
-You can download the similar complete source code from [Here](https://github.com/Dynamsoft/label-recognizer-mobile-samples/tree/master/android/HelloWorld).
-
-### 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 `Run app` button, then Android Studio installs your app on your connected device and starts it.
-
diff --git a/programming-old/android/user-guide-v2.2.20.md b/programming-old/android/user-guide-v2.2.20.md
deleted file mode 100644
index 111a301..0000000
--- a/programming-old/android/user-guide-v2.2.20.md
+++ /dev/null
@@ -1,369 +0,0 @@
----
-layout: default-layout
-title: Android User Guide - Dynamsoft Label Recognizer
-description: This is the user guide page of Dynamsoft Label Recognizer for Android Language.
-keywords: a, user guide
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /programming/android/user-guide-v2.2.20.html
----
-
-# Dynamsoft Label Recognizer - Android User Guide
-
-- [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 Library](#include-the-library)
- - [Initialize the License](#initialize-the-license)
- - [Initialize Camera Module](#initialize-camera-module)
- - [Initialize Label Recognizer](#initialize-label-recognizer)
- - [Start Recognition Process](#start-recognition-process)
- - [Obtain And Display Recognized Results](#obtain-and-display-recognized-results)
- - [Build and Run the Project](#build-and-run-the-project)
-
-## 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 3.4+ (Android Studio 4.2+ recommended).
-
-## Add the SDK
-
-The Dynamsoft Label Recognizer (DLR) Android SDK comes with three modules:
-
-- **DynamsoftLabelRecognizer.aar**: Main module. Provides APIs to recognize text from image files and camera video.
-
-- **DynamsoftCore.aar**: The core library of Dynamsoft's capture vision SDKs, including common basic structure and license related APIs.
-
-- **DynamsoftCameraEnhancer.aar** (Optional): Dynamsoft Camera Enhancer (DCE) module for getting video frames from mobile cameras. Provides APIs for camera control, camera preview, and other advanced features.
-
-There are two ways to add the SDK into your project - **Manually** and **Maven**.
-
-### Add the Library Manually
-
-1. Download the SDK package from the Dynamsoft Website. After unzipping, three **aar** files can be found in the **DynamsoftLabelRecognizer\Libs** directory:
-
- - **DynamsoftLabelRecognizer.aar**
- - **DynamsoftCore.aar**
- - **DynamsoftCameraEnhancer.aar** (Optional)
- >Note:
- >
- >If you want to use Android Camera SDK or your own sdk to control camera, please ignore **DynamsoftCameraEnhancer.aar** in the following steps.
-
-2. Copy the above two **aar** files to the target directory such as `[App Project Root Path]\app\libs`
-
-3. Open the file `[App Project Root Path]\app\build.gradle` and add reference in the dependencies:
-
- ```groovy
- dependencies {
- implementation fileTree(dir: 'libs', include: ['*.aar'])
-
- def camerax_version = '1.1.0'
- implementation "androidx.camera:camera-core:$camerax_version"
- implementation "androidx.camera:camera-camera2:$camerax_version"
- implementation "androidx.camera:camera-lifecycle:$camerax_version"
- implementation "androidx.camera:camera-view:$camerax_version"
- }
- ```
-
- > Note:
- >
- > DCE 3.x is based on Android CameraX, so you need to add the CameraX dependency manually.
-
-4. Click **Sync Now**. After the synchronization completes, the SDK is added to the project.
-
-### Add the Library via Maven
-
-1. Open the file `[App Project Root Path]\app\build.gradle` and add the maven repository:
-
- ```groovy
- repositories {
- maven {
- url "https://download2.dynamsoft.com/maven/aar"
- }
- }
- ```
-
-2. Add reference in the dependencies:
-
- ```groovy
- dependencies {
- implementation 'com.dynamsoft:dynamsoftlabelrecognizer:2.2.20'
- // Remove the following line if you want to use Android Camera sdk or your own sdk to control camera.
- implementation 'com.dynamsoft:dynamsoftcameraenhancer:3.0.1'
- }
- ```
-
-3. Click **Sync Now**. After the synchronization completes, the SDK is added to the project.
-
-## Build Your First Application
-
-The following sample will demonstrate how to create a HelloWorld app for recognizing text from camera video input.
->Note:
->
->- The following steps are completed in Android Studio 4.2.
->- You can download the similar complete source code from [Here](https://github.com/Dynamsoft/label-recognizer-mobile-samples/tree/master/android/HelloWorld).
-
-### Create a New Project
-
-1. Open Android Studio and select New Project… in the File > New > New Project… menu to create a new project.
-
-2. Choose the correct template for your project. In this sample, we'll use `Empty Activity`.
-
-3. When prompted, choose your app name (`HelloWorld`) and set the Save location, Language, and Minimum SDK (21)
- >Note: With minSdkVersion set to 21, your app is available on more than 94.1% of devices on the Google Play Store (last update: March 2021).
-
-### Include the Library
-
-Add the SDK to your new project. Please read [Add the SDK](#add-the-sdk) section for more details.
-
-### Initialize the License
-
-1. Import the `LicenseManager` class and initialize the license in the file `MainActivity.java`.
-
- ```java
- import com.dynamsoft.core.LicenseManager;
- import com.dynamsoft.core.LicenseVerificationListener;
- import com.dynamsoft.core.CoreException;
-
- public class MainActivity extends AppCompatActivity {
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
-
- LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", MainActivity.this, new LicenseVerificationListener() {
- @Override
- public void licenseVerificationCallback(boolean isSuccess, CoreException error) {
- if(!isSuccess){
- error.printStackTrace();
- }
- }
- });
- }
- }
- ```
-
- >Note:
- >
- >- Network connection is required for the license to work.
- >- The license string here will grant you a time-limited trial license.
- >- You can request a 30-day trial license via the [Request a Trial License](https://www.dynamsoft.com/customer/license/trialLicense?product=dlr&utm_source=guide&package=android){:target="_blank"} link
-
-### Initialize 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 module, initialize the camera view and bind to the created Camera Enhancer instance in the file `MainActivity.java`.
-
- ```java
- ...
-
- import com.dynamsoft.dce.DCECameraView;
- import com.dynamsoft.dce.CameraEnhancer;
- import com.dynamsoft.dce.CameraEnhancerException;
-
- public class MainActivity extends AppCompatActivity {
- private CameraEnhancer mCamera;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
-
- ...
-
- DCECameraView cameraView = findViewById(R.id.camera_view);
-
- mCamera = new CameraEnhancer(MainActivity.this);
- mCamera.setCameraView(cameraView);
- }
- }
- ```
-
-3. Define a scan region for recognition.
-
- ```java
- ...
-
- import com.dynamsoft.core.RegionDefiniton;
-
- public class MainActivity extends AppCompatActivity {
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
-
- ...
-
- RegionDefinition region = new RegionDefinition(10, 40, 90, 60, 1);
- try {
- mCamera.setScanRegion(region);
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- }
- }
- ```
-
-### Initialize Label Recognizer
-
-1. Import and initialize the label recognizer, bind to the created Camera Enhancer instance.
-
- ```java
- ...
-
- import com.dynamsoft.dlr.LabelRecognizer;
- import com.dynamsoft.dlr.LabelRecognizerException;
-
- public class MainActivity extends AppCompatActivity {
-
- ...
-
- private LabelRecognizer mRecognizer;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
-
- ...
-
- try {
- mRecognizer = new LabelRecognizer();
- } catch (LabelRecognizerException e) {
- e.printStackTrace();
- }
-
- mRecognizer.setImageSource(mCamera);
- }
- }
- ```
-
-### Start Recognition Process
-
-1. Override the `MainActivity.onResume` and `MainActivity.onPause` functions to start/stop video text recognition. After recognition starts, the Label Recognizer will automatically invoke the `recognizeBuffer` API to process the video frames from the Camera Enhancer, then send the recognized text results to the callback function.
-
- ```java
- public class MainActivity extends AppCompatActivity {
-
- ...
-
- @Override
- protected void onResume() {
- mRecognizer.startScanning();
- try {
- mCamera.open();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- super.onResume();
- }
-
-
- @Override
- protected void onPause() {
- mRecognizer.stopScanning();
- try {
- mCamera.close();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- super.onPause();
- }
- }
- ```
-
-### Obtain and Display Recognized Results
-
-1. Create a label result listener and register with the label recognizer instance to get recognized label results.
-
- ```java
- ...
- import android.app.AlertDialog;
- import android.app.Dialog;
- import android.content.DialogInterface;
- import com.dynamsoft.core.ImageData;
- import com.dynamsoft.dlr.DLRResult;
- import com.dynamsoft.dlr.DLRLineResult;
- import com.dynamsoft.dlr.LabelResultListener;
-
- public class MainActivity extends AppCompatActivity {
-
- ...
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
-
- ...
-
- mRecognizer.setLabelResultListener(new LabelResultListener() {
- @Override
- public void labelResultCallback(int id, ImageData imageData, DLRResult[] dlrResults) {
- if (dlrResults != null && dlrResults.length > 0) {
- mRecognizer.stopScanning();
- showResults(dlrResults);
- }
- }
- });
- }
-
- private void showResults(DLRResult[] results) {
- StringBuilder resultBuilder = new StringBuilder();
- if (results != null) {
- for (DLRResult result : results) {
- for (DLRLineResult lineResult : result.lineResults) {
- resultBuilder.append(lineResult.text).append("\n\n");
- }
- }
- }
-
- runOnUiThread(new Runnable() {
- @Override
- public void run() {
- Dialog alertDialog = new AlertDialog.Builder(MainActivity.this).
- setTitle("Label Results").
- setMessage(resultBuilder.toString()).
- setPositiveButton("OK", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- mRecognizer.startScanning();
- }
- }).
- create();
- alertDialog.show();
- }
- });
- }
- }
- ```
-
- The recognition results of SDK are organized into a four-tier structure:
- - `DLRResult[]` corresponds to the results of an `image`
- - `DLRResult` corresponds to the result of a `TextArea` (also called Label)
- - `DLRLineResult` corresponds to the result of each `TextLine` in the Label
- - `DLRCharacterResult` corresponds to the result of each `Character` in the `TextLine`
-
- The structure is shown in the figure below:
-
-
-
-
Figure 1 – DLR Result Structure
-
-
-You can download the similar complete source code from [Here](https://github.com/Dynamsoft/label-recognizer-mobile-samples/tree/master/android/HelloWorld).
-
-### 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 `Run app` button, then Android Studio installs your app on your connected device and starts it.
diff --git a/programming-old/objectivec-swift/api-reference/barcode-result.md b/programming-old/objectivec-swift/api-reference/barcode-result.md
deleted file mode 100644
index d344fdb..0000000
--- a/programming-old/objectivec-swift/api-reference/barcode-result.md
+++ /dev/null
@@ -1,103 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Core iOS Class - iBarcodeResult
-description: This page shows the iBarcodeResult Class of Dynamsoft Core for iOS Language.
-keywords: iBarcodeResult, iOS
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/objectivec-swift/api-reference/barcode-result.html
----
-
-
-# iBarcodeResult
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v2.2.20.
-
-Stores the barcode result.
-
-```objc
-@interface iBarcodeResult : NSObject
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`barcodeFormat`](#barcodeformat) | [`EnumBarcodeFormat`]({{ site.enumerations }}barcode-format.html) |
-| [`barcodeFormat_2`](#barcodeformat_2) | [`EnumBarcodeFormat_2`]({{ site.enumerations }}barcode-format-2.html) |
-| [`text`](#text) | *NSString\** |
-| [`bytes`](#bytes) | *NSData\** |
-| [`location`](#location) | [`iQuadrilateral`](quadrilateral.md)\* |
-| [`moduleSize`](#modulesize) | *int* |
-| [`pageNumber`](#pagenumber) | *int* |
-
-
-
-### barcodeFormat
-
-Barcode type in BarcodeFormat group 1.
-
-```objc
-EnumBarcodeFormat barcodeFormat
-```
-
-
-
-### barcodeFormat_2
-
-Barcode type in BarcodeFormat group 2.
-
-```objc
-EnumBarcodeFormat_2 barcodeFormat_2
-```
-
-
-
-### text
-
-The barcode text, ends by '\0'.
-
-```objc
-NSString* text
-```
-
-
-
-### bytes
-
-The barcode content in a byte array.
-
-```objc
-NSData* bytes
-```
-
-
-
-### location
-
-The location of current recognized text.
-
-```objc
-iQuadrilateral* location
-```
-
-
-
-### moduleSize
-
-The barcode module size (the minimum bar width in pixel).
-
-```objc
-int moduleSize
-```
-
-
-
-### pageNumber
-
-The page number the barcode located in. The index is 0-based.
-
-```objc
-int pageNumber
-```
diff --git a/programming-old/objectivec-swift/api-reference/class/dlr-character-result.md b/programming-old/objectivec-swift/api-reference/class/dlr-character-result.md
deleted file mode 100644
index 7011561..0000000
--- a/programming-old/objectivec-swift/api-reference/class/dlr-character-result.md
+++ /dev/null
@@ -1,49 +0,0 @@
----
-layout: default-layout
-title: iDLRCharacterResult - Dynamsoft Label Recognition iOS Class
-description: This page shows the DLRCharacterResult class of Dynamsoft Label Recognition for iOS SDK.
-keywords: iDLRCharacterResult, objective-c, oc, swift
-needAutoGenerateSidebar: true
-permalink: /programming/objectivec-swift/api-reference/class/dlr-character-result.html
----
-
-
-# iDLRCharacterResult
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v1.x.
-
-Stores the character result.
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`characterH`](#characterh) | *NSString \** |
-| [`characterM`](#characterm) | *NSString \** |
-| [`characterL`](#characterl) | *NSString \** |
-| [`location`](#location) | [`iDLRQuadrilateral`](dlr-quadrilateral.md)\* |
-
-
-### characterH
-The recognized character with highest confidence.
-```objc
-NSString* characterH
-```
-
-### characterM
-The recognized character with middle confidence.
-```objc
-NSString* characterM
-```
-
-### characterL
-The recognized character with lowest confidence.
-```objc
-NSString* characterL
-```
-
-### location
-The location of current character.
-```objc
-iDLRQuadrilateral* location
-```
diff --git a/programming-old/objectivec-swift/api-reference/class/dlr-image-data.md b/programming-old/objectivec-swift/api-reference/class/dlr-image-data.md
deleted file mode 100644
index ac5349a..0000000
--- a/programming-old/objectivec-swift/api-reference/class/dlr-image-data.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-layout: default-layout
-title: iDLRImageData - Dynamsoft Label Recognition iOS Class
-description: This page shows the iDLRImageData class of Dynamsoft Label Recognition for iOS SDK.
-keywords: iDLRImageData, objective-c, oc, swift
-needAutoGenerateSidebar: true
-permalink: /programming/objectivec-swift/api-reference/class/dlr-image-data.html
----
-
-
-# iDLRImageData
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v1.x.
-
-Stores the image data.
-
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`bytes`](#bytes) | *NSData\** |
-| [`width`](#width) | *NSInteger* |
-| [`height`](#height) | *NSInteger* |
-| [`stride`](#stride) | *NSInteger* |
-| [`format`](#format) | [`EnumDLRImagePixelFormat`]({{ site.enumerations }}other-enums.html#dlrimagepixelformat) |
-
-
-### bytes
-The image data content in a byte array.
-```objc
-NSData* bytes
-```
-
-### width
-The width of the image in pixels.
-```objc
-NSInteger width
-```
-
-### height
-The height of the image in pixels.
-```objc
-NSInteger height
-```
-
-### stride
-The stride (or scan width) of the image.
-```objc
-NSInteger stride
-```
-
-### format
-The image pixel format used in the image byte array.
-```objc
-EnumDLRImagePixelFormat format
-```
-
-
diff --git a/programming-old/objectivec-swift/api-reference/class/dlr-line-result.md b/programming-old/objectivec-swift/api-reference/class/dlr-line-result.md
deleted file mode 100644
index 1547621..0000000
--- a/programming-old/objectivec-swift/api-reference/class/dlr-line-result.md
+++ /dev/null
@@ -1,66 +0,0 @@
----
-layout: default-layout
-title: iDLRLineResult - Dynamsoft Label Recognition iOS Class
-description: This page shows the iDLRLineResult class of Dynamsoft Label Recognition for iOS SDK.
-keywords: iDLRLineResult, class, objective-c, oc, swift
-needAutoGenerateSidebar: true
-permalink: /programming/objectivec-swift/api-reference/class/dlr-line-result.html
----
-
-
-# iDLRLineResult
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v1.x.
-
-Stores the line result.
-
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`lineSpecificationName`](#linespecificationname) | *NSString\** |
-| [`text`](#text) | *NSString\** |
-| [`characterModelName`](#charactermodelname) | *NSString\** |
-| [`location`](#location) | [`DLRQuadrilateral`](dlr-quadrilateral.md)\* |
-| [`confidence`](#confidence) | *NSInteger* |
-| [`characterResults`](#characterresults) | NSArray<[`iDLRCharacterResult`](dlr-character-result.md)\*>\*|
-
-
-### lineSpecificationName
-The name of the line specification used to recognize current line result.
-```objc
-NSString* lineSpecificationName
-```
-
-### text
-The recognized text, ends by '\0'.
-```objc
-NSString* text
-```
-
-### characterModelName
-The character model used to recognize the text.
-```objc
-NSString* characterModelName
-```
-
-### location
-The location of current line.
-```objc
-iDLRQuadrilateral* location
-```
-
-
-### confidence
-The confidence of the result. It ranges from 0 to 100.
-```objc
-NSInteger confidence
-```
-
-### characterResults
-The character results array.
-```objc
-NSArray* characterResults
-```
-
diff --git a/programming-old/objectivec-swift/api-reference/class/dlr-lts-connection-parameters.md b/programming-old/objectivec-swift/api-reference/class/dlr-lts-connection-parameters.md
deleted file mode 100644
index 6edb7ac..0000000
--- a/programming-old/objectivec-swift/api-reference/class/dlr-lts-connection-parameters.md
+++ /dev/null
@@ -1,201 +0,0 @@
----
-layout: default-layout
-title: iDLRLTSConnectionParameters - Dynamsoft Label Recognition iOS Class
-description: This page shows the iDMLTSConnectionParameters class of Dynamsoft Label Recognition for iOS SDK.
-keywords: iDMLTSConnectionParameters, class, objective-c, oc, swift
-needAutoGenerateSidebar: true
-permalink: /programming/objectivec-swift/api-reference/class/dlr-lts-connection-parameters.html
----
-
-
-# iDLRLTSConnectionParameters
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v1.x.
-
-Defines a class to configure the parameters to connect to license tracking server.
-
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`mainServerURL`](#mainserverurl) | *NSString\** |
-| [`standbyServerURL`](#standbyserverurl) | *NSString\** |
-| [`handshakeCode`](#handshakecode) | *NSString\** |
-| [`sessionPassword`](#sessionpassword) | *NSString\** |
-| [`chargeWay`](#chargeway) | *EnumDMChargeWay* |
-| [`UUIDGenerationMethod`](#uuidgenerationmethod) | *EnumDMUUIDGenerationMethod* |
-| [`maxBufferDays`](#maxbufferdays) | *NSInteger* |
-| [`limitedLicenseModules`](#limitedlicensemodules) | *NSArray\** |
-| [`organizationID`](#organizationid) | *NSString\** |
-| [`products`](#products) | *NSInteger* |
-
-
-### mainServerURL
-The URL of the license tracking server.
-```objc
-NSString* mainServerURL
-```
-
-**Value Range**
-
-Any string value
-
-**Default value**
-
-""
-
-**Remarks**
-
-If you choose "Dynamsoft-hosting", then no need to change the value of MainServerURL and StandbyServerURL. When both are set to null (default value), it will connect to Dynamsoft's license tracking servers for online verification.
-
-
-### standbyServerURL
-The URL of the standby license tracking server.
-```objc
-NSString* standbyServerURL
-```
-
-**Value Range**
-
-Any string value
-
-**Default value**
-
-""
-
-**Remarks**
-
-If you choose "Dynamsoft-hosting", then no need to change the value of MainServerURL and StandbyServerURL. When both are set to null (default value), it will connect to Dynamsoft's license tracking servers for online verification.
-
-
-### handshakeCode
-The handshake code.
-```objc
-NSString* handshakeCode
-```
-
-**Value Range**
-
-Any string value
-
-**Default value**
-
-""
-
-### sessionPassword
-The session password of the handshake code set in license tracking server.
-```objc
-NSString* sessionPassword
-```
-
-**Value Range**
-
-Any string value
-
-**Default value**
-
-""
-
-### chargeWay
-Sets the charge way.
-```objc
-EnumDMChargeWay chargeWay
-```
-
-**Value Range**
-
-A value of [`EnumDMChargeWay`]({{ site.enumerations }}other-enums.html#dm_chargeway) Enumeration items.
-
-**Default value**
-
-`EnumDMChargeWayAuto`
-
-**See also**
-
-[`EnumDMChargeWay`]({{ site.enumerations }}other-enums.html#dm_chargeway)
-
-
-### UUIDGenerationMethod
-Sets the method to generate UUID.
-```objc
-EnumDMUUIDGenerationMethod UUIDGenerationMethod
-```
-
-**Value Range**
-
-A value of [`EnumDMUUIDGenerationMethod`]({{ site.enumerations }}other-enums.html#dm_uuidgenerationmethod) Enumeration items.
-
-**Default value**
-
-`EnumDMUUIDGenerationMethodRandom`
-
-**See also**
-
-[`EnumDMUUIDGenerationMethod`]({{ site.enumerations }}other-enums.html#dm_uuidgenerationmethod)
-
-
-### maxBufferDays
-Sets the max days to buffer the license info.
-```objc
-NSInteger maxBufferDays
-```
-
-**Value Range**
-
-[0,0x7fffffff]
-
-**Default value**
-
-7
-
-### limitedLicenseModules
-Sets the license modules to use.
-```objc
-NSArray* limitedLicenseModules
-```
-
-**Value Range**
-
-Each array item can be any one of the [`EnumDMLicenseModule`]({{ site.enumerations }}other-enums.html#dm_licensemodule) Enumeration items.
-
-**Default value**
-
-nil
-
-**See also**
-
-[`EnumDMLicenseModule`]({{ site.enumerations }}other-enums.html#dm_licensemodule)
-
-### organizationID
-The organization ID got from Dynamsoft.
-```objc
-NSString* organizationID
-```
-
-**Value Range**
-
-Any string value
-
-**Default value**
-
-""
-
-### products
-Sets the products to get the license for. Product values can be combined.
-```objc
-NSInteger products
-```
-
-**Value Range**
-
-A combine value of [`EnumProduct`]({{ site.enumerations }}other-enums.html#product) Enumeration items.
-
-**Default value**
-
-`EnumProductALL`
-
-**See also**
-
-[`EnumProduct`]({{ site.enumerations }}other-enums.html#product)
-
\ No newline at end of file
diff --git a/programming-old/objectivec-swift/api-reference/class/dlr-quadrilateral.md b/programming-old/objectivec-swift/api-reference/class/dlr-quadrilateral.md
deleted file mode 100644
index a958512..0000000
--- a/programming-old/objectivec-swift/api-reference/class/dlr-quadrilateral.md
+++ /dev/null
@@ -1,32 +0,0 @@
----
-layout: default-layout
-title: iDLRQuadrilateral - Dynamsoft Label Recognition iOS Class
-description: This page shows the iDLRQuadrilateral class of Dynamsoft Label Recognition for iOS SDK.
-keywords: iDLRQuadrilateral, class, objective-c, oc, swift
-needAutoGenerateSidebar: true
-permalink: /programming/objectivec-swift/api-reference/class/dlr-quadrilateral.html
----
-
-
-# iDLRQuadrilateral
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v1.x.
-
-Stores the quadrilateral.
-
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`points`](#points) | *NSArray\** |
-
-
-### points
-Four vertexes in a clockwise direction of a quadrilateral. Index 0 represents the left-most vertex.
-```objc
-NSArray* points
-```
-
-
-
diff --git a/programming-old/objectivec-swift/api-reference/class/dlr-reference-region.md b/programming-old/objectivec-swift/api-reference/class/dlr-reference-region.md
deleted file mode 100644
index cbcd19c..0000000
--- a/programming-old/objectivec-swift/api-reference/class/dlr-reference-region.md
+++ /dev/null
@@ -1,152 +0,0 @@
----
-layout: default-layout
-title: iDLRReferenceRegion - Dynamsoft Label Recognition iOS Class
-description: Documentation page of iDLRReferenceRegion class of Dynamsoft Label Recognition.
-keywords: iDLRReferenceRegion, class, objective-c, oc, swift
-needAutoGenerateSidebar: true
-permalink: /programming/objectivec-swift/api-reference/class/dlr-reference-region.html
----
-
-
-# iDLRReferenceRegion
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v1.x.
-
-Stores the reference region information.
-
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`localizationSourceType`](#localizationsourcetype) | [`EnumDLRLocalizationSourceType`]({{ site.enumerations }}other-enums.html#dlrlocalizationsourcetype) |
-| [`points`](#points) | *NSArray\** |
-| [`regionMeasuredByPercentage`](#regionmeasuredbypercentage) | *NSInteger* |
-| [`regionPredetectionModesIndex`](#regionpredetectionmodesindex) | *NSInteger* |
-| [`barcodeFormatIds`](#barcodeformatids) | *NSInteger* |
-| [`barcodeFormatIds_2`](#barcodeformatids_2) | *NSInteger* |
-| [`barcodeTextRegExPattern`](#barcodetextregexpattern) | *NSString\** |
-
-### localizationSourceType
-The source type used to localize the reference region(s).
-```objc
-NSInteger localizationSourceType
-```
-
-**Value Range**
-
-A value of [`EnumDLRLocalizationSourceType`]({{ site.enumerations }}other-enums.html#dlrlocalizationsourcetype) Enumeration items.
-
-**Default value**
-
-`EnumDLRLocalizationSourceTypeManualSpecification`
-
-**Remarks**
-
-
-
-### points
-Four vertexes in a clockwise direction of a quadrilateral. Index 0 represents the left-most vertex.
-```objc
-NSArray* points
-```
-
-**Remarks**
-
-It works only when [localizationSourceType](#localizationsourcetype) is setting to EnumDLRLocalizationSourceTypeManualSpecification.
- The library will localize reference region(s) based on the quadrilateral set by current setting.
-
-### regionMeasuredByPercentage
-Whether or not to use percentage to measure the coordinate.
-```objc
-NSInteger regionMeasuredByPercentage
-```
-
-**Value Range**
-
-[0, 1]
-
-**Default value**
-
-1
-
-**Remarks**
-
-When it's set to 1, the values of points indicate percentage (from 0 to 100); Otherwise, they indicate coordinates in pixel.
- 0: not by percentage
- 1: by percentage
- It works only when [localizationSourceType](#localizationsourcetype) is setting to EnumDLRLocalizationSourceTypeManualSpecification.
-
-
-### regionPredetectionModesIndex
-The index of a specific region predetection mode in the regionPredetectionModes parameter.
-```objc
-NSInteger regionPredetectionModesIndex
-```
-
-**Value Range**
-
-[-1, 0x7fffffff]
-
-**Default value**
-
--1
-
-**Remarks**
-
-It works only when [localizationSourceType](#localizationsourcetype) is setting to EnumDLRLocalizationSourceTypePredetectedRegion.
- The library will localize reference region(s) based on the detected regions from the specified region predetection mode.
- -1: all region predetection modes in the regionPredetectionModes parameter
-
-
-### barcodeFormatIds
-The formats of the barcode in BarcodeFormat group 1.
-```objc
-NSInteger barcodeFormatIds
-```
-
-**Value Range**
-
-A combined value of [`EnumBarcodeFormat`]({{ site.enumerations }}other-enums.html#dlrbarcodeformat) Enumeration items
-
-**Default value**
-
-EnumBarcodeFormatALL
-
-**Remarks**
-
-Barcode formats in DLRBarcodeFormat group 1 can be combined.
- It works only when [localizationSourceType](#localizationsourcetype) is setting to EnumDLRLocalizationSourceTypeBarcode.
- The library will localize reference region(s) based on the barcodes whose format meets current setting.
-
-
-### barcodeFormatIds_2
-The formats of the barcode in BarcodeFormat group 2.
-```objc
-NSInteger barcodeFormatIds_2
-```
-
-**Value Range**
-
-A combined value of [`EnumBarcodeFormat_2`]({{ site.enumerations }}other-enums.html#dlrbarcodeformat_2) Enumeration items
-
-**Default value**
-
-EnumBarcodeFormat2NULL
-
-**Remarks**
-
-Barcode formats in DLRBarcodeFormat group 2 can be combined.
- It works only when [localizationSourceType](#localizationsourcetype) is setting to EnumDLRLocalizationSourceTypeBarcode.
- The library will localize reference region(s) based on the barcodes whose format meets current setting.
-
-### barcodeTextRegExPattern
-The regular express pattern of barcode text.
-```objc
-NSString* barcodeTextRegExPattern
-```
-
-**Remarks**
-
-It works only when [localizationSourceType](#localizationsourcetype) is setting to EnumDLRLocalizationSourceTypeBarcode.
- The library will localize reference region(s) based on the barcodes whose text meets current setting.
diff --git a/programming-old/objectivec-swift/api-reference/class/dlr-result-v1.0.md b/programming-old/objectivec-swift/api-reference/class/dlr-result-v1.0.md
deleted file mode 100644
index 40e48b2..0000000
--- a/programming-old/objectivec-swift/api-reference/class/dlr-result-v1.0.md
+++ /dev/null
@@ -1,61 +0,0 @@
----
-layout: default-layout
-title: iDLRResult - Dynamsoft Label Recognition iOS Class
-description: This page shows the iDLRResult class of Dynamsoft Label Recognition for iOS SDK.
-keywords: iDLRResult, class, objective-c, oc, swift
-needAutoGenerateSidebar: true
-permalink: /programming/objectivec-swift/api-reference/class/dlr-result-v1.0.html
----
-
-
-# iDLRResult
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v1.x.
-
-Stores the recognized result.
-
-
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`referenceRegionName`](#referenceregionname) | *NSString\** |
-| [`textAreaName`](#textareaname) | *NSString\** |
-| [`location`](#location) | [`iDLRQuadrilateral`](dlr-quadrilateral.md)\* |
-| [`confidence`](#confidence) | *NSInteger* |
-| [`lineResults`](#lineresults) | NSArray<[`iDLRLineResult`](dlr-line-result.md)\*>\* |
-
-
-### referenceRegionName
-The name of the reference region which is used to recognize the current result.
-```objc
-NSString* referenceRegionName
-```
-
-### textAreaName
-The name of the text area used to recognize current result.
-```objc
-NSString* textAreaName
-```
-
-### location
-The location of current recognized text.
-```objc
-iDLRQuadrilateral* location
-```
-
-
-### confidence
-The confidence of the result. It ranges from 0 to 100.
-```objc
-NSInteger confidence
-```
-
-
-### lineResults
-The line results array.
-```objc
-NSArray* lineResults
-```
-
diff --git a/programming-old/objectivec-swift/api-reference/class/dlr-result.md b/programming-old/objectivec-swift/api-reference/class/dlr-result.md
deleted file mode 100644
index d5f8430..0000000
--- a/programming-old/objectivec-swift/api-reference/class/dlr-result.md
+++ /dev/null
@@ -1,67 +0,0 @@
----
-layout: default-layout
-title: iDLRResult - Dynamsoft Label Recognition iOS Class
-description: This page shows the iDLRResult class of Dynamsoft Label Recognition for iOS SDK.
-keywords: iDLRResult, class, objective-c, oc, swift
-needAutoGenerateSidebar: true
-permalink: /programming/objectivec-swift/api-reference/class/dlr-result.html
----
-
-
-# iDLRResult
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v1.x.
-
-Stores the recognized result.
-
-
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`referenceRegionName`](#referenceregionname) | *NSString\** |
-| [`textAreaName`](#textareaname) | *NSString\** |
-| [`location`](#location) | [`iDLRQuadrilateral`](dlr-quadrilateral.md)\* |
-| [`confidence`](#confidence) | *NSInteger* |
-| [`lineResults`](#lineresults) | NSArray<[`iDLRLineResult`](dlr-line-result.md)\*>\* |
-| [`pageNumber`](#pagenumber) | *NSInteger* |
-
-
-### referenceRegionName
-The name of the reference region which is used to recognize the current result.
-```objc
-NSString* referenceRegionName
-```
-
-### textAreaName
-The name of the text area used to recognize current result.
-```objc
-NSString* textAreaName
-```
-
-### location
-The location of current recognized text.
-```objc
-iDLRQuadrilateral* location
-```
-
-
-### confidence
-The confidence of the result. It ranges from 0 to 100.
-```objc
-NSInteger confidence
-```
-
-
-### lineResults
-The line results array.
-```objc
-NSArray* lineResults
-```
-
-### pageNumber
-The page number the result located in. The index is 0-based.
-```objc
-NSInteger pageNumber
-```
diff --git a/programming-old/objectivec-swift/api-reference/class/dlr-runtime-settings.md b/programming-old/objectivec-swift/api-reference/class/dlr-runtime-settings.md
deleted file mode 100644
index 88bc247..0000000
--- a/programming-old/objectivec-swift/api-reference/class/dlr-runtime-settings.md
+++ /dev/null
@@ -1,123 +0,0 @@
----
-layout: default-layout
-title: iDLRRuntimeSettings - Dynamsoft Label Recognition iOS Class
-description: This page shows the iDLRRuntimeSettings class of Dynamsoft Label Recognition for iOS SDK.
-keywords: iDLRRuntimeSettings, class, objective-c, oc, swift
-needAutoGenerateSidebar: true
-permalink: /programming/objectivec-swift/api-reference/class/dlr-runtime-settings.html
----
-
-
-# iDLRRuntimeSettings
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v1.x.
-
-Defines a struct to configure the text recognizer runtime settings. These settings control the text recognition process.
-
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`maxThreadCount`](#maxthreadcount) | *NSInteger* |
-| [`characterModelName`](#charactermodelname) | *NSString\** |
-| [`linesCount`](#linescount) | *NSInteger* |
-| [`regionPredetectionModes`](#regionpredetectionmodes) | *NSArray \** |
-| [`referenceRegion`](#referenceregion) | [`iDLRReferenceRegion`](dlr-reference-region.md)\* |
-| [`textArea`](#textarea) | [`iDLRQuadrilateral`](dlr-quadrilateral.md)\* |
-| [`grayscaleTransformationModes`](#grayscaletransformationmodes) | *NSArray \** |
-
-
-### maxThreadCount
-Sets the number of threads the algorithm will use to recognize label.
-```objc
-NSInteger maxThreadCount
-```
-
-**Value Range**
-
-[1, 4]
-
-**Default value**
-
-4
-
-**Remarks**
-
-To keep a balance between speed and quality, the library concurrently runs four different threads by default.
-
-### characterModelName
-The name of the CharacterModel.
-```objc
-NSString* characterModelName
-```
-
-### linesCount
-Sets the text lines count of the text area.
-```objc
-NSInteger linesCount
-```
-
-**Value Range**
-
-[0, 200]
-
-**Default value**
-
-0
-
-**Remarks**
-
-0: line count is not certain.
-
-
-### regionPredetectionModes
-Sets the region pre-detection mode.
-```objc
-NSArray * regionPredetectionModes
-```
-
-**Value Range**
-
-Each array item can be any one of the [`EnumDLRRegionPredetectionMode`]({{ site.enumerations }}parameter-mode-enums.html#dlrregionpredetectionmode) Enumeration items.
-
-**Default value**
-
-`[EnumDLRRegionPredetectionModeSkip,EnumDLRRegionPredetectionModeSkip,EnumDLRRegionPredetectionModeSkip,EnumDLRRegionPredetectionModeSkip,EnumDLRRegionPredetectionModeSkip,EnumDLRRegionPredetectionModeSkip,EnumDLRRegionPredetectionModeSkip,EnumDLRRegionPredetectionModeSkip]`
-
-**Remarks**
-
-The array index represents the priority of the item. The smaller index is, the higher priority is.
-
-
-### referenceRegion
-Sets the reference region to search for text.
-```objc
-iDLRReferenceRegion* referenceRegion
-```
-
-### textArea
-Sets the text area relative to the reference region.
-```objc
-iDLRQuadrilateral* textArea
-```
-
-### grayscaleTransformationModes
-Sets the grayscale transformation mode.
-```objc
-NSArray * grayscaleTransformationModes
-```
-
-**Value Range**
-
-Each array item can be any one of the [`EnumDLRGrayscaleTransformationMode`]({{ site.enumerations }}parameter-mode-enums.html#dlrgrayscaletransformationmode) Enumeration items.
-
-**Default value**
-
-`[EnumDLRGrayscaleTransformationModeOriginal,EnumDLRGrayscaleTransformationModeSkip,EnumDLRGrayscaleTransformationModeSkip,EnumDLRGrayscaleTransformationModeSkip,EnumDLRGrayscaleTransformationModeSkip,EnumDLRGrayscaleTransformationModeSkip,EnumDLRGrayscaleTransformationModeSkip,EnumDLRGrayscaleTransformationModeSkip]`
-
-**Remarks**
-
-The array index represents the priority of the item. The smaller index is, the higher priority is.
-
-
diff --git a/programming-old/objectivec-swift/api-reference/class/dm-lts-connection-parameters-v1.2.md b/programming-old/objectivec-swift/api-reference/class/dm-lts-connection-parameters-v1.2.md
deleted file mode 100644
index d0baf21..0000000
--- a/programming-old/objectivec-swift/api-reference/class/dm-lts-connection-parameters-v1.2.md
+++ /dev/null
@@ -1,167 +0,0 @@
----
-layout: default-layout
-title: iDMLTSConnectionParameters - Dynamsoft Label Recognition iOS Class
-description: This page shows the iDMLTSConnectionParameters class of Dynamsoft Label Recognition for iOS SDK.
-keywords: iDMLTSConnectionParameters, class, objective-c, oc, swift
-needAutoGenerateSidebar: true
-permalink: /programming/objectivec-swift/api-reference/class/dm-lts-connection-parameters-v1.2.html
----
-
-
-# iDMLTSConnectionParameters
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v1.x.
-
-Defines a class to configure the parameters to connect to license tracking server.
-
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`mainServerURL`](#mainserverurl) | *NSString\** |
-| [`standbyServerURL`](#standbyserverurl) | *NSString\** |
-| [`handshakeCode`](#handshakecode) | *NSString\** |
-| [`sessionPassword`](#sessionpassword) | *NSString\** |
-| [`chargeWay`](#chargeway) | *EnumDMChargeWay* |
-| [`UUIDGenerationMethod`](#uuidgenerationmethod) | *EnumDMUUIDGenerationMethod* |
-| [`maxBufferDays`](#maxbufferdays) | *NSInteger* |
-| [`limitedLicenseModules`](#limitedlicensemodules) | *NSArray\** |
-
-
-### mainServerURL
-The URL of the license tracking server.
-```objc
-NSString* mainServerURL
-```
-
-**Value Range**
-
-Any string value
-
-**Default value**
-
-""
-
-**Remarks**
-
-If you choose "Dynamsoft-hosting", then no need to change the value of MainServerURL and StandbyServerURL. When both are set to null (default value), it will connect to Dynamsoft's license tracking servers for online verification.
-
-
-### standbyServerURL
-The URL of the standby license tracking server.
-```objc
-NSString* standbyServerURL
-```
-
-**Value Range**
-
-Any string value
-
-**Default value**
-
-""
-
-**Remarks**
-
-If you choose "Dynamsoft-hosting", then no need to change the value of MainServerURL and StandbyServerURL. When both are set to null (default value), it will connect to Dynamsoft's license tracking servers for online verification.
-
-
-### handshakeCode
-The handshake code.
-```objc
-NSString* handshakeCode
-```
-
-**Value Range**
-
-Any string value
-
-**Default value**
-
-""
-
-### sessionPassword
-The session password of the handshake code set in license tracking server.
-```objc
-NSString* sessionPassword
-```
-
-**Value Range**
-
-Any string value
-
-**Default value**
-
-""
-
-### chargeWay
-Sets the charge way.
-```objc
-EnumDMChargeWay chargeWay
-```
-
-**Value Range**
-
-A value of [`EnumDMChargeWay`]({{ site.enumerations }}other-enums.html#dm_chargeway) Enumeration items.
-
-**Default value**
-
-`EnumDMChargeWayAuto`
-
-**See also**
-
-[`EnumDMChargeWay`]({{ site.enumerations }}other-enums.html#dm_chargeway)
-
-
-### UUIDGenerationMethod
-Sets the method to generate UUID.
-```objc
-EnumDMUUIDGenerationMethod UUIDGenerationMethod
-```
-
-**Value Range**
-
-A value of [`EnumDMUUIDGenerationMethod`]({{ site.enumerations }}other-enums.html#dm_uuidgenerationmethod) Enumeration items.
-
-**Default value**
-
-`EnumDMUUIDGenerationMethodRandom`
-
-**See also**
-
-[`EnumDMUUIDGenerationMethod`]({{ site.enumerations }}other-enums.html#dm_uuidgenerationmethod)
-
-
-### maxBufferDays
-Sets the max days to buffer the license info.
-```objc
-NSInteger maxBufferDays
-```
-
-**Value Range**
-
-[0,0x7fffffff]
-
-**Default value**
-
-7
-
-### limitedLicenseModules
-Sets the license modules to use.
-```objc
-NSArray* limitedLicenseModules
-```
-
-**Value Range**
-
-Each array item can be any one of the [`EnumDMLicenseModule`]({{ site.enumerations }}other-enums.html#dm_licensemodule) Enumeration items.
-
-**Default value**
-
-nil
-
-**See also**
-
-[`EnumDMLicenseModule`]({{ site.enumerations }}other-enums.html#dm_licensemodule)
-
diff --git a/programming-old/objectivec-swift/api-reference/class/index-v1.2.md b/programming-old/objectivec-swift/api-reference/class/index-v1.2.md
deleted file mode 100644
index 5444e35..0000000
--- a/programming-old/objectivec-swift/api-reference/class/index-v1.2.md
+++ /dev/null
@@ -1,22 +0,0 @@
----
-layout: default-layout
-title: Classes - Dynamsoft Label Recognition iOS API Reference
-description: This page shows all Classes of Dynamsoft Label Recognition for iOS API Reference.
-keywords: api reference, objective-c, oc, swift
-needAutoGenerateSidebar: false
-permalink: /programming/objectivec-swift/api-reference/class/index-v1.2.html
----
-
-
-# Dynamsoft Label Recognition - Classes
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v1.x.
-
-- [`iDMLTSConnectionParameters`](dm-lts-connection-parameters.md)
-- [`iDLRCharacterResult`](dlr-character-result.md)
-- [`iDLRImageData`](dlr-image-data.md)
-- [`iDLRLineResult`](dlr-line-result.md)
-- [`iDLRQuadrilateral`](dlr-quadrilateral.md)
-- [`iDLRReferenceRegion`](dlr-reference-region.md)
-- [`iDLRResult`](dlr-result.md)
-- [`iDLRRuntimeSettings`](dlr-runtime-settings.md)
diff --git a/programming-old/objectivec-swift/api-reference/class/index.md b/programming-old/objectivec-swift/api-reference/class/index.md
deleted file mode 100644
index cf8dbeb..0000000
--- a/programming-old/objectivec-swift/api-reference/class/index.md
+++ /dev/null
@@ -1,22 +0,0 @@
----
-layout: default-layout
-title: Classes - Dynamsoft Label Recognition iOS API Reference
-description: This page shows all Classes of Dynamsoft Label Recognition for iOS API Reference.
-keywords: api reference, objective-c, oc, swift
-needAutoGenerateSidebar: false
-permalink: /programming/objectivec-swift/api-reference/class/index.html
----
-
-
-# Dynamsoft Label Recognition - Classes
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v1.x.
-
-- [`iDLRLTSConnectionParameters`](dlr-lts-connection-parameters.md)
-- [`iDLRCharacterResult`](dlr-character-result.md)
-- [`iDLRImageData`](dlr-image-data.md)
-- [`iDLRLineResult`](dlr-line-result.md)
-- [`iDLRQuadrilateral`](dlr-quadrilateral.md)
-- [`iDLRReferenceRegion`](dlr-reference-region.md)
-- [`iDLRResult`](dlr-result.md)
-- [`iDLRRuntimeSettings`](dlr-runtime-settings.md)
diff --git a/programming-old/objectivec-swift/api-reference/dlr-character-result.md b/programming-old/objectivec-swift/api-reference/dlr-character-result.md
deleted file mode 100644
index a364b65..0000000
--- a/programming-old/objectivec-swift/api-reference/dlr-character-result.md
+++ /dev/null
@@ -1,102 +0,0 @@
----
-layout: default-layout
-title: iDLRCharacterResult - Dynamsoft Label Recognizer iOS Class
-description: This page shows the DLRCharacterResult class of Dynamsoft Label Recognizer for iOS SDK.
-keywords: iDLRCharacterResult, objective-c, oc, swift
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/objectivec-swift/api-reference/dlr-character-result.html
----
-
-# iDLRCharacterResult
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v2.2.20.
-
-Stores the character result.
-
-```objc
-@interface iDLRCharacterResult : NSObject
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`characterH`](#characterh) | *NSString \** |
-| [`characterM`](#characterm) | *NSString \** |
-| [`characterL`](#characterl) | *NSString \** |
-| [`characterHConfidence`](#characterhconfidence) | *NSInteger* |
-| [`characterMConfidence`](#charactermconfidence) | *NSInteger* |
-| [`characterLConfidence`](#characterlconfidence) | *NSInteger* |
-| [`location`](#location) | [`iQuadrilateral`](quadrilateral.md)\* |
-
-
-
-### characterH
-
-The recognized character with highest confidence.
-
-```objc
-NSString* characterH
-```
-
-
-
-### characterM
-
-The recognized character with middle confidence.
-
-```objc
-NSString* characterM
-```
-
-
-
-### characterL
-
-The recognized character with lowest confidence.
-
-```objc
-NSString* characterL
-```
-
-
-
-### characterHConfidence
-
-The confidence of the recognized character with the highest confidence.
-
-```objc
-NSInteger characterHConfidence
-```
-
-
-
-### characterMConfidence
-
-The confidence of the recognized character with the middle confidence.
-
-```objc
-NSInteger characterMConfidence
-```
-
-
-
-### characterLConfidence
-
-The confidence of the recognized character with the lowest confidence.
-
-```objc
-NSInteger characterLConfidence
-```
-
-
-
-### location
-
-The location of current character.
-
-```objc
-iQuadrilateral* location
-```
diff --git a/programming-old/objectivec-swift/api-reference/dlr-dictionary-correction-threshold.md b/programming-old/objectivec-swift/api-reference/dlr-dictionary-correction-threshold.md
deleted file mode 100644
index a5305d4..0000000
--- a/programming-old/objectivec-swift/api-reference/dlr-dictionary-correction-threshold.md
+++ /dev/null
@@ -1,59 +0,0 @@
----
-layout: default-layout
-title: iDLRDictionaryCorrectionThreshold - Dynamsoft Label Recognizer iOS Class
-description: This page shows the iDLRDictionaryCorrectionThreshold struct of Dynamsoft Label Recognizer for iOS SDK.
-keywords: iDLRDictionaryCorrectionThreshold, objective-c, oc, swift
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/objectivec-swift/api-reference/dlr-dictionary-correction-threshold.html
----
-
-
-# iDLRDictionaryCorrectionThreshold
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v2.2.20.
-
-Stores the dictionary correction threshold.
-
-```objc
-@interface iDLRDictionaryCorrectionThreshold : NSObject
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`minWordLength`](#minwordlength) | *NSInteger* |
-| [`maxWordLength`](#maxwordlength) | *NSInteger* |
-| [`threshold`](#threshold) | *NSInteger* |
-
-
-
-### minWordLength
-
-The minimum value of word length.
-
-```objc
-NSInteger minWordLength
-```
-
-
-
-### maxWordLength
-
-The maximum value of word length.
-
-```objc
-NSInteger maxWordLength
-```
-
-
-
-### threshold
-
-The threshold for the number of error correction characters.
-
-```objc
-NSInteger threshold
-```
diff --git a/programming-old/objectivec-swift/api-reference/dlr-further-modes.md b/programming-old/objectivec-swift/api-reference/dlr-further-modes.md
deleted file mode 100644
index 569b34b..0000000
--- a/programming-old/objectivec-swift/api-reference/dlr-further-modes.md
+++ /dev/null
@@ -1,141 +0,0 @@
----
-layout: default-layout
-title: iDLRFurtherModes - Dynamsoft Label Recognizer iOS API Reference
-description: This page shows the iDLRFurtherModes of Dynamsoft Label Recognizer for iOS SDK.
-keywords: iDLRFurtherModes, iOS
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/objectivec-swift/api-reference/dlr-further-modes.html
----
-
-
-# iDLRFurtherModes
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v2.2.20.
-
-Stores the FurtherModes.
-
-```objc
-@interface iDLRFurtherModes : NSObject
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`colourConversionModes`](#colourconversionmodes) | *NSArray\** |
-| [`grayscaleTransformationModes`](#grayscaletransformationmodes) | *NSArray\** |
-| [`regionPredetectionModes`](#regionpredetectionmodes) | *NSArray\** |
-| [`grayscaleEnhancementModes`](#grayscaleenhancementmodes) | *NSArray\** |
-| [`textureDetectionModes`](#texturedetectionmodes) | *NSArray\** |
-
-
-
-### colourConversionModes
-
-Sets the mode and priority for converting a colour image to a grayscale image.
-
-```objc
-NSArray * colourConversionModes
-```
-
-**Value range**
-
-Each array item can be any one of the [`EnumColourConversionMode`]({{ site.enumerations }}colour-conversion-mode.html) Enumeration items.
-
-**Default value**
-
-`[EnumColourConversionModeGeneral, EnumColourConversionModeSkip, EnumColourConversionModeSkip, EnumColourConversionModeSkip, EnumColourConversionModeSkip, EnumColourConversionModeSkip, EnumColourConversionModeSkip, EnumColourConversionModeSkip]`
-
-**Remarks**
-
-The array index represents the priority of the item. The smaller index is, the higher priority is.
-
-
-
-### grayscaleTransformationModes
-
-Sets the grayscale transformation mode.
-
-```objc
-NSArray * grayscaleTransformationModes
-```
-
-**Value range**
-
-Each array item can be any one of the [`EnumGrayscaleTransformationMode`]({{ site.enumerations }}grayscale-transformation-mode.html) Enumeration items.
-
-**Default value**
-
-`[EnumGrayscaleTransformationModeOriginal,EnumGrayscaleTransformationModeSkip,EnumGrayscaleTransformationModeSkip,EnumGrayscaleTransformationModeSkip,EnumGrayscaleTransformationModeSkip,EnumGrayscaleTransformationModeSkip,EnumGrayscaleTransformationModeSkip,EnumGrayscaleTransformationModeSkip]`
-
-**Remarks**
-
-The array index represents the priority of the item. The smaller index is, the higher priority is.
-
-
-
-### regionPredetectionModes
-
-Sets the region pre-detection mode.
-
-```objc
-NSArray * regionPredetectionModes
-```
-
-**Value range**
-
-Each array item can be any one of the [`EnumRegionPredetectionMode`]({{ site.enumerations }}region-predetection-mode.html) Enumeration items.
-
-**Default value**
-
-`[EnumRegionPredetectionModeSkip,EnumRegionPredetectionModeSkip,EnumRegionPredetectionModeSkip,EnumRegionPredetectionModeSkip,EnumRegionPredetectionModeSkip,EnumRegionPredetectionModeSkip,EnumRegionPredetectionModeSkip,EnumRegionPredetectionModeSkip]`
-
-**Remarks**
-
-The array index represents the priority of the item. The smaller index is, the higher priority is.
-
-
-
-### grayscaleEnhancementModes
-
-Sets the mode and priority for grayscale image preprocessing algorithms.
-
-```objc
-NSArray * GrayscaleEnhancementModes
-```
-
-**Value range**
-
-Each array item can be any one of the [`EnumGrayscaleEnhancementMode`]({{ site.enumerations }}grayscale-enhancement-mode.html) Enumeration items.
-
-**Default value**
-
-`[EnumGrayscaleEnhancementModeGeneral, EnumGrayscaleEnhancementModeSkip, EnumGrayscaleEnhancementModeSkip, EnumGrayscaleEnhancementModeSkip, EnumGrayscaleEnhancementModeSkip, EnumGrayscaleEnhancementModeSkip, EnumGrayscaleEnhancementModeSkip, EnumGrayscaleEnhancementModeSkip]`
-
-**Remarks**
-
-The array index represents the priority of the item. The smaller index is, the higher priority is.
-
-
-
-### TextureDetectionModes
-
-Sets the mode and priority for texture detection.
-
-```objc
-NSArray * textureDetectionModes
-```
-
-**Value range**
-
-Each array item can be any one of the [`EnumTextureDetectionMode`]({{ site.enumerations }}texture-detection-mode.html) Enumeration items.
-
-**Default value**
-
-`[EnumTextureDetectionModeGeneralWidthConcentration, EnumTextureDetectionModeSkip, EnumTextureDetectionModeSkip, EnumTextureDetectionModeSkip, EnumTextureDetectionModeSkip, EnumTextureDetectionModeSkip, EnumTextureDetectionModeSkip, EnumTextureDetectionModeSkip]`
-
-**Remarks**
-
-The array index represents the priority of the item. The smaller index is, the higher priority is.
diff --git a/programming-old/objectivec-swift/api-reference/dlr-license-verification-delegate.md b/programming-old/objectivec-swift/api-reference/dlr-license-verification-delegate.md
deleted file mode 100644
index a06fdaf..0000000
--- a/programming-old/objectivec-swift/api-reference/dlr-license-verification-delegate.md
+++ /dev/null
@@ -1,66 +0,0 @@
----
-layout: default-layout
-title: DLRLicenseVerificationDelegate - Dynamsoft Label Recognizer iOS API Reference
-description: This page shows DLRLicenseVerificationDelegate of Dynamsoft Label Recognizer for iOS API Reference.
-keywords: api reference, objective-c, oc, swift
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/objectivec-swift/api-reference/dlr-license-verification-delegate.html
----
-
-# DLRLicenseVerificationDelegate
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v2.2.20.
-
-A delegate to handle callback when Dynamsoft License Server returns.
-
-```objc
-@protocol DLRLicenseVerificationDelegate
-```
-
-## Methods
-
-| Method | Description |
-|----------------------|-------------|
-| [`DLRLicenseVerificationCallback`](#dlrlicenseverificationcallback) | The callback of Dynamsoft License Server.|
-
-
-
-### DLRLicenseVerificationCallback
-
-Initializes the label Recognizer license.
-
-```objc
-- (void)DLRLicenseVerificationCallback:(bool)isSuccess error:(NSError * _Nullable)error;
-```
-
-**Parameters**
-
-- `[in] isSuccess`: Whether the license verification was successful.
-- `[in,out] error`: The error message from dynamsoft license server.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-[DynamsoftLabelRecognizer initLicense:@"t0260NwAAAHV***************" verificationDelegate:self];
-
-- (void)DLRLicenseVerificationCallback:(bool)isSuccess error:(NSError * )error
-{
- //TODO: add your code for license verification
-}
-```
-2.
-```swift
-DynamsoftLabelRecognizer.initLicense(license:"t0260NwAAAHV***************", verificationDelegate: self)
-
-func DLRLicenseVerificationCallback(_ isSuccess: Bool, error: Error?)
-{
- //TODO: add your code for license verification
-}
-```
diff --git a/programming-old/objectivec-swift/api-reference/dlr-line-result.md b/programming-old/objectivec-swift/api-reference/dlr-line-result.md
deleted file mode 100644
index fd73746..0000000
--- a/programming-old/objectivec-swift/api-reference/dlr-line-result.md
+++ /dev/null
@@ -1,92 +0,0 @@
----
-layout: default-layout
-title: iDLRLineResult - Dynamsoft Label Recognizer iOS Class
-description: This page shows the iDLRLineResult class of Dynamsoft Label Recognizer for iOS SDK.
-keywords: iDLRLineResult, class, objective-c, oc, swift
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/objectivec-swift/api-reference/dlr-line-result.html
----
-
-
-# iDLRLineResult
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v2.2.20.
-
-Stores the line result.
-
-```objc
-@interface iDLRLineResult : NSObject
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`lineSpecificationName`](#linespecificationname) | *NSString\** |
-| [`text`](#text) | *NSString\** |
-| [`characterModelName`](#charactermodelname) | *NSString\** |
-| [`location`](#location) | [`Quadrilateral`](quadrilateral.md)\* |
-| [`confidence`](#confidence) | *NSInteger* |
-| [`characterResults`](#characterresults) | NSArray<[`iDLRCharacterResult`](dlr-character-result.md)\*>\*|
-
-
-
-### lineSpecificationName
-
-The name of the line specification used to recognize current line result.
-
-```objc
-NSString* lineSpecificationName
-```
-
-
-
-### text
-
-The recognized text, ends by '\0'.
-
-```objc
-NSString* text
-```
-
-
-
-### characterModelName
-
-The character model used to recognize the text.
-
-```objc
-NSString* characterModelName
-```
-
-
-
-### location
-
-The location of current line.
-
-```objc
-iQuadrilateral* location
-```
-
-
-
-### confidence
-
-The confidence of the result. It ranges from 0 to 100.
-
-```objc
-NSInteger confidence
-```
-
-
-
-### characterResults
-
-The character results array.
-
-```objc
-NSArray* characterResults
-```
diff --git a/programming-old/objectivec-swift/api-reference/dlr-line-specification.md b/programming-old/objectivec-swift/api-reference/dlr-line-specification.md
deleted file mode 100644
index e00e7a8..0000000
--- a/programming-old/objectivec-swift/api-reference/dlr-line-specification.md
+++ /dev/null
@@ -1,71 +0,0 @@
----
-layout: default-layout
-title: iDLRLineSpecification Struct - Dynamsoft Label Recognizer iOS API Reference
-description: This page shows the iDLRLineSpecification Struct of Dynamsoft Label Recognizer for iOS SDK.
-keywords: iDLRLineSpecification, iOS
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/objectivec-swift/api-reference/dlr-line-specification.html
----
-
-# iDLRLineSpecification
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v2.2.20.
-
-Stores the settings of text line.
-
-```objc
-@interface iDLRLineSpecification : NSObject
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`grayscaleEnhancementModes`](#grayscaleenhancementmodes) | *NSArray\** |
-| [`binarizationModes`](#binarizationmodes) | *NSArray\** |
-
-
-
-### grayscaleEnhancementModes
-
-Sets the mode and priority for grayscale image preprocessing algorithms.
-
-```objc
-NSArray * grayscaleEnhancementModes
-```
-
-**Value range**
-
-Each array item can be any one of the [`EnumGrayscaleEnhancementMode`]({{ site.enumerations }}grayscale-enhancement-mode.html) Enumeration items.
-
-**Default value**
-
-`[EnumGrayscaleEnhancementModeGeneral, EnumGrayscaleEnhancementModeSkip, EnumGrayscaleEnhancementModeSkip, EnumGrayscaleEnhancementModeSkip, EnumGrayscaleEnhancementModeSkip, EnumGrayscaleEnhancementModeSkip, EnumGrayscaleEnhancementModeSkip, EnumGrayscaleEnhancementModeSkip]`
-
-**Remarks**
-
-The array index represents the priority of the item. The smaller index is, the higher priority is.
-
-
-
-### binarizationModes
-
-Sets the mode and priority for binarization.
-
-```objc
-NSArray * binarizationModes
-```
-
-**Value range**
-
-Each array item can be any one of the [`EnumBinarizationMode`]({{ site.enumerations }}binarization-mode.html) Enumeration items.
-
-**Default value**
-
-`[EnumBinarizationModeLocalBlock, EnumBinarizationModeSkip, EnumBinarizationModeSkip, EnumBinarizationModeSkip, EnumBinarizationModeSkip, EnumBinarizationModeSkip, EnumBinarizationModeSkip, EnumBinarizationModeSkip]`
-
-**Remarks**
-
-The array index represents the priority of the item. The smaller index is, the higher priority is.
diff --git a/programming-old/objectivec-swift/api-reference/dlr-reference-region.md b/programming-old/objectivec-swift/api-reference/dlr-reference-region.md
deleted file mode 100644
index ea0951d..0000000
--- a/programming-old/objectivec-swift/api-reference/dlr-reference-region.md
+++ /dev/null
@@ -1,181 +0,0 @@
----
-layout: default-layout
-title: iDLRReferenceRegion - Dynamsoft Label Recognizer iOS Class
-description: This page shows the iDLRReferenceRegion class of Dynamsoft Label Recognition for iOS SDK.
-keywords: iDLRReferenceRegion, class, objective-c, oc, swift
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/objectivec-swift/api-reference/dlr-reference-region.html
----
-
-
-# iDLRReferenceRegion
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v2.2.20.
-
-Stores the reference region information.
-
-```objc
-@interface iDLRReferenceRegion : NSObject
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`localizationSourceType`](#localizationsourcetype) | [`EnumLocalizationSourceType`]({{ site.enumerations }}localization-source-type.html) |
-| [`location`](#location) | [`iQuadrilateral`](quadrilateral.md)\* |
-| [`regionMeasuredByPercentage`](#regionmeasuredbypercentage) | *NSInteger* |
-| [`regionPredetectionModesIndex`](#regionpredetectionmodesindex) | *NSInteger* |
-| [`barcodeFormatIds`](#barcodeformatids) | *NSInteger* |
-| [`barcodeFormatIds_2`](#barcodeformatids_2) | *NSInteger* |
-| [`barcodeTextRegExPattern`](#barcodetextregexpattern) | *NSString\** |
-
-
-
-### localizationSourceType
-
-The source type used to localize the reference region(s).
-
-```objc
-NSInteger localizationSourceType
-```
-
-**Value range**
-
-A value of [`EnumLocalizationSourceType`]({{ site.enumerations }}localization-source-type.html) Enumeration items.
-
-**Default value**
-
-`EnumLocalizationSourceTypeManualSpecification`
-
-
-
-### location
-
-Four vertexes in a clockwise direction of a quadrilateral. Index 0 represents the left-most vertex.
-
-```objc
-iQuadrilateral* location
-```
-
-**Remarks**
-
-It works only when [localizationSourceType](#localizationsourcetype) is setting to EnumLocalizationSourceTypeManualSpecification.
-
-The library will localize reference region(s) based on the quadrilateral set by current setting.
-
-
-
-### regionMeasuredByPercentage
-
-Whether or not to use percentage to measure the coordinate.
-
-```objc
-NSInteger regionMeasuredByPercentage
-```
-
-**Value Range**
-
-[0, 1]
-
-**Default value**
-
-1
-
-**Remarks**
-
-When it's set to 1, the values of points indicate percentage (from 0 to 100); Otherwise, they indicate coordinates in pixel.
-
-- 0: not by percentage
-- 1: by percentage
-
-It works only when [localizationSourceType](#localizationsourcetype) is setting to EnumLocalizationSourceTypeManualSpecification.
-
-
-
-### regionPredetectionModesIndex
-
-The index of a specific region predetection mode in the regionPredetectionModes parameter.
-
-```objc
-NSInteger regionPredetectionModesIndex
-```
-
-**Value Range**
-
-[-1, 0x7fffffff]
-
-**Default value**
-
--1
-
-**Remarks**
-
-It works only when [localizationSourceType](#localizationsourcetype) is setting to EnumLocalizationSourceTypePredetectedRegion.
-The library will localize reference region(s) based on the detected regions from the specified region predetection mode.
--1: all region predetection modes in the regionPredetectionModes parameter
-
-
-
-### barcodeFormatIds
-
-The formats of the barcode in BarcodeFormat group 1.
-
-```objc
-NSInteger barcodeFormatIds
-```
-
-**Value Range**
-
-A combined value of [`EnumBarcodeFormat`]({{ site.enumerations }}barcode-format.html) Enumeration items
-
-**Default value**
-
-EnumBarcodeFormatALL
-
-**Remarks**
-
-Barcode formats in BarcodeFormat group 1 can be combined.
-It works only when [localizationSourceType](#localizationsourcetype) is setting to EnumLocalizationSourceTypeBarcode.
-The library will localize reference region(s) based on the barcodes whose format meets current setting.
-
-
-
-### barcodeFormatIds_2
-
-The formats of the barcode in BarcodeFormat group 2.
-
-```objc
-NSInteger barcodeFormatIds_2
-```
-
-**Value Range**
-
-A combined value of [`EnumBarcodeFormat_2`]({{ site.enumerations }}barcode-format-2.html) Enumeration items
-
-**Default value**
-
-EnumBarcodeFormat2NULL
-
-**Remarks**
-
-Barcode formats in BarcodeFormat group 2 can be combined.
-It works only when [localizationSourceType](#localizationsourcetype) is setting to EnumLocalizationSourceTypeBarcode.
-The library will localize reference region(s) based on the barcodes whose format meets current setting.
-
-
-
-### barcodeTextRegExPattern
-
-The regular express pattern of barcode text.
-
-```objc
-NSString* barcodeTextRegExPattern
-```
-
-**Remarks**
-
-It works only when [localizationSourceType](#localizationsourcetype) is setting to EnumLocalizationSourceTypeBarcode.
-The library will localize reference region(s) based on the barcodes whose text meets current setting.
diff --git a/programming-old/objectivec-swift/api-reference/dlr-result.md b/programming-old/objectivec-swift/api-reference/dlr-result.md
deleted file mode 100644
index 1a4e34d..0000000
--- a/programming-old/objectivec-swift/api-reference/dlr-result.md
+++ /dev/null
@@ -1,92 +0,0 @@
----
-layout: default-layout
-title: iDLRResult - Dynamsoft Label Recognizer iOS Class
-description: This page shows the iDLRResult class of Dynamsoft Label Recognizer for iOS SDK.
-keywords: iDLRResult, class, objective-c, oc, swift
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/objectivec-swift/api-reference/dlr-result.html
----
-
-
-# iDLRResult
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v2.2.20.
-
-Stores the recognized result.
-
-```objc
-@interface iDLRResult : NSObject
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`referenceRegionName`](#referenceregionname) | *NSString\** |
-| [`textAreaName`](#textareaname) | *NSString\** |
-| [`location`](#location) | [`iQuadrilateral`](quadrilateral.md)\* |
-| [`confidence`](#confidence) | *NSInteger* |
-| [`lineResults`](#lineresults) | NSArray<[`iDLRLineResult`](dlr-line-result.md)\*>\* |
-| [`pageNumber`](#pagenumber) | *NSInteger* |
-
-
-
-### referenceRegionName
-
-The name of the reference region which is used to recognize the current result.
-
-```objc
-NSString* referenceRegionName
-```
-
-
-
-### textAreaName
-
-The name of the text area used to recognize current result.
-
-```objc
-NSString* textAreaName
-```
-
-
-
-### location
-
-The location of current recognized text.
-
-```objc
-iQuadrilateral* location
-```
-
-
-
-### confidence
-
-The confidence of the result. It ranges from 0 to 100.
-
-```objc
-NSInteger confidence
-```
-
-
-
-### lineResults
-
-The line results array.
-
-```objc
-NSArray* lineResults
-```
-
-
-
-### pageNumber
-
-The page number the result located in. The index is 0-based.
-
-```objc
-NSInteger pageNumber
-```
diff --git a/programming-old/objectivec-swift/api-reference/dlr-runtime-settings-v2.0.0.md b/programming-old/objectivec-swift/api-reference/dlr-runtime-settings-v2.0.0.md
deleted file mode 100644
index 7bb7eff..0000000
--- a/programming-old/objectivec-swift/api-reference/dlr-runtime-settings-v2.0.0.md
+++ /dev/null
@@ -1,140 +0,0 @@
----
-layout: default-layout
-title: iDLRRuntimeSettings - Dynamsoft Label Recognizer iOS Class
-description: This page shows the iDLRRuntimeSettings class of Dynamsoft Label Recognizer for iOS SDK.
-keywords: iDLRRuntimeSettings, class, objective-c, oc, swift
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/objectivec-swift/api-reference/dlr-runtime-settings-v2.0.0.html
----
-
-
-# iDLRRuntimeSettings
-
-Defines a struct to configure the text recognizer runtime settings. These settings control the text recognition process.
-
-```objc
-@interface iDLRRuntimeSettings : NSObject
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`maxThreadCount`](#maxthreadcount) | *NSInteger* |
-| [`characterModelName`](#charactermodelname) | *NSString\** |
-| [`referenceRegion`](#referenceregion) | [`iDLRReferenceRegion`](dlr-reference-region.md)\* |
-| [`textArea`](#textarea) | [`iQuadrilateral`](quadrilateral.md)\* |
-| [`dictionaryPath`](#dictionarypath) | *NSString\** |
-| [`dictionaryCorrectionThreshold`](#dictionarycorrectionthreshold) | [`iDLRDictionaryCorrectionThreshold`](dlr-dictionary-correction-threshold.md)\* |
-| [`binarizationModes`](#binarizationmodes) | *NSArray\** |
-| [`furtherModes`](#furthermodes) | [`iDLRFurtherModes`](dlr-further-modes.md)\*|
-
-
-
-### maxThreadCount
-
-Sets the number of threads the algorithm will use to recognize label.
-
-```objc
-NSInteger maxThreadCount
-```
-
-**Value Range**
-
-[1, 4]
-
-**Default value**
-
-4
-
-**Remarks**
-
-To keep a balance between speed and quality, the library concurrently runs four different threads by default.
-
-
-
-### characterModelName
-
-The name of the CharacterModel.
-
-```objc
-NSString* characterModelName
-```
-
-
-
-### referenceRegion
-
-Sets the reference region to search for text.
-
-```objc
-iDLRReferenceRegion* referenceRegion
-```
-
-
-
-### textArea
-
-Sets the text area relative to the reference region.
-
-```objc
-iQuadrilateral* textArea
-```
-
-
-
-### dictionaryPath
-
-Sets the path of the dictionary file.
-
-```objc
-NSString* dictionaryPath
-```
-
-
-
-### dictionaryCorrectionThreshold
-
-Sets the threshold of dictionary error correction.
-
-```objc
-iDLRDictionaryCorrectionThreshold* dictionaryCorrectionThreshold
-```
-
-
-
-### binarizationModes
-
-Sets the mode and priority for binarization.
-
-```objc
-NSArray* binarizationModes
-```
-
-**Value Range**
-
-Each array item can be any one of the [`EnumBinarizationMode`]({{ site.enumerations }}binarization-mode.html) Enumeration items.
-
-**Default value**
-
-`[EnumBinarizationModeLocalBlock, EnumBinarizationModeSkip, EnumBinarizationModeSkip, EnumBinarizationModeSkip, EnumBinarizationModeSkip, EnumBinarizationModeSkip, EnumBinarizationModeSkip, EnumBinarizationModeSkip]`
-
-**Remarks**
-
-The array index represents the priority of the item. The smaller index is, the higher priority is.
-
-
-
-### furtherModes
-
-Sets further modes.
-
-```objc
-iDLRFurtherModes* furtherModes
-```
-
-**See also**
-
-[`iDLRFurtherModes`](dlr-further-modes.md)
diff --git a/programming-old/objectivec-swift/api-reference/dlr-runtime-settings.md b/programming-old/objectivec-swift/api-reference/dlr-runtime-settings.md
deleted file mode 100644
index e0c92b7..0000000
--- a/programming-old/objectivec-swift/api-reference/dlr-runtime-settings.md
+++ /dev/null
@@ -1,151 +0,0 @@
----
-layout: default-layout
-title: iDLRRuntimeSettings - Dynamsoft Label Recognizer iOS Class
-description: This page shows the iDLRRuntimeSettings class of Dynamsoft Label Recognizer for iOS SDK.
-keywords: iDLRRuntimeSettings, class, objective-c, oc, swift
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/objectivec-swift/api-reference/dlr-runtime-settings.html
----
-
-
-# iDLRRuntimeSettings
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v2.2.20.
-
-Defines a struct to configure the text recognizer runtime settings. These settings control the text recognition process.
-
-```objc
-@interface iDLRRuntimeSettings : NSObject
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`maxThreadCount`](#maxthreadcount) | *NSInteger* |
-| [`characterModelName`](#charactermodelname) | *NSString\** |
-| [`referenceRegion`](#referenceregion) | [`iDLRReferenceRegion`](dlr-reference-region.md)\* |
-| [`textArea`](#textarea) | [`iQuadrilateral`](quadrilateral.md)\* |
-| [`dictionaryPath`](#dictionarypath) | *NSString\** |
-| [`dictionaryCorrectionThreshold`](#dictionarycorrectionthreshold) | [`iDLRDictionaryCorrectionThreshold`](dlr-dictionary-correction-threshold.md)\* |
-| [`binarizationModes`](#binarizationmodes) | *NSArray\** |
-| [`furtherModes`](#furthermodes) | [`iDLRFurtherModes`](dlr-further-modes.md)\*|
-| [`timeout`](#timeout) | *NSInteger* |
-
-
-
-### maxThreadCount
-
-Sets the number of threads the algorithm will use to recognize label.
-
-```objc
-NSInteger maxThreadCount
-```
-
-**Value Range**
-
-[1, 4]
-
-**Default value**
-
-4
-
-**Remarks**
-
-To keep a balance between speed and quality, the library concurrently runs four different threads by default.
-
-
-
-### characterModelName
-
-The name of the CharacterModel.
-
-```objc
-NSString* characterModelName
-```
-
-
-
-### referenceRegion
-
-Sets the reference region to search for text.
-
-```objc
-iDLRReferenceRegion* referenceRegion
-```
-
-
-
-### textArea
-
-Sets the text area relative to the reference region.
-
-```objc
-iQuadrilateral* textArea
-```
-
-
-
-### dictionaryPath
-
-Sets the path of the dictionary file.
-
-```objc
-NSString* dictionaryPath
-```
-
-
-
-### dictionaryCorrectionThreshold
-
-Sets the threshold of dictionary error correction.
-
-```objc
-iDLRDictionaryCorrectionThreshold* dictionaryCorrectionThreshold
-```
-
-
-
-### binarizationModes
-
-Sets the mode and priority for binarization.
-
-```objc
-NSArray* binarizationModes
-```
-
-**Value Range**
-
-Each array item can be any one of the [`EnumBinarizationMode`]({{ site.enumerations }}binarization-mode.html) Enumeration items.
-
-**Default value**
-
-`[EnumBinarizationModeLocalBlock, EnumBinarizationModeSkip, EnumBinarizationModeSkip, EnumBinarizationModeSkip, EnumBinarizationModeSkip, EnumBinarizationModeSkip, EnumBinarizationModeSkip, EnumBinarizationModeSkip]`
-
-**Remarks**
-
-The array index represents the priority of the item. The smaller index is, the higher priority is.
-
-
-
-### furtherModes
-
-Sets further modes.
-
-```objc
-iDLRFurtherModes* furtherModes
-```
-
-**See also**
-
-[`iDLRFurtherModes`](dlr-further-modes.md)
-
-### timeout
-
-Set the timeout. Timeout value is measured by millisecond.
-
-```objc
-@property NSInteger timeout
-```
diff --git a/programming-old/objectivec-swift/api-reference/dm-lts-connection-parameters.md b/programming-old/objectivec-swift/api-reference/dm-lts-connection-parameters.md
deleted file mode 100644
index 4790ef7..0000000
--- a/programming-old/objectivec-swift/api-reference/dm-lts-connection-parameters.md
+++ /dev/null
@@ -1,241 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Core iOS Class - iDMDLSConnectionParameters
-description: This page shows the iDMDLSConnectionParameters class of Dynamsoft Core for iOS SDK.
-keywords: iDMDLSConnectionParameters, class, objective-c, oc, swift
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/objectivec-swift/api-reference/dm-lts-connection-parameters.html
----
-
-
-# iDMDLSConnectionParameters
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v2.2.20.
-
-Defines a class to configure the parameters to connect to license tracking server.
-
-```objc
-@interface iDMDLSConnectionParameters : NSObject
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`mainServerURL`](#mainserverurl) | *NSString\** |
-| [`standbyServerURL`](#standbyserverurl) | *NSString\** |
-| [`handshakeCode`](#handshakecode) | *NSString\** |
-| [`sessionPassword`](#sessionpassword) | *NSString\** |
-| [`chargeWay`](#chargeway) | *EnumDMChargeWay* |
-| [`UUIDGenerationMethod`](#uuidgenerationmethod) | *EnumDMUUIDGenerationMethod* |
-| [`maxBufferDays`](#maxbufferdays) | *NSInteger* |
-| [`limitedLicenseModules`](#limitedlicensemodules) | *NSArray\** |
-| [`organizationID`](#organizationid) | *NSString\** |
-| [`products`](#products) | *NSInteger* |
-
-
-
-### mainServerURL
-
-The URL of the license tracking server.
-
-```objc
-NSString* mainServerURL
-```
-
-**Value Range**
-
-Any string value
-
-**Default value**
-
-""
-
-**Remarks**
-
-If you choose "Dynamsoft-hosting", then no need to change the value of MainServerURL and StandbyServerURL. When both are set to null (default value), it will connect to Dynamsoft's license tracking servers for online verification.
-
-
-
-### standbyServerURL
-
-The URL of the standby license tracking server.
-
-```objc
-NSString* standbyServerURL
-```
-
-**Value Range**
-
-Any string value
-
-**Default value**
-
-""
-
-**Remarks**
-
-If you choose "Dynamsoft-hosting", then no need to change the value of MainServerURL and StandbyServerURL. When both are set to null (default value), it will connect to Dynamsoft's license tracking servers for online verification.
-
-
-
-### handshakeCode
-
-The handshake code.
-
-```objc
-NSString* handshakeCode
-```
-
-**Value Range**
-
-Any string value
-
-**Default value**
-
-""
-
-
-
-### sessionPassword
-
-The session password of the handshake code set in license tracking server.
-
-```objc
-NSString* sessionPassword
-```
-
-**Value Range**
-
-Any string value.
-
-**Default value**
-
-""
-
-
-
-### chargeWay
-
-Sets the charge way.
-
-```objc
-EnumDMChargeWay chargeWay
-```
-
-**Value Range**
-
-A value of [`EnumDMChargeWay`]({{ site.enumerations }}dm-charge-way.html) Enumeration items.
-
-**Default value**
-
-`EnumDMChargeWayAuto`
-
-**See also**
-
-[`EnumDMChargeWay`]({{ site.enumerations }}dm-charge-way.html)
-
-
-
-### UUIDGenerationMethod
-
-Sets the method to generate UUID.
-
-```objc
-EnumDMUUIDGenerationMethod UUIDGenerationMethod
-```
-
-**Value Range**
-
-A value of [`EnumDMUUIDGenerationMethod`]({{ site.enumerations }}dm-uuid-generation-method.html) Enumeration items.
-
-**Default value**
-
-`EnumDMUUIDGenerationMethodRandom`
-
-**See also**
-
-[`EnumDMUUIDGenerationMethod`]({{ site.enumerations }}dm-uuid-generation-method.html)
-
-
-
-### maxBufferDays
-
-Sets the max days to buffer the license info.
-
-```objc
-NSInteger maxBufferDays
-```
-
-**Value Range**
-
-[0,0x7fffffff]
-
-**Default value**
-
-7
-
-
-
-### limitedLicenseModules
-
-Sets the license modules to use.
-
-```objc
-NSArray* limitedLicenseModules
-```
-
-**Value Range**
-
-Each array item can be any one of the [`EnumDMLicenseModule`]({{ site.enumerations }}dm-license-module.html) Enumeration items.
-
-**Default value**
-
-nil
-
-**See also**
-
-[`EnumDMLicenseModule`]({{ site.enumerations }}dm-license-module.html)
-
-
-
-### organizationID
-
-The organization ID got from Dynamsoft.
-
-```objc
-NSString* organizationID
-```
-
-**Value Range**
-
-Any string value.
-
-**Default value**
-
-""
-
-
-
-### products
-
-Sets the products to get the license for. Product values can be combined.
-
-```objc
-NSInteger products
-```
-
-**Value Range**
-
-A combine value of [`EnumProduct`]({{ site.enumerations }}product.html) Enumeration items.
-
-**Default value**
-
-`EnumProductALL`
-
-**See also**
-
-[`EnumProduct`]({{ site.enumerations }}product.html)
-
\ No newline at end of file
diff --git a/programming-old/objectivec-swift/api-reference/image-data.md b/programming-old/objectivec-swift/api-reference/image-data.md
deleted file mode 100644
index bc4552f..0000000
--- a/programming-old/objectivec-swift/api-reference/image-data.md
+++ /dev/null
@@ -1,81 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Core iOS Class - iImageData
-description: This page shows the iImageData class of Dynamsoft Label Recognizer iOS Edition.
-keywords: iImageData, objective-c, oc, swift
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/objectivec-swift/api-reference/image-data.html
-ignore: true
----
-
-# iImageData
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v2.2.20.
-
-Stores the image data.
-
-```objc
-@interface iImageData : NSObject
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`bytes`](#bytes) | *NSData\** |
-| [`width`](#width) | *NSInteger* |
-| [`height`](#height) | *NSInteger* |
-| [`stride`](#stride) | *NSInteger* |
-| [`format`](#format) | [`EnumImagePixelFormat`]({{ site.enumerations }}image-pixel-format.html) |
-
-
-
-### bytes
-
-The image data content in a byte array.
-
-```objc
-NSData* bytes
-```
-
-
-
-### width
-
-The width of the image in pixels.
-
-```objc
-NSInteger width
-```
-
-
-
-### height
-
-The height of the image in pixels.
-
-```objc
-NSInteger height
-```
-
-
-
-### stride
-
-The stride (or scan width) of the image.
-
-```objc
-NSInteger stride
-```
-
-
-
-### format
-
-The image pixel format used in the image byte array.
-
-```objc
-EnumImagePixelFormat format
-```
diff --git a/programming-old/objectivec-swift/api-reference/index-v1.0.md b/programming-old/objectivec-swift/api-reference/index-v1.0.md
deleted file mode 100644
index fcd1d9b..0000000
--- a/programming-old/objectivec-swift/api-reference/index-v1.0.md
+++ /dev/null
@@ -1,92 +0,0 @@
----
-layout: default-layout
-title: Main Page - Dynamsoft Label Recognition iOS API Reference
-description: This is the main page of Dynamsoft Label Recognition for iOS API Reference.
-keywords: api reference, objective-c, oc, swift
-needAutoGenerateSidebar: false
-permalink: /programming/objectivec-swift/api-reference/index-v1.0.html
----
-
-# Dynamsoft Label Recognition - iOS API Reference
-
-- [Methods](#methods)
-- [Classes](#classes)
-- [Enumerations](#enumerations)
-- [Error Code](#error-code)
-
-## Methods
-
-### General
-
- | Method | Description |
- |----------------------|-------------|
- | [`getVersion`](methods/general.md#getversion) | Returns the version number string for the SDK. |
-
-
-
-### Initialization
-
- | Method | Description |
- |----------------------|-------------|
- | [`init`](methods/initialization.md#init) | Create an instance of Dynamsoft Label Recognition. |
- | [`initWithLicense`](methods/initialization.md#initWithLicense) | Sets the license and activates the SDK. |
- | [`initLicenseFromLTS`](methods/initialization.md#initlicensefromlts) | Initializes the label recognition license and connects to the specified server for online verification. |
-
-
-
-### Setting
-
- | Method | Description |
- |----------------------|-------------|
- | [`getRuntimeSettings`](methods/settings.md#getruntimesettings) | Gets the current settings and saves it into a class. |
- | [`updateRuntimeSettings`](methods/settings.md#updateruntimesettings) | Updates runtime settings with a given class. |
- | [`resetRuntimeSettings`](methods/settings.md#resetruntimesettings) | Resets the runtime settings. |
- | [`appendSettingsFromString`](methods/settings.md#appendsettingsfromstring) | Appends LabelRecognitionParameter settings in a string to the SDK object. |
- | [`outputSettingsToFile`](methods/settings.md#outputsettingstofile) | Outputs LabelRecognitionParameter settings into a file (JSON file). |
- | [`clearAppendedSettings`](methods/settings.md#clearappendedsettings) | Clear all appended LabelRecognitionParameter settings in the SDK object. |
- | [`updateReferenceRegionFromBarcodeResults`](methods/settings.md#updatereferenceregionfrombarcoderesults) | Updates reference region which is defined with source type DLR_LST_BARCODE. |
- | [`getModeArgument`](methods/settings.md#getmodeargument) | Get argument value for the specified mode parameter. |
- | [`setModeArgument`](methods/settings.md#setmodeargument) | Set argument value for the specified mode parameter. |
- | [`appendCharacterModel`](methods/settings.md#appendCharacterModel) | Appends CharacterModel to the SDK object. |
- | [`eraseAllCharacterModels`](methods/settings.md#appendCharacterModel) | Erases all CharacterModels the SDK object currently loaded. |
- | [`eraseCharacterModelByName`](methods/settings.md#appendCharacterModel) | Erases a name specified CharacterModel from the SDK object. |
-
-
-
-### Recognizing
-
- | Method | Description |
- |----------------------|-------------|
- | [`recognizeByBuffer`](methods/recognizing.md#recognizebybuffer) | Recognizes text from memory buffer containing image pixels in defined format. |
- | [`recognizeByFile`](methods/recognizing.md#recognizebyfile) | Recognizes text from a specified image file. |
-
-
-
-## [Classes](class/index.md)
-- [`iDMLTSConnectionParameters`](dm-lts-connection-parameters.md)
-- [`iDLRCharacterResult`](class/dlr-character-result.md)
-- [`iDLRImageData`](class/dlr-image-data.md)
-- [`iDLRLineResult`](class/dlr-line-result.md)
-- [`iDLRQuadrilateral`](class/dlr-quadrilateral.md)
-- [`iDLRReferenceRegion`](class/dlr-reference-region.md)
-- [`iDLRResult`](class/dlr-result.md)
-- [`iDLRRuntimeSettings`](class/dlr-runtime-settings.md)
-
-
-
-## [Enumerations]({{ site.enumerations }})
-- [`EnumBarcodeFormat`]({{ site.enumerations }}other-enums.html#dlrbarcodeformat)
-- [`EnumBarcodeFormat_2`]({{ site.enumerations }}other-enums.html#dlrbarcodeformat_2)
-- [`EnumDLRBinarizationMode`]({{ site.enumerations }}parameter-mode-enums.html#dlrbinarizationmode)
-- [`EnumDLRGrayscaleTransformationMode`]({{ site.enumerations }}parameter-mode-enums.html#dlrgrayscaletransformationmode)
-- [`EnumDLRImagePixelFormat`]({{ site.enumerations }}other-enums.html#dlrimagepixelformat)
-- [`EnumDLRLocalizationSourceType`]({{ site.enumerations }}other-enums.html#dlrlocalizationsourcetype)
-- [`EnumDLRRegionPredetectionMode`]({{ site.enumerations }}parameter-mode-enums.html#dlrregionpredetectionmode)
-- [`EnumDMChargeWay`]({{ site.enumerations }}other-enums.html#dm_chargeway)
-- [`EnumDMLicenseModule`]({{ site.enumerations }}other-enums.html#dm_licensemodule)
-- [`EnumDMUUIDGenerationMethod`]({{ site.enumerations }}other-enums.html#dm_uuidgenerationmethod)
-
-
-
-## [Error Code]({{ site.enumerations }}error-code.html)
-
diff --git a/programming-old/objectivec-swift/api-reference/index-v1.2.1.md b/programming-old/objectivec-swift/api-reference/index-v1.2.1.md
deleted file mode 100644
index 8a6cea5..0000000
--- a/programming-old/objectivec-swift/api-reference/index-v1.2.1.md
+++ /dev/null
@@ -1,94 +0,0 @@
----
-layout: default-layout
-title: Main Page - Dynamsoft Label Recognition iOS API Reference
-description: This is the main page of Dynamsoft Label Recognition for iOS API Reference.
-keywords: api reference, objective-c, oc, swift
-needAutoGenerateSidebar: false
-permalink: /programming/objectivec-swift/api-reference/index-v1.2.1.html
----
-
-# Dynamsoft Label Recognition - iOS API Reference
-
-- [Methods](#methods)
-- [Classes](#classes)
-- [Enumerations](#enumerations)
-- [Error Code](#error-code)
-
-## Methods
-
-### General
-
- | Method | Description |
- |----------------------|-------------|
- | [`getVersion`](methods/general.md#getversion) | Returns the version number string for the SDK. |
-
-
-
-### Initialization
-
- | Method | Description |
- |----------------------|-------------|
- | [`init`](methods/initialization.md#init) | Create an instance of Dynamsoft Label Recognition. |
- | [`initWithLicense`](methods/initialization.md#initWithLicense) | Sets the license and activates the SDK. |
- | [`initLicenseFromLTS`](methods/initialization.md#initlicensefromlts) | Initializes the label recognition license and connects to the specified server for online verification. |
-
-
-
-### Setting
-
- | Method | Description |
- |----------------------|-------------|
- | [`getRuntimeSettings`](methods/settings.md#getruntimesettings) | Gets the current settings and saves it into a class. |
- | [`updateRuntimeSettings`](methods/settings.md#updateruntimesettings) | Updates runtime settings with a given class. |
- | [`resetRuntimeSettings`](methods/settings.md#resetruntimesettings) | Resets the runtime settings. |
- | [`appendSettingsFromString`](methods/settings.md#appendsettingsfromstring) | Appends LabelRecognitionParameter settings in a string to the SDK object. |
- | [`appendSettingsFromFile`](methods/settings.md#appendsettingsfromFile) | Appends LabelRecognitionParameter settings from a file to the SDK object. |
- | [`outputSettingsToFile`](methods/settings.md#outputsettingstofile) | Outputs LabelRecognitionParameter settings into a file (JSON file). |
- | [`clearAppendedSettings`](methods/settings.md#clearappendedsettings) | Clear all appended LabelRecognitionParameter settings in the SDK object. |
- | [`updateReferenceRegionFromBarcodeResults`](methods/settings.md#updatereferenceregionfrombarcoderesults) | Updates reference region which is defined with source type DLR_LST_BARCODE. |
- | [`getModeArgument`](methods/settings.md#getmodeargument) | Get argument value for the specified mode parameter. |
- | [`setModeArgument`](methods/settings.md#setmodeargument) | Set argument value for the specified mode parameter. |
- | [`appendCharacterModel`](methods/settings.md#appendCharacterModel) | Appends CharacterModel to the SDK object. |
- | [`eraseAllCharacterModels`](methods/settings.md#appendCharacterModel) | Erases all CharacterModels the SDK object currently loaded. |
- | [`eraseCharacterModelByName`](methods/settings.md#appendCharacterModel) | Erases a name specified CharacterModel from the SDK object. |
-
-
-
-### Recognizing
-
- | Method | Description |
- |----------------------|-------------|
- | [`recognizeByBuffer`](methods/recognizing.md#recognizebybuffer) | Recognizes text from memory buffer containing image pixels in defined format. |
- | [`recognizeByFile`](methods/recognizing.md#recognizebyfile) | Recognizes text from a specified image file. |
-
-
-
-## [Classes](class/index.md)
-- [`iDLRLTSConnectionParameters`](dlr-lts-connection-parameters.md)
-- [`iDLRCharacterResult`](class/dlr-character-result.md)
-- [`iDLRImageData`](class/dlr-image-data.md)
-- [`iDLRLineResult`](class/dlr-line-result.md)
-- [`iDLRQuadrilateral`](class/dlr-quadrilateral.md)
-- [`iDLRReferenceRegion`](class/dlr-reference-region.md)
-- [`iDLRResult`](class/dlr-result.md)
-- [`iDLRRuntimeSettings`](class/dlr-runtime-settings.md)
-
-
-
-## [Enumerations]({{ site.enumerations }})
-- [`EnumBarcodeFormat`]({{ site.enumerations }}other-enums.html#dlrbarcodeformat)
-- [`EnumBarcodeFormat_2`]({{ site.enumerations }}other-enums.html#dlrbarcodeformat_2)
-- [`EnumDLRBinarizationMode`]({{ site.enumerations }}parameter-mode-enums.html#dlrbinarizationmode)
-- [`EnumDLRGrayscaleTransformationMode`]({{ site.enumerations }}parameter-mode-enums.html#dlrgrayscaletransformationmode)
-- [`EnumDLRImagePixelFormat`]({{ site.enumerations }}other-enums.html#dlrimagepixelformat)
-- [`EnumDLRLocalizationSourceType`]({{ site.enumerations }}other-enums.html#dlrlocalizationsourcetype)
-- [`EnumDLRRegionPredetectionMode`]({{ site.enumerations }}parameter-mode-enums.html#dlrregionpredetectionmode)
-- [`EnumDMChargeWay`]({{ site.enumerations }}other-enums.html#dm_chargeway)
-- [`EnumDMLicenseModule`]({{ site.enumerations }}other-enums.html#dm_licensemodule)
-- [`EnumDMUUIDGenerationMethod`]({{ site.enumerations }}other-enums.html#dm_uuidgenerationmethod)
-- [`EnumProduct`]({{ site.enumerations }}other-enums.html#product)
-
-
-
-## [Error Code]({{ site.enumerations }}error-code.html)
-
diff --git a/programming-old/objectivec-swift/api-reference/index-v1.2.md b/programming-old/objectivec-swift/api-reference/index-v1.2.md
deleted file mode 100644
index 1a62c89..0000000
--- a/programming-old/objectivec-swift/api-reference/index-v1.2.md
+++ /dev/null
@@ -1,93 +0,0 @@
----
-layout: default-layout
-title: Main Page - Dynamsoft Label Recognition iOS API Reference
-description: This is the main page of Dynamsoft Label Recognition for iOS API Reference.
-keywords: api reference, objective-c, oc, swift
-needAutoGenerateSidebar: false
-permalink: /programming/objectivec-swift/api-reference/index-v1.2.html
----
-
-# Dynamsoft Label Recognition - iOS API Reference
-
-- [Methods](#methods)
-- [Classes](#classes)
-- [Enumerations](#enumerations)
-- [Error Code](#error-code)
-
-## Methods
-
-### General
-
- | Method | Description |
- |----------------------|-------------|
- | [`getVersion`](methods/general.md#getversion) | Returns the version number string for the SDK. |
-
-
-
-### Initialization
-
- | Method | Description |
- |----------------------|-------------|
- | [`init`](methods/initialization.md#init) | Create an instance of Dynamsoft Label Recognition. |
- | [`initWithLicense`](methods/initialization.md#initWithLicense) | Sets the license and activates the SDK. |
- | [`initLicenseFromLTS`](methods/initialization.md#initlicensefromlts) | Initializes the label recognition license and connects to the specified server for online verification. |
-
-
-
-### Setting
-
- | Method | Description |
- |----------------------|-------------|
- | [`getRuntimeSettings`](methods/settings.md#getruntimesettings) | Gets the current settings and saves it into a class. |
- | [`updateRuntimeSettings`](methods/settings.md#updateruntimesettings) | Updates runtime settings with a given class. |
- | [`resetRuntimeSettings`](methods/settings.md#resetruntimesettings) | Resets the runtime settings. |
- | [`appendSettingsFromString`](methods/settings.md#appendsettingsfromstring) | Appends LabelRecognitionParameter settings in a string to the SDK object. |
- | [`appendSettingsFromFile`](methods/settings.md#appendsettingsfromFile) | Appends LabelRecognitionParameter settings from a file to the SDK object. |
- | [`outputSettingsToFile`](methods/settings.md#outputsettingstofile) | Outputs LabelRecognitionParameter settings into a file (JSON file). |
- | [`clearAppendedSettings`](methods/settings.md#clearappendedsettings) | Clear all appended LabelRecognitionParameter settings in the SDK object. |
- | [`updateReferenceRegionFromBarcodeResults`](methods/settings.md#updatereferenceregionfrombarcoderesults) | Updates reference region which is defined with source type DLR_LST_BARCODE. |
- | [`getModeArgument`](methods/settings.md#getmodeargument) | Get argument value for the specified mode parameter. |
- | [`setModeArgument`](methods/settings.md#setmodeargument) | Set argument value for the specified mode parameter. |
- | [`appendCharacterModel`](methods/settings.md#appendCharacterModel) | Appends CharacterModel to the SDK object. |
- | [`eraseAllCharacterModels`](methods/settings.md#appendCharacterModel) | Erases all CharacterModels the SDK object currently loaded. |
- | [`eraseCharacterModelByName`](methods/settings.md#appendCharacterModel) | Erases a name specified CharacterModel from the SDK object. |
-
-
-
-### Recognizing
-
- | Method | Description |
- |----------------------|-------------|
- | [`recognizeByBuffer`](methods/recognizing.md#recognizebybuffer) | Recognizes text from memory buffer containing image pixels in defined format. |
- | [`recognizeByFile`](methods/recognizing.md#recognizebyfile) | Recognizes text from a specified image file. |
-
-
-
-## [Classes](class/index.md)
-- [`iDMLTSConnectionParameters`](dm-lts-connection-parameters.md)
-- [`iDLRCharacterResult`](class/dlr-character-result.md)
-- [`iDLRImageData`](class/dlr-image-data.md)
-- [`iDLRLineResult`](class/dlr-line-result.md)
-- [`iDLRQuadrilateral`](class/dlr-quadrilateral.md)
-- [`iDLRReferenceRegion`](class/dlr-reference-region.md)
-- [`iDLRResult`](class/dlr-result.md)
-- [`iDLRRuntimeSettings`](class/dlr-runtime-settings.md)
-
-
-
-## [Enumerations]({{ site.enumerations }})
-- [`EnumBarcodeFormat`]({{ site.enumerations }}other-enums.html#dlrbarcodeformat)
-- [`EnumBarcodeFormat_2`]({{ site.enumerations }}other-enums.html#dlrbarcodeformat_2)
-- [`EnumDLRBinarizationMode`]({{ site.enumerations }}parameter-mode-enums.html#dlrbinarizationmode)
-- [`EnumDLRGrayscaleTransformationMode`]({{ site.enumerations }}parameter-mode-enums.html#dlrgrayscaletransformationmode)
-- [`EnumDLRImagePixelFormat`]({{ site.enumerations }}other-enums.html#dlrimagepixelformat)
-- [`EnumDLRLocalizationSourceType`]({{ site.enumerations }}other-enums.html#dlrlocalizationsourcetype)
-- [`EnumDLRRegionPredetectionMode`]({{ site.enumerations }}parameter-mode-enums.html#dlrregionpredetectionmode)
-- [`EnumDMChargeWay`]({{ site.enumerations }}other-enums.html#dm_chargeway)
-- [`EnumDMLicenseModule`]({{ site.enumerations }}other-enums.html#dm_licensemodule)
-- [`EnumDMUUIDGenerationMethod`]({{ site.enumerations }}other-enums.html#dm_uuidgenerationmethod)
-
-
-
-## [Error Code]({{ site.enumerations }}error-code.html)
-
diff --git a/programming-old/objectivec-swift/api-reference/index-v2.2.0.md b/programming-old/objectivec-swift/api-reference/index-v2.2.0.md
deleted file mode 100644
index e60fba2..0000000
--- a/programming-old/objectivec-swift/api-reference/index-v2.2.0.md
+++ /dev/null
@@ -1,51 +0,0 @@
----
-layout: default-layout
-title: Classes - Dynamsoft Label Recognizer iOS API Reference
-description: This page shows all Classes of Dynamsoft Label Recognizer for iOS API Reference.
-keywords: api reference, objective-c, oc, swift
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /programming/objectivec-swift/api-reference/index-v2.2.20.html
----
-
-
-# API Reference - iOS
-
-## Primary Classes
-
-- [DynamsoftLabelRecognizer](label-recognizer.md)
-
-## Auxiliary Classes
-
-- [iQuadrilateral](quadrilateral.md)
-- [iImageData](image-data.md)
-- [iBarcodeResult](barcode-result.md)
-- [iDLRRuntimeSettings](dlr-runtime-settings.md)
-- [iDLRReferenceRegion](dlr-reference-region.md)
-- [iDLRResult](dlr-result.md)
-- [iDLRLineResult](dlr-line-result.md)
-- [iDLRCharacterResult](dlr-character-result.md)
-- [iDLRDictionaryCorrectionThreshold](dlr-dictionary-correction-threshold.md)
-- [iDLRFurtherModes](dlr-further-modes.md)
-- [DLRLicenseVerificationDelegate](dlr-license-verification-delegate.md)
-
-## Enumerations
-
-- [EnumRegionPredetectionMode]({{ site.enumerations }}region-predetection-mode.html)
-- [EnumColourConversionMode]({{ site.enumerations }}colour-conversion-mode.html)
-- [EnumGrayscaleTransformationMode]({{ site.enumerations }}grayscale-transformation-mode.html)
-- [EnumGrayscaleEnhancementMode]({{ site.enumerations }}grayscale-enhancement-mode.html)
-- [EnumBinarizationMode]({{ site.enumerations }}binarization-mode.html)
-- [EnumTextureDetectionMode]({{ site.enumerations }}texture-detection-mode.html)
-- [EnumBarcodeFormat]({{ site.enumerations }}barcode-format.html)
-- [EnumBarcodeFormat_2]({{ site.enumerations }}barcode-format-2.html)
-- [EnumImagePixelFormat]({{ site.enumerations }}image-pixel-format.html)
-- [EnumDMChargeWay]({{ site.enumerations }}dm-charge-way.html)
-- [EnumDMLicenseModule]({{ site.enumerations }}dm-license-module.html)
-- [EnumDMUUIDGenerationMethod]({{ site.enumerations }}dm-uuid-generation-method.html)
-- [EnumProduct]({{ site.enumerations }}product.html)
-- [EnumLocalizationSourceType]({{ site.enumerations }}localization-source-type.html)
-
-## Error Code
-
-- [Error Code]({{ site.enumerations }}error-code.html)
diff --git a/programming-old/objectivec-swift/api-reference/index.md b/programming-old/objectivec-swift/api-reference/index.md
deleted file mode 100644
index 70cf807..0000000
--- a/programming-old/objectivec-swift/api-reference/index.md
+++ /dev/null
@@ -1,51 +0,0 @@
----
-layout: default-layout
-title: Classes - Dynamsoft Label Recognizer iOS API Reference
-description: This page shows all Classes of Dynamsoft Label Recognizer for iOS API Reference.
-keywords: api reference, objective-c, oc, swift
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /programming/objectivec-swift/api-reference/index.html
----
-
-
-# API Reference - iOS
-
-## Primary Classes
-
-- [DynamsoftLabelRecognizer](label-recognizer.md)
-
-## Auxiliary Classes
-
-- [iQuadrilateral](quadrilateral.md)
-- [iImageData](image-data.md)
-- [iBarcodeResult](barcode-result.md)
-- [iDLRRuntimeSettings](dlr-runtime-settings.md)
-- [iDLRReferenceRegion](dlr-reference-region.md)
-- [iDLRResult](dlr-result.md)
-- [iDLRLineResult](dlr-line-result.md)
-- [iDLRCharacterResult](dlr-character-result.md)
-- [iDLRDictionaryCorrectionThreshold](dlr-dictionary-correction-threshold.md)
-- [iDLRFurtherModes](dlr-further-modes.md)
-- [DLRLicenseVerificationDelegate](dlr-license-verification-delegate.md)
-
-## Enumerations
-
-- [EnumRegionPredetectionMode]({{ site.enumerations }}region-predetection-mode.html)
-- [EnumColourConversionMode]({{ site.enumerations }}colour-conversion-mode.html)
-- [EnumGrayscaleTransformationMode]({{ site.enumerations }}grayscale-transformation-mode.html)
-- [EnumGrayscaleEnhancementMode]({{ site.enumerations }}grayscale-enhancement-mode.html)
-- [EnumBinarizationMode]({{ site.enumerations }}binarization-mode.html)
-- [EnumTextureDetectionMode]({{ site.enumerations }}texture-detection-mode.html)
-- [EnumBarcodeFormat]({{ site.enumerations }}barcode-format.html)
-- [EnumBarcodeFormat_2]({{ site.enumerations }}barcode-format-2.html)
-- [EnumImagePixelFormat]({{ site.enumerations }}image-pixel-format.html)
-- [EnumDMChargeWay]({{ site.enumerations }}dm-charge-way.html)
-- [EnumDMLicenseModule]({{ site.enumerations }}dm-license-module.html)
-- [EnumDMUUIDGenerationMethod]({{ site.enumerations }}dm-uuid-generation-method.html)
-- [EnumProduct]({{ site.enumerations }}product.html)
-- [EnumLocalizationSourceType]({{ site.enumerations }}localization-source-type.html)
-
-## Error Code
-
-- [Error Code]({{ site.enumerations }}error-code.html)
diff --git a/programming-old/objectivec-swift/api-reference/label-recognizer-v2.0.0.md b/programming-old/objectivec-swift/api-reference/label-recognizer-v2.0.0.md
deleted file mode 100644
index 374aefa..0000000
--- a/programming-old/objectivec-swift/api-reference/label-recognizer-v2.0.0.md
+++ /dev/null
@@ -1,824 +0,0 @@
----
-layout: default-layout
-title: DynamsoftLabelRecognizer Class - Dynamsoft Label Recognizer iOS API Reference
-description: This page shows DynamsoftLabelRecognizer methods of Dynamsoft Label Recognizer for iOS API Reference.
-keywords: api reference, objective-c, oc, swift
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/objectivec-swift/api-reference/label-recognizer-v2.0.0.html
----
-
-
-# DynamsoftLabelRecognizer
-
-```objc
-@interface DynamsoftLabelRecognizer : NSObject
-```
-
-## Initialization Method Summary
-
- | Method | Description |
- |----------------------|-------------|
- | [`init`](#init) | Create an instance of Dynamsoft Label Recognizer. |
- | [`initLicense`](#initlicense) | Initializes the label Recognizer license. |
-
-## Settings Method Summary
-
- | Method | Description |
- |----------------------|-------------|
- | [`getRuntimeSettings`](#getruntimesettings) | Gets the current settings and saves it into a class. |
- | [`updateRuntimeSettings`](#updateruntimesettings) | Updates runtime settings with a given class. |
- | [`resetRuntimeSettings`](#resetruntimesettings) | Resets the runtime settings. |
- | [`appendSettingsFromString`](#appendsettingsfromstring) | Appends LabelRecognizerParameter settings in a string to the SDK object. |
- | [`appendSettingsFromFile`](#appendsettingsfromfile) | Appends LabelRecognizerParameter settings from a file to the SDK object. |
- | [`outputSettingsToFile`](#outputsettingstofile) | Outputs LabelRecognizerParameter settings into a file (JSON file). |
- | [`clearAppendedSettings`](#clearappendedsettings) | Clear all appended LabelRecognizerParameter settings in the SDK object. |
- | [`updateReferenceRegionFromBarcodeResults`](#updatereferenceregionfrombarcoderesults) | Updates reference region which is defined with source type LST_BARCODE. |
- | [`getModeArgument`](#getmodeargument) | Get argument value for the specified mode parameter. |
- | [`setModeArgument`](#setmodeargument) | Set argument value for the specified mode parameter. |
- | [`appendCharacterModel`](#appendcharactermodel) | Appends CharacterModel to the SDK object. |
- | [`eraseAllCharacterModels`](#eraseallcharactermodels) | Erases all CharacterModels the SDK object currently loaded. |
- | [`eraseCharacterModelByName`](#erasecharactermodelbyname) | Erases a name specified CharacterModel from the SDK object. |
-
-## Video Scanning Method Summary
-
- | Method | Description |
- |----------------------|-------------|
- | [`setImageSource`](#setimagesource) | Set an instance of `ImageSource` as the source of video label scanning. User can either implement the interface `ImageSource` or use `DynamsoftCameraEnhancer`. |
- | [`setLabelResultListener`](#setlabelresultlistener) | Register a LabelResultListener to obtain video label recognition results. |
- | [`startScanning`](#startscanning) | Start video label recognition. |
- | [`stopScanning`](#stopscanning) | Stop video label recognition. |
-
-## Recognizing Method Summary
-
- | Method | Description |
- |----------------------|-------------|
- | [`recognizeBuffer`](#recognizebybuffer) | Recognizes text from memory buffer containing image pixels in defined format. |
- | [`recognizeFile`](#recognizebyfile) | Recognizes text from a specified image file. |
- | [`recognizeImage`](#recognizebyimage) | Recognizes text from an image in memory. |
-
-## General Method Summary
-
- | Method | Description |
- |----------------------|-------------|
- | [`getVersion`](#getversion) | Returns the version number string for the SDK. |
-
-
-## Initialization Method Details
-
-### init
-
-Initializes DynamsoftLabelRecognizer.
-
-```objc
-- (instancetype _Nonnull)init;
-```
-
-**Return value**
-
-The instance of DynamsoftLabelRecognizer.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer.init()
-```
-
-
-### initLicense
-
-Initializes the label Recognizer license.
-
-```objc
-+ (void)initLicense:(NString* _Nullable)license verificationDelegate:(id _Nullable)connectionDelegate;
-```
-
-**Parameters**
-
-`[in] license` The product keys.
-`[in,out] connectionDelegate` The delegate to handle callback when license server returns.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-[DynamsoftLabelRecognizer initLicense:@"t0260NwAAAHV***************" verificationDelegate:self];
-
-- (void)DLRLicenseVerificationCallback:(bool)isSuccess error:(NSError * )error
-{
- //TODO: add your code for license verification
-}
-```
-2.
-```swift
-DynamsoftLabelRecognizer.initLicense(license:"t0260NwAAAHV***************", verificationDelegate: self)
-
-func DLRLicenseVerificationCallback(_ isSuccess: Bool, error: Error?)
-{
- //TODO: add your code for license verification
-}
-```
-
-## Settings Method Details
-
-### appendCharacterModel
-Appends CharacterModel to the SDK object.
-
-```objc
-+ (void)appendCharacterModel:(NSString*)name prototxtBuffer:(NSData*)prototxtBuffer txtBuffer:(NSData*)txtBuffer characterModelBuffer:(NSData*)characterModelBuffer
-```
-
-**Parameters**
-
-`name` A unique name for the appended CharacterModel.
-`prototxtBuffer` The .prototxt file data of the CharacterModel in a byte array.
-`txtBuffer` The .txt file data of the CharacterModel in a byte array.
-`characterModelBuffer` The .caffemodel file data of the CharacterModel in a byte array.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-//construct prototxtBuffer, txtBuffer and characterModelBuffer
-[DynamsoftLabelRecognizer appendCharacterModel:@"your model name" prototxtBuffer: prototxtBuffer txtBuffer: txtBuffer characterModelBuffer: characterModelBuffer];
-```
-2.
-```swift
-//construct prototxtBuffer, txtBuffer and characterModelBuffer
-DynamsoftLabelRecognizer.appendCharacterModel("your model name", prototxtBuffer: prototxtBuffer, txtBuffer: txtBuffer, characterModelBuffer: characterModelBuffer)
-```
-
-
-### eraseAllCharacterModels
-Erases all CharacterModels the SDK object currently loaded.
-
-```objc
-+ (void)eraseAllCharacterModels;
-```
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-[DynamsoftLabelRecognizer eraseAllCharacterModels];
-```
-2.
-```swift
-DynamsoftLabelRecognizer.eraseAllCharacterModels()
-```
-
-
-### eraseCharacterModelByName
-
-Erases a name specified CharacterModel from the SDK object.
-
-```objc
-+ (void)eraseCharacterModelByName:(NSString*)name
-```
-
-**Parameters**
-
-`name` A unique name representing the CharacterModel to erase.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-[DynamsoftLabelRecognizer eraseCharacterModelByName:@"your model name"];
-```
-2.
-```swift
-DynamsoftLabelRecognizer.eraseCharacterModelByName("your model name")
-```
-
-
-### appendSettingsFromFile
-Appends LabelRecognizerParameter settings in a file to the SDK object.
-
-```objc
-- (void)appendSettingsFromFile:(NSString*)filePath error:(NSError**)error
-```
-
-**Parameters**
-
-`filePath` The settings file path.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-
-NSError __autoreleasing * error;
-[recognizer appendSettingsFromFile:@"your file path" error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer()
-let error: NSError? = NSError()
-recognizer.appendSettingsFromFile("your file path", error:&error)
-```
-
-
-### appendSettingsFromString
-Append a new template string to the current label Recognizer instance.
-
-```objc
-- (void)appendSettingsFromString:(NSString*)content error:(NSError**)error
-```
-
-**Parameters**
-
-`content` A JSON string that represents the content of the settings.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-
-NSError __autoreleasing * error;
-[recognizer appendSettingsFromString:@"{\"LabelRecognizerParameter\":{\"Name\":\"P1\", \"RegionPredetectionModes\":[{\"Mode\":\"RPM_GENERAL_HSV_CONTRAST\"}], \"ReferenceRegionNameArray\": [\"R1\"]},\"ReferenceRegion\":{\"Name\":\"R1\",\"Localization\":{\"SourceType\":\"LST_PREDETECTED_REGION\",\"RegionPredetectionModesIndex\":0},\"TextAreaNameArray\":[\"T1\"]},\"TextArea\":{\"Name\":\"T1\",\"CharacterModelName\":\"Number\"}}" error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer()
-let error: NSError? = NSError()
-recognizer.appendSettingsFromString("{\"LabelRecognizerParameter\":{\"Name\":\"P1\", \"RegionPredetectionModes\":[{\"Mode\":\"RPM_GENERAL_HSV_CONTRAST\"}], \"ReferenceRegionNameArray\": [\"R1\"]},\"ReferenceRegion\":{\"Name\":\"R1\",\"Localization\":{\"SourceType\":\"LST_PREDETECTED_REGION\",\"RegionPredetectionModesIndex\":0},\"TextAreaNameArray\":[\"T1\"]},\"TextArea\":{\"Name\":\"T1\",\"CharacterModelName\":\"Number\"}}", error:&error)
-```
-
-
-### clearAppendedSettings
-
-Clear all appended parameter settings of the current label Recognizer instance.
-
-```objc
-- (void)clearAppendedSettings:(NSError**)error;
-```
-
-**Parameters**
-
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-NSError __autoreleasing * error;
-[recognizer clearAppendedSettings:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer()
-let error: NSError? = NSError()
-recognizer.clearAppendedSettings(&error)
-```
-
-
-### getModeArgument
-
-Get argument value for the specified mode parameter.
-
-```objc
-- (NSString* _Nonnull)getModeArgument:(NSString* _Nonnull)modeName index:(NSInteger)index argumentName:(NSString* _Nonnull)argumentName error:(NSError* _Nullable * _Nullable)error;
-```
-
-**Parameters**
-
-`modeName`: The mode parameter name to get argument.
-`index`: The array index of mode parameter to indicate a specific mode.
-`argumentName`: The name of the argument to get.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Return value**
-
-the optional argument for a specified mode in Modes parameters.
-
-**Remark**
-
-Check follow link for available modes and arguments:
-
-- [`RegionPredetectionModes`]({{ site.parameters-reference }}label-recognition-parameter/region-predetection-modes.html#regionpredetectionmodes)
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-
-NSError __autoreleasing * error;
-NSString *argumentValue = [recognizer getModeArgument:@"RegionPredetectionModes" index:0 argumentName:@"AspectRatioRange" error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer()
-let error: NSError? = NSError()
-let argumentValue = recognizer.getModeArgument("RegionPredetectionModes", index:0, argumentName:"AspectRatioRange", error:&error)
-```
-
-
-
-### getRuntimeSettings
-
-Get current settings and save them into a [`iDLRRuntimeSettings`](dlr-runtime-settings.md) class object.
-
-```objc
-- (iDLRRuntimeSettings*)getRuntimeSettings:(NSError**)error;
-```
-
-**Parameters**
-
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Return value**
-
-The class object of runtime settings.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-NSError __autoreleasing * error;
-iDLRRuntimeSettings* settings = [recognizer getRuntimeSettings:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer()
-let error: NSError? = NSError()
-let settings = recognizer.getRuntimeSettings(&error)
-```
-
-
-
-### outputSettingsToFile
-
-Outputs runtime settings and save them into a settings file (JSON file).
-
-```objc
-- (void)outputSettingsToFile:(NSString*)filePath templateName:(NSString*)templateName error:(NSError**)error
-```
-
-**Parameters**
-
-`filePath` The path of the output file which stores current settings.
-`templateName` A unique name for declaring current runtime settings.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-NSError __autoreleasing * error;
-[recognizer outputSettingsToFile:@"your saving file path" templateName:@"currentRuntimeSettings" error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer()
-let error: NSError? = NSError()
-recognizer.outputSettingsToFile("your saving file path", templateName:"currentRuntimeSettings", error:&error)
-```
-
-
-
-### resetRuntimeSettings
-
-Reset all runtime settings to default values.
-
-```objc
-- (void)resetRuntimeSettings:(NSError**)error;
-```
-
-**Parameters**
-
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-
-NSError __autoreleasing * error;
-[recognizer resetRuntimeSettings:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer()
-let error: NSError? = NSError()
-recognizer.resetRuntimeSettings(error:&error)
-```
-
-
-
-### setModeArgument
-
-Set argument value for the specified mode parameter.
-
-```objc
-- (void)setModeArgument:(NSString* _Nonnull)modeName index:(NSInteger)index argumentName:(NSString* _Nonnull)argumentName argumentValue:(NSString* _Nonnull)argumentValue error:(NSError* _Nullable * _Nullable)error;
-```
-
-**Parameters**
-
-`modeName`: The mode parameter name to set argument.
-`index`: The array index of mode parameter to indicate a specific mode.
-`argumentName`: The name of the argument to set.
-`argumentValue`: The value of the argument to set.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Remark**
-
-Check follow link for available modes and arguments:
-
-- [`RegionPredetectionModes`]({{ site.parameters-reference }}label-recognition-parameter/region-predetection-modes.html#regionpredetectionmodes)
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-NSError __autoreleasing * _Nullable error;
-[recognizer setModeArgument:@"RegionPredetectionModes" index:0 argumentName:@"AspectRatioRange" argumentValue:"100" error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer()
-let error: NSError? = NSError()
-recognizer.setModeArgument("RegionPredetectionModes", index:0, argumentName:"AspectRatioRange", argumentValue:"100", error:&error)
-```
-
-
-### updateReferenceRegionFromBarcodeResults
-
-Updates reference region which is defined with source type LST_BARCODE.
-
-```objc
-- (void)updateReferenceRegionFromBarcodeResults:(NSArray*)barcodeResults templateName:(NSString *)templateName error:(NSError**)error
-```
-
-**Parameters**
-
-`barcodeResults` The barcode results used to localize reference region. See also [`iBarcodeResult`](barcode-result.md).
-`templateName` The template name. A template name is the value of key LabelRecognizerParameter.Name defined in JSON formatted settings. If no template name is specified, current runtime settings will be used.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-NSArray *textResults;
-//get textResults from Dynamsoft Barcode Reader SDK
-NSError __autoreleasing *error;
-[recognizer appendSettingsFromString:@"{\"LabelRecognizerParameter\":{\"Name\":\"P1\", \"RegionPredetectionModes\":[{\"Mode\":\"RPM_GENERAL_HSV_CONTRAST\"}], \"ReferenceRegionNameArray\": [\"R1\"]},\"ReferenceRegion\":{\"Name\":\"R1\",\"Localization\":{\"SourceType\":\"LST_BARCODE\"},\"TextAreaNameArray\":[\"T1\"]},\"TextArea\":{\"Name\":\"T1\",\"CharacterModelName\":\"Number\"}}" error:&error];
-[recognizer updateReferenceRegionFromBarcodeResults:textResults templateName:@"P1" error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer()
-var textResults = [iBarcodeResult]()
-//get textResults from Dynamsoft Barcode Reader SDK
-let error: NSError? = NSError()
-recognizer.appendSettingsFromString("{\"LabelRecognizerParameter\":{\"Name\":\"P1\", \"RegionPredetectionModes\":[{\"Mode\":\"RPM_GENERAL_HSV_CONTRAST\"}], \"ReferenceRegionNameArray\": [\"R1\"]},\"ReferenceRegion\":{\"Name\":\"R1\",\"Localization\":{\"SourceType\":\"LST_BARCODE\"},\"TextAreaNameArray\":[\"T1\"]},\"TextArea\":{\"Name\":\"T1\",\"CharacterModelName\":\"Number\"}}", error:&error)
-recognizer.updateReferenceRegionFromBarcodeResults(textResults, templateName:"P1", error:&error)
-```
-
-
-
-### updateRuntimeSettings
-
-Update runtime settings with a given [`iDLRRuntimeSettings`](dlr-runtime-settings.md) class object.
-
-```objc
-- (void)updateRuntimeSettings:(iDLRRuntimeSettings*)settings error:(NSError**)error
-```
-
-**Parameters**
-
-`settings` The class object of template settings.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-NSError __autoreleasing * error;
-iDLRRuntimeSettings *settings;
-settings.maxThreadCount = 4;
-[recognizer updateRuntimeSettings:settings error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer()
-let error: NSError? = NSError()
-let settings = recognizer.getRuntimeSettings(&error)
-settings.maxThreadCount = 4;
-recognizer.updateRuntimeSettings(settings, error:&error);
-```
-
-
-
-## Video Scanning Method Details
-
-### setImageSource
-
-Set an instance of `ImageSource` as the source of video label scanning. User can either implement the interface `ImageSource` or use `DynamsoftCameraEnhancer`.
-
-```objc
-- (void)setImageSource:(id)source;
-```
-
-**Parameters**
-
-`[in] source` A instance of protocol `ImageSource`.
-
-**Code Snippet**
-
-### setLabelResultListener
-
-Register a LabelResultListener to obtain video label recognition results.
-
-```objc
-- (void)setLabelResultListener:(nullable id)listener
-```
-
-**Parameters**
-
-`[in] source` A instance of protocol `LabelResultListener`.
-
-**Code Snippet**
-
-### startScanning
-
-Start video label recognition.
-
-```objc
-- (void)startScanning;
-```
-
-### stopScanning
-
-Stop video label recognition.
-
-```objc
-- (void)stopScanning;
-```
-
-## Recognizing Method Details
-
-### recognizeBuffer
-
-Recognizes text from the memory buffer containing image pixels in defined format.
-
-```objc
-- (NSArray*)recognizeBuffer:(iImageData*)imageData templateName:(NSString*)templateName error:(NSError**)error
-```
-
-**Parameters**
-
-`[in] imageData` An object of `iImageData` that represents an image.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Return value**
-
-All results recognized successfully.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-iImageData *imageData = [[iImageData alloc] init];
-//construct imageData
-NSError __autoreleasing * error;
-NSArray* result = [recognizer recognizeBuffer:imageData templateName:@"" error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer()
-let imageData = iImageData.init()
-let error: NSError? = NSError()
-//construct imageData
-let result = recognizer.recognizeBuffer(imageData:imageData, templateName:"", error:&error)
-```
-
-
-
-### recognizeFile
-
-Recognizes text from a specified image file.
-
-```objc
-- (NSArray*)recognizeFile:(NSString*)name templateName:(NSString*)templateName error:(NSError**)error
-```
-
-**Parameters**
-
-`[in] name` A string defining the file path.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Return value**
-
-All results recognized successfully.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-NSError __autoreleasing * error;
-NSArray* result = [recognizer recognizeFile:@"your file path" templateName:@"" error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer()
-let error: NSError? = NSError()
-let result = recognizer.recognizeFile("your file path", templateName:"", error:&error)
-```
-
-
-### recognizeImage
-
-Recognizes text from a `UIImage`.
-
-```objc
-- (NSArray* _Nullable)recognizeImage:(UIImage* _Nonnull)image
- error:(NSError* _Nullable * _Nullable)error;
-```
-
-**Parameters**
-
-`[in] image` An object of `UIImage`.
-`[in, out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Return value**
-
-All results recognized successfully.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-NSError __autoreleasing * error;
-UIImage *image = [[UIImage alloc] init];
-NSArray* result = [recognizer recognizeImage:image withTemplate:@"" error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer()
-let error: NSError? = NSError()
-let image: UIImage? = UIImage()
-let result = recognizer.recognizeImage(image:image withTemplate:"" error:&error)
-```
-
-
-### recognizeFileInMemory
-
-Recognizes text from an image file in memory.
-
-```objc
-- (NSArray* _Nullable)recognizeFileInMemory:(NSData* _Nonnull)fileBytes
- error:(NSError**)error
-```
-
-**Parameters**
-
-`[in] fileBytes` The image file in memory.
-`[in, out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Return value**
-
-All results recognized successfully.
-
-**Code Snippet**
-
-## General Method Details
-
-### getVersion
-
-Get version information of SDK.
-
-```objc
-- (NSString*)getVersion;
-```
-
-**Return value**
-
-The version information string.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-NSString* versionInfo = [recognizer getVersion];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer.init()
-let versionInfo = recognizer.getVersion();
-```
diff --git a/programming-old/objectivec-swift/api-reference/label-recognizer.md b/programming-old/objectivec-swift/api-reference/label-recognizer.md
deleted file mode 100644
index e159267..0000000
--- a/programming-old/objectivec-swift/api-reference/label-recognizer.md
+++ /dev/null
@@ -1,831 +0,0 @@
----
-layout: default-layout
-title: DynamsoftLabelRecognizer Class - Dynamsoft Label Recognizer iOS API Reference
-description: This page shows DynamsoftLabelRecognizer methods of Dynamsoft Label Recognizer for iOS API Reference.
-keywords: api reference, objective-c, oc, swift
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/objectivec-swift/api-reference/label-recognizer.html
----
-
-
-# DynamsoftLabelRecognizer
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v2.2.20.
-
-```objc
-@interface DynamsoftLabelRecognizer : NSObject
-```
-
-## Initialization Method Summary
-
- | Method | Description |
- |----------------------|-------------|
- | [`init`](#init) | Create an instance of Dynamsoft Label Recognizer. |
- | [`initLicense`](#initlicense) | Initializes the label Recognizer license. |
-
-## Settings Method Summary
-
- | Method | Description |
- |----------------------|-------------|
- | [`getRuntimeSettings`](#getruntimesettings) | Gets the current settings and saves it into a class. |
- | [`updateRuntimeSettings`](#updateruntimesettings) | Updates runtime settings with a given class. |
- | [`initRuntimeSettings`](#initruntimesettings) | Initialize `LabelRecognizerParameter` settings from a JSON string. |
- | [`initRuntimeSettingsFromFile`](#initruntimesettingsfromfile) | Initialize `LabelRecognizerParameter` settings from a JSON file. |
- | [`outputRuntimeSettings`](#outputruntimesettings) | Outputs `LabelRecognizerParameter` settings as a string. |
- | [`outputRuntimeSettingsToFile`](#outputruntimesettingstofile) | Outputs `LabelRecognizerParameter` settings into a JSON file. |
- | [`resetRuntimeSettings`](#resetruntimesettings) | Resets the runtime settings. |
- | [`getModeArgument`](#getmodeargument) | Get argument value for the specified mode parameter. |
- | [`setModeArgument`](#setmodeargument) | Set argument value for the specified mode parameter. |
- | [`updateReferenceRegionFromBarcodeResults`](#updatereferenceregionfrombarcoderesults) | Updates reference region which is defined with source type `LST_BARCODE`. |
- | [`appendCharacterModel`](#appendcharactermodel) | Appends `CharacterModel` to the SDK object. |
-
-## Video Scanning Method Summary
-
- | Method | Description |
- |----------------------|-------------|
- | [`setImageSource`](#setimagesource) | Set an instance of `ImageSource` as the source of video label scanning. User can either implement the interface `ImageSource` or use `DynamsoftCameraEnhancer`. |
- | [`setLabelResultListener`](#setlabelresultlistener) | Register a `LabelResultListener` to obtain video label recognition results. |
- | [`startScanning`](#startscanning) | Start video label recognition. |
- | [`stopScanning`](#stopscanning) | Stop video label recognition. |
-
-## Recognition Method Summary
-
- | Method | Description |
- |----------------------|-------------|
- | [`recognizeBuffer`](#recognizebuffer) | Recognizes text from memory buffer containing image pixels in defined format. |
- | [`recognizeFile`](#recognizefile) | Recognizes text from a specified image file. |
- | [`recognizeImage`](#recognizeimage) | Recognizes text from a UIImage. |
- | [`recognizeFileInMemory`](#recognizefileinmemory) | Recognizes text from an image file in memory. |
-
-## General Method Summary
-
- | Method | Description |
- |----------------------|-------------|
- | [`getVersion`](#getversion) | Returns the version number string for the SDK. |
-
-
-
-## Initialization Method Details
-
-### init
-
-Initializes DynamsoftLabelRecognizer.
-
-```objc
-- (instancetype _Nonnull)init;
-```
-
-**Return value**
-
-The instance of DynamsoftLabelRecognizer.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer.init()
-```
-
-
-
-### initLicense
-
-Initializes the label Recognizer license.
-
-```objc
-+ (void)initLicense:(NString* _Nullable)license verificationDelegate:(id _Nullable)connectionDelegate;
-```
-
-**Parameters**
-
-`[in] license` The product keys.
-`[in,out] connectionDelegate` The delegate to handle callback when license server returns.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-[DynamsoftLabelRecognizer initLicense:@"t0260NwAAAHV***************" verificationDelegate:self];
-- (void)DLRLicenseVerificationCallback:(bool)isSuccess error:(NSError * )error
-{
- //TODO: add your code for license verification
-}
-```
-2.
-```swift
-DynamsoftLabelRecognizer.initLicense(license:"t0260NwAAAHV***************", verificationDelegate: self)
-func DLRLicenseVerificationCallback(_ isSuccess: Bool, error: Error?)
-{
- //TODO: add your code for license verification
-}
-```
-
-## Settings Method Details
-
-### initRuntimeSettings
-
-Initialize `LabelRecognizerParameter` settings from a JSON string.
-
-```objc
-- (BOOL)initRuntimeSettings:(NSString*)content
- error:(NSError* _Nullable * _Nullable)error;
-```
-
-**Parameters**
-
-`[in] content` A stringified JSON data that stores runtime settings.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Return Value**
-
-Whether the settings are updated successfully.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-NSError __autoreleasing * error;
-[recognizer initRuntimeSettings:@"Your runtime settings in a JSON string" error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer()
-try? recognizer.initRuntimeSettings("Your runtime settings in a JSON string")
-```
-
-### initRuntimeSettingsFromFile
-
-Initialize `LabelRecognizerParameter` settings from a JSON file.
-
-```objc
-- (BOOL)initRuntimeSettingsFromFile:(NSString*)filePath
- error:(NSError* _Nullable * _Nullable)error;
-```
-
-**Parameters**
-
-`[in] filePath` The path of a JSON file that stores runtime settings.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Return Value**
-
-Whether the settings are updated successfully.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-NSError __autoreleasing * error;
-[recognizer initRuntimeSettingsFromFile:@"Path of your JSON file" error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer()
-try? recognizer.initRuntimeSettingsFromFile("Path of your JSON file")
-```
-
-### getRuntimeSettings
-
-Get current settings and save them into a [`iDLRRuntimeSettings`](dlr-runtime-settings.md) class object.
-
-```objc
-- (iDLRRuntimeSettings*)getRuntimeSettings:(NSError**)error;
-```
-
-**Parameters**
-
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Return value**
-
-The class object of runtime settings.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-NSError __autoreleasing * error;
-iDLRRuntimeSettings* settings = [recognizer getRuntimeSettings:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer()
-let settings = try? settings = recognizer.getRuntimeSettings()
-```
-
-
-
-### updateRuntimeSettings
-
-Update runtime settings with a given [`iDLRRuntimeSettings`](dlr-runtime-settings.md) class object.
-
-```objc
-- (void)updateRuntimeSettings:(iDLRRuntimeSettings*)settings error:(NSError**)error
-```
-
-**Parameters**
-
-`[in] settings` The class object of template settings.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-NSError __autoreleasing * error;
-iDLRRuntimeSettings *settings;
-settings.maxThreadCount = 4;
-[recognizer updateRuntimeSettings:settings error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer()
-let settings = try? recognizer.getRuntimeSettings()
-settings.maxThreadCount = 4;
-try? recognizer.updateRuntimeSettings(settings);
-```
-
-
-
-### appendCharacterModel
-
-Appends CharacterModel to the SDK object.
-
-```objc
-+ (void)appendCharacterModel:(NSString*)name prototxtBuffer:(NSData*)prototxtBuffer txtBuffer:(NSData*)txtBuffer characterModelBuffer:(NSData*)characterModelBuffer
-```
-
-**Parameters**
-
-`[in] name` A unique name for the appended CharacterModel.
-`[in] prototxtBuffer` The .prototxt file data of the CharacterModel in a byte array.
-`[in] txtBuffer` The .txt file data of the CharacterModel in a byte array.
-`[in] characterModelBuffer` The .caffemodel file data of the CharacterModel in a byte array.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-//construct prototxtBuffer, txtBuffer and characterModelBuffer
-[DynamsoftLabelRecognizer appendCharacterModel:@"your model name" prototxtBuffer: prototxtBuffer txtBuffer: txtBuffer characterModelBuffer: characterModelBuffer];
-```
-2.
-```swift
-//construct prototxtBuffer, txtBuffer and characterModelBuffer
-DynamsoftLabelRecognizer.appendCharacterModel("your model name", prototxtBuffer: prototxtBuffer, txtBuffer: txtBuffer, characterModelBuffer: characterModelBuffer)
-```
-
-
-
-### getModeArgument
-
-Get argument value for the specified mode parameter.
-
-```objc
-- (NSString* _Nonnull)getModeArgument:(NSString* _Nonnull)modeName index:(NSInteger)index argumentName:(NSString* _Nonnull)argumentName error:(NSError* _Nullable * _Nullable)error;
-```
-
-**Parameters**
-
-`[in] modeName` The mode parameter name to get argument.
-`[in] index` The array index of mode parameter to indicate a specific mode.
-`[in] argumentName` The name of the argument to get.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Return value**
-
-the optional argument for a specified mode in Modes parameters.
-
-**Remark**
-
-Check follow link for available modes and arguments:
-
-- [`RegionPredetectionModes`]({{ site.parameters-reference }}label-recognition-parameter/region-predetection-modes.html#regionpredetectionmodes)
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-NSError __autoreleasing * error;
-NSString *argumentValue = [recognizer getModeArgument:@"RegionPredetectionModes" index:0 argumentName:@"AspectRatioRange" error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer()
-let argumentValue = try? recognizer.getModeArgument("RegionPredetectionModes", index:0, argumentName:"AspectRatioRange")
-```
-
-
-
-### outputRuntimeSettings
-
-Outputs runtime settings and save them into a settings file (JSON file).
-
-```objc
-- (NSString* _Nullable)outputRuntimeSettings:(NSString* _Nonnull)settingsName
- error:(NSError* _Nullable * _Nullable)error;
-```
-
-**Parameters**
-
-`[in] settingsName` The path of the output file which stores current settings.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-NSError __autoreleasing * error;
-NSString *settings = [recognizer outputRuntimeSettings:@"your settings name" error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer()
-let settings = try? recognizer.outputRuntimeSettings("your settings name")
-```
-
-### outputRuntimeSettingsToFile
-
-Outputs runtime settings and save them into a settings file (JSON file).
-
-```objc
-- (BOOL)outputRuntimeSettingsToFile:(NSString* _Nullable)filePath
- settingsName:(NSString* _Nonnull)settingsName
- error:(NSError* _Nullable * _Nullable)error;
-```
-
-**Parameters**
-
-`[in] filePath` The path of the output file which stores current settings.
-`[in] settingsName` A unique name for declaring current runtime settings.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-NSError __autoreleasing * error;
-[recognizer outputRuntimeSettingsToFile:@"your saving file path" error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer()
-try? recognizer.outputRuntimeSettingsToFile("your saving file path")
-```
-
-
-
-### resetRuntimeSettings
-
-Reset all runtime settings to default values.
-
-```objc
-- (void)resetRuntimeSettings:(NSError**)error;
-```
-
-**Parameters**
-
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-NSError __autoreleasing * error;
-[recognizer resetRuntimeSettings:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer()
-try? recognizer.resetRuntimeSettings()
-```
-
-
-
-### setModeArgument
-
-Set argument value for the specified mode parameter.
-
-```objc
-- (void)setModeArgument:(NSString* _Nonnull)modeName index:(NSInteger)index argumentName:(NSString* _Nonnull)argumentName argumentValue:(NSString* _Nonnull)argumentValue error:(NSError* _Nullable * _Nullable)error;
-```
-
-**Parameters**
-
-`[in] modeName` The mode parameter name to set argument.
-`[in] index` The array index of mode parameter to indicate a specific mode.
-`[in] argumentName` The name of the argument to set.
-`[in] argumentValue` The value of the argument to set.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Remark**
-
-Check follow link for available modes and arguments:
-
-- [`RegionPredetectionModes`]({{ site.parameters-reference }}label-recognition-parameter/region-predetection-modes.html#regionpredetectionmodes)
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-NSError __autoreleasing * _Nullable error;
-[recognizer setModeArgument:@"RegionPredetectionModes" index:0 argumentName:@"AspectRatioRange" argumentValue:"100" error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer()
-try? recognizer.setModeArgument("RegionPredetectionModes", index:0, argumentName:"AspectRatioRange", argumentValue:"100")
-```
-
-
-
-### updateReferenceRegionFromBarcodeResults
-
-Updates reference region which is defined with source type LST_BARCODE.
-
-```objc
-- (void)updateReferenceRegionFromBarcodeResults:(NSArray*)barcodeResults templateName:(NSString *)templateName error:(NSError**)error
-```
-
-**Parameters**
-
-`[in] barcodeResults` The barcode results used to localize reference region. See also [`iBarcodeResult`](barcode-result.md).
-`[in] templateName` The template name. A template name is the value of key LabelRecognizerParameter.Name defined in JSON formatted settings. If no template name is specified, current runtime settings will be used.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-NSArray *textResults;
-//get textResults from Dynamsoft Barcode Reader SDK
-NSError __autoreleasing *error;
-[recognizer appendSettingsFromString:@"{\"LabelRecognizerParameter\":{\"Name\":\"P1\", \"RegionPredetectionModes\":[{\"Mode\":\"RPM_GENERAL_HSV_CONTRAST\"}], \"ReferenceRegionNameArray\": [\"R1\"]},\"ReferenceRegion\":{\"Name\":\"R1\",\"Localization\":{\"SourceType\":\"LST_BARCODE\"},\"TextAreaNameArray\":[\"T1\"]},\"TextArea\":{\"Name\":\"T1\",\"CharacterModelName\":\"Number\"}}" error:&error];
-[recognizer updateReferenceRegionFromBarcodeResults:textResults templateName:@"P1" error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer()
-var textResults = [iBarcodeResult]()
-//get textResults from Dynamsoft Barcode Reader SDK
-recognizer.appendSettingsFromString("{\"LabelRecognizerParameter\":{\"Name\":\"P1\", \"RegionPredetectionModes\":[{\"Mode\":\"RPM_GENERAL_HSV_CONTRAST\"}], \"ReferenceRegionNameArray\": [\"R1\"]},\"ReferenceRegion\":{\"Name\":\"R1\",\"Localization\":{\"SourceType\":\"LST_BARCODE\"},\"TextAreaNameArray\":[\"T1\"]},\"TextArea\":{\"Name\":\"T1\",\"CharacterModelName\":\"Number\"}}", error:&error)
-try? recognizer.updateReferenceRegionFromBarcodeResults(textResults, templateName:"P1")
-```
-
-
-
-## Video Scanning Method Details
-
-### setImageSource
-
-Set an instance of `ImageSource` as the source of video label scanning. User can either implement the interface `ImageSource` or use `DynamsoftCameraEnhancer`.
-
-```objc
-- (void)setImageSource:(id)source;
-```
-
-**Parameters**
-
-`[in] source` A instance of protocol `ImageSource`.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@interface ViewController ()
-@property (nonatomic, strong) DynamsoftLabelRecognizer *labelRecognizer;
-@property (nonatomic, strong) DynamsoftCameraEnhancer *cameraEnhancer;
-@property (nonatomic, strong) DCECameraView *dceView;
-- (void)configureDLR {
- // Setup Dynamsoft Camera Enhancer
- self.dceView = [[DCECameraView alloc] initWithFrame:self.view.bounds];
- self.cameraEnhancer = [[DynamsoftCameraEnhancer alloc] initWithView:self.dceView];
- [self.view addSubview:self.dceView];
- // Initialize Dynamsoft Label Recognizer
- recognizer = [[DynamsoftLabelRecognizer alloc] init];
- // Trigger setImageSource
- [self.labelRecognizer setImageSource:self.cameraEnhancer];
- [self.labelRecognizer setLabelResultListener:self];
- [self.cameraEnhancer open];
- [self.labelRecognizer startScanning];
-}
-- (void)labelResultCallback:(NSInteger)frameId imageData:(iImageData *)imageData results:(NSArray *)results {
- // Add your code to do with label recognition results
-}
-```
-2.
-```swift
-class ViewController: BaseViewController, LabelResultListener {
- var labelRecognizer: DynamsoftLabelRecognizer!
- var cameraEnhancer: DynamsoftCameraEnhancer!
- var dceView: DCECameraView!
- func configureDLR() -> Void {
- // Setup Dynamsoft Camera Enhancer
- dceView = DCECameraView.init(frame: self.view.bounds)
- cameraEnhancer = DynamsoftCameraEnhancer.init(view: self.dceView)
- self.view.addSubview(self.dceView)
- // Initialize Dynamsoft Label Recognizer
- let recognizer = DynamsoftLabelRecognizer()
- // Trigger setImageSource
- labelRecognizer.setImageSource(self.cameraEnhancer)
- labelRecognizer.setLabelResultListener(self)
- cameraEnhancer.open()
- labelRecognizer.startScanning()
- }
- func labelResultCallback(_ frameId: Int, imageData: iImageData, results: [iDLRResult]?) {
- // Add your code to do with label recognition results
- }
-}
-```
-
-### setLabelResultListener
-
-Register a LabelResultListener to obtain video label recognition results.
-
-```objc
-- (void)setLabelResultListener:(nullable id)listener
-```
-
-**Parameters**
-
-`[in] source` A instance of protocol `LabelResultListener`.
-
-**Code Snippet**
-
-View the code snippet of [setImageSource](#setimagesource).
-
-### startScanning
-
-Start video label recognition.
-
-```objc
-- (void)startScanning;
-```
-
-### stopScanning
-
-Stop video label recognition.
-
-```objc
-- (void)stopScanning;
-```
-
-## Recognition Method Details
-
-### recognizeBuffer
-
-Recognizes text from the memory buffer containing image pixels in defined format.
-
-```objc
-- (NSArray*)recognizeBuffer:(iImageData*)imageData templateName:(NSString*)templateName error:(NSError**)error
-```
-
-**Parameters**
-
-`[in] imageData` An object of `iImageData` that represents an image.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Return value**
-
-All results recognized successfully.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-iImageData *imageData = [[iImageData alloc] init];
-//construct imageData
-NSError __autoreleasing * error;
-NSArray* result = [recognizer recognizeBuffer:imageData templateName:@"" error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer()
-let imageData = iImageData.init()
-let error: NSError? = NSError()
-//construct imageData
-let result = recognizer.recognizeBuffer(imageData:imageData, templateName:"", error:&error)
-```
-
-
-
-### recognizeFile
-
-Recognizes text from a specified image file.
-
-```objc
-- (NSArray*)recognizeFile:(NSString*)name templateName:(NSString*)templateName error:(NSError**)error
-```
-
-**Parameters**
-
-`[in] name` A string defining the file path.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Return value**
-
-All results recognized successfully.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-NSError __autoreleasing * error;
-NSArray* result = [recognizer recognizeFile:@"your file path" templateName:@"" error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer()
-let error: NSError? = NSError()
-let result = recognizer.recognizeFile("your file path", templateName:"", error:&error)
-```
-
-
-### recognizeImage
-
-Recognizes text from a `UIImage`.
-
-```objc
-- (NSArray* _Nullable)recognizeImage:(UIImage* _Nonnull)image
- error:(NSError* _Nullable * _Nullable)error;
-```
-
-**Parameters**
-
-`[in] image` An object of `UIImage`.
-`[in, out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Return value**
-
-All results recognized successfully.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-NSError __autoreleasing * error;
-UIImage *image = [[UIImage alloc] init];
-NSArray* result = [recognizer recognizeImage:image withTemplate:@"" error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer()
-let error: NSError? = NSError()
-let image: UIImage? = UIImage()
-let result = recognizer.recognizeImage(image:image withTemplate:"" error:&error)
-```
-
-
-
-### recognizeFileInMemory
-
-Recognizes text from an image file in memory.
-
-```objc
-- (NSArray* _Nullable)recognizeFileInMemory:(NSData* _Nonnull)fileBytes
- error:(NSError**)error
-```
-
-**Parameters**
-
-`[in] fileBytes` The image file in memory.
-`[in, out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Return value**
-
-All results recognized successfully.
-
-**Code Snippet**
-
-## General Method Details
-
-### getVersion
-
-Get version information of SDK.
-
-```objc
-- (NSString*)getVersion;
-```
-
-**Return value**
-
-The version information string.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognizer *recognizer;
-recognizer = [[DynamsoftLabelRecognizer alloc] init];
-NSString* versionInfo = [recognizer getVersion];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognizer.init()
-let versionInfo = recognizer.getVersion();
-```
diff --git a/programming-old/objectivec-swift/api-reference/label-result-listener.md b/programming-old/objectivec-swift/api-reference/label-result-listener.md
deleted file mode 100644
index 3f10dda..0000000
--- a/programming-old/objectivec-swift/api-reference/label-result-listener.md
+++ /dev/null
@@ -1,90 +0,0 @@
----
-layout: default-layout
-title: LabelResultListener of Dynamsoft Label Recognizer iOS API Reference
-description: This page shows protocol LabelResultListener of Dynamsoft Label Recognizer for iOS edition.
-keywords: api reference, objective-c, oc, swift
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/objectivec-swift/api-reference/label-result-listener.html
----
-
-# LabelResultListener
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v2.2.20.
-
-`LabelResultListener` is the protocol to handle callback when label recognition results are output.
-
-```objc
-@protocol LabelResultListener
-```
-
-| Method | Description |
-| ------ | ----------- |
-| `labelResultCallback` | If `ImageSource` is correctly configured, the callback is triggered each time when label recognition results are output. |
-
-## labelResultCallback
-
-```objc
-- (void)labelResultCallback:(NSInteger)frameId imageData:(iImageData *_Nonnull)imageData results:(NSArray* _Nullable)results;
-```
-
-**Parameters**
-
-`[in] frameId` The ID of the frame.
-`[in] imageData` The image data of frame.
-`[in] results` Recognized label results of the frame.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@interface ViewController ()
-@property (nonatomic, strong) DynamsoftLabelRecognizer *labelRecognizer;
-@property (nonatomic, strong) DynamsoftCameraEnhancer *cameraEnhancer;
-@property (nonatomic, strong) DCECameraView *dceView;
-- (void)configureDLR {
- // Setup Dynamsoft Camera Enhancer
- self.dceView = [[DCECameraView alloc] initWithFrame:self.view.bounds];
- self.cameraEnhancer = [[DynamsoftCameraEnhancer alloc] initWithView:self.dceView];
- [self.view addSubview:self.dceView];
- // Initialize Dynamsoft Label Recognizer
- recognizer = [[DynamsoftLabelRecognizer alloc] init];
- // Trigger setImageSource
- [self.labelRecognizer setImageSource:self.cameraEnhancer];
- [self.labelRecognizer setLabelResultListener:self];
- [self.cameraEnhancer open];
- [self.labelRecognizer startScanning];
-}
-- (void)labelResultCallback:(NSInteger)frameId imageData:(iImageData *)imageData results:(NSArray *)results {
- // Add your code to do with label recognition results
-}
-```
-2.
-```swift
-class ViewController: BaseViewController, LabelResultListener {
- var labelRecognizer: DynamsoftLabelRecognizer!
- var cameraEnhancer: DynamsoftCameraEnhancer!
- var dceView: DCECameraView!
- func configureDLR() -> Void {
- // Setup Dynamsoft Camera Enhancer
- dceView = DCECameraView.init(frame: self.view.bounds)
- cameraEnhancer = DynamsoftCameraEnhancer.init(view: self.dceView)
- self.view.addSubview(self.dceView)
- // Initialize Dynamsoft Label Recognizer
- let recognizer = DynamsoftLabelRecognizer()
- // Trigger setImageSource
- labelRecognizer.setImageSource(self.cameraEnhancer)
- labelRecognizer.setLabelResultListener(self)
- cameraEnhancer.open()
- labelRecognizer.startScanning()
- }
- func labelResultCallback(_ frameId: Int, imageData: iImageData, results: [iDLRResult]?) {
- // Add your code to do with label recognition results
- }
-}
-```
diff --git a/programming-old/objectivec-swift/api-reference/license-manager.md b/programming-old/objectivec-swift/api-reference/license-manager.md
deleted file mode 100644
index f468972..0000000
--- a/programming-old/objectivec-swift/api-reference/license-manager.md
+++ /dev/null
@@ -1,71 +0,0 @@
----
-layout: default-layout
-title: DynamsoftLicenseManager class of DynamsoftCore iOS Edition
-description: This page shows DynamsoftLicenseManager class of DynamsoftCore for iOS edition.
-keywords: initLicense, DynamsoftLicenseManager, api reference, ios
-needAutoGenerateSidebar: true
-noTitleIndex: true
-pageStartVer: 2.2.20
-permalink: /programming/objectivec-swift/api-reference/license-manager.html
----
-
-# DynamsoftLicenseManager
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v2.2.20.
-
-The DynamsoftLicenseManager class unlocks the Dynamsoft SDK with a purchased full license or a provided trial license to allow you to develop your application.
-
-```objc
-@interface DynamsoftLicenseManager
-```
-
-## Methods
-
- | Method | Description |
- |----------------------|-------------|
- | [`initLicense`](#initlicense) | Read the license key and activate the SDK. |
-
- ---
-
-### initLicense
-
-Read the license key and activate the SDK.
-
-```objc
-+ (void)initLicense:(NSString* _Nonnull)license verificationDelegate:(id _Nullable)connectionDelegate;
-```
-
-**Parameters**
-
-`[in] license` The license key.
-`[in] verificationDelegate` The listener that handles callback when the license server returns.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@interface AppDelegate ()
-...
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
- ...
- [DynamsoftLicenseManager initLicense:@"DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9" verificationDelegate:self];
-}
-- (void)licenseVerificationCallback:(bool)isSuccess error:(NSError *)error {
- // Add code to do when license server returns.
-}
-```
-2.
-```swift
-class AppDelegate: UIResponder, UIApplicationDelegate, LicenseVerificationListener {
- ...
- DynamsoftLicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", verificationDelegate: self)
- ...
- func licenseVerificationCallback(_ isSuccess: Bool, error: Error?) {
- // Add code to do when license server returns.
- }
-}
-```
diff --git a/programming-old/objectivec-swift/api-reference/license-verification-listener.md b/programming-old/objectivec-swift/api-reference/license-verification-listener.md
deleted file mode 100644
index 8b47992..0000000
--- a/programming-old/objectivec-swift/api-reference/license-verification-listener.md
+++ /dev/null
@@ -1,65 +0,0 @@
----
-layout: default-layout
-title: LicenseVerificationListener of DynamsoftCore for iOS Edition
-description: This page shows protocol LicenseVerificationListener of DynamsoftCore for iOS edition.
-keywords: api reference, objective-c, oc, swift
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/objectivec-swift/api-reference/license-verification-listener.html
----
-
-# LicenseVerificationListener
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v2.2.20.
-
-`LicenseVerificationListener` is the protocol to handle callback when message is output by license server.
-
-```objc
-@protocol LicenseVerificationListener
-```
-
-| Method | Description |
-| ------ | ----------- |
-| `licenseVerificationCallback` | The callback of license server. It contains error message when license verification is failed. |
-
-## licenseVerificationCallback
-
-```objc
--(void)licenseVerificationCallback:(BOOL)isSuccess error:(NSError * _Nullable)error;
-```
-
-**Parameters**
-
-`[in] isSuccess` Whether the license verification was successful.
-`[in] error` The error message from license server.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@interface AppDelegate ()
-...
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
- ...
- [DynamsoftLicenseManager initLicense:@"DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9" verificationDelegate:self];
-}
-- (void)licenseVerificationCallback:(bool)isSuccess error:(NSError *)error {
- // Add code to do when license server returns.
-}
-```
-2.
-```swift
-class AppDelegate: UIResponder, UIApplicationDelegate, LicenseVerificationListener {
- ...
- DynamsoftLicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", verificationDelegate: self)
- ...
- func licenseVerificationCallback(_ isSuccess: Bool, error: Error?) {
- // Add code to do when license server returns.
- }
-}
-```
diff --git a/programming-old/objectivec-swift/api-reference/methods/general.md b/programming-old/objectivec-swift/api-reference/methods/general.md
deleted file mode 100644
index f3e14f6..0000000
--- a/programming-old/objectivec-swift/api-reference/methods/general.md
+++ /dev/null
@@ -1,46 +0,0 @@
----
-layout: default-layout
-title: General - Dynamsoft Label Recognition iOS API Reference
-description: This is the general functions of Dynamsoft Label Recognition for iOS API Reference.
-keywords: api reference, objective-c, oc, swift
-needAutoGenerateSidebar: true
-permalink: /programming/objectivec-swift/api-reference/methods/general.html
----
-
-# iOS API Reference - General
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v1.x.
-
-| Method | Description |
-|----------------------|-------------|
-| [`getVersion`](#getversion) | Returns the version number string for the SDK. |
-
-
-## getVersion
-
-Get version information of SDK.
-
-```objc
-- (NSString*)getVersion;
-```
-
-**Return Value**
-The version information string.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-recognizer = [[DynamsoftLabelRecognition alloc] init];
-NSString* versionInfo = [recognizer getVersion];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognition.init()
-let versionInfo = recognizer.getVersion();
-```
diff --git a/programming-old/objectivec-swift/api-reference/methods/index-v1.0.md b/programming-old/objectivec-swift/api-reference/methods/index-v1.0.md
deleted file mode 100644
index ec1c88a..0000000
--- a/programming-old/objectivec-swift/api-reference/methods/index-v1.0.md
+++ /dev/null
@@ -1,60 +0,0 @@
----
-layout: default-layout
-title: LabelRecognition Class - Dynamsoft Label Recognition iOS API Reference
-description: This page shows LabelRecognition methods of Dynamsoft Label Recognition for iOS API Reference.
-keywords: api reference, objective-c, oc, swift
-needAutoGenerateSidebar: false
-permalink: /programming/objectivec-swift/api-reference/methods/index-v1.0.html
----
-
-
-# Dynamsoft Label Recognition - iOS Methods
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v1.x.
-
-## General
-
- | Method | Description |
- |----------------------|-------------|
- | [`getVersion`](general.md#getversion) | Returns the version number string for the SDK. |
-
-
-
-## Initialization
-
- | Method | Description |
- |----------------------|-------------|
- | [`init`](initialization.md#init) | Create an instance of Dynamsoft Label Recognition. |
- | [`initWithLicense`](initialization.md#initWithLicense) | Sets the license and activates the SDK. |
- | [`initLicenseFromLTS`](initialization.md#initlicensefromlts) | Initializes the label recognition license and connects to the specified server for online verification. |
-
-
-
-## Setting
-
- | Method | Description |
- |----------------------|-------------|
- | [`getRuntimeSettings`](settings.md#getruntimesettings) | Gets the current settings and saves it into a class. |
- | [`updateRuntimeSettings`](settings.md#updateruntimesettings) | Updates runtime settings with a given class. |
- | [`resetRuntimeSettings`](settings.md#resetruntimesettings) | Resets the runtime settings. |
- | [`appendSettingsFromString`](settings.md#appendsettingsfromstring) | Appends LabelRecognitionParameter settings in a string to the SDK object. |
- | [`outputSettingsToFile`](settings.md#outputsettingstofile) | Outputs LabelRecognitionParameter settings into a file (JSON file). |
- | [`clearAppendedSettings`](settings.md#clearappendedsettings) | Clear all appended LabelRecognitionParameter settings in the SDK object. |
- | [`updateReferenceRegionFromBarcodeResults`](settings.md#updatereferenceregionfrombarcoderesults) | Updates reference region which is defined with source type DLR_LST_BARCODE. |
- | [`getModeArgument`](settings.md#getmodeargument) | Get argument value for the specified mode parameter. |
- | [`setModeArgument`](settings.md#setmodeargument) | Set argument value for the specified mode parameter. |
- | [`appendCharacterModel`](settings.md#appendCharacterModel) | Appends CharacterModel to the SDK object. |
- | [`eraseAllCharacterModels`](settings.md#appendCharacterModel) | Erases all CharacterModels the SDK object currently loaded. |
- | [`eraseCharacterModelByName`](settings.md#appendCharacterModel) | Erases a name specified CharacterModel from the SDK object. |
-
-
-
-## Recognizing
-
- | Method | Description |
- |----------------------|-------------|
- | [`recognizeByBuffer`](recognizing.md#recognizebybuffer) | Recognizes text from memory buffer containing image pixels in defined format. |
- | [`recognizeByFile`](recognizing.md#recognizebyfile) | Recognizes text from a specified image file. |
-
-
-
\ No newline at end of file
diff --git a/programming-old/objectivec-swift/api-reference/methods/index.md b/programming-old/objectivec-swift/api-reference/methods/index.md
deleted file mode 100644
index 3b18561..0000000
--- a/programming-old/objectivec-swift/api-reference/methods/index.md
+++ /dev/null
@@ -1,61 +0,0 @@
----
-layout: default-layout
-title: LabelRecognition Class - Dynamsoft Label Recognition iOS API Reference
-description: This page shows LabelRecognition methods of Dynamsoft Label Recognition for iOS API Reference.
-keywords: api reference, objective-c, oc, swift
-needAutoGenerateSidebar: false
-permalink: /programming/objectivec-swift/api-reference/methods/index.html
----
-
-
-# Dynamsoft Label Recognition - iOS Methods
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v1.x.
-
-## General
-
- | Method | Description |
- |----------------------|-------------|
- | [`getVersion`](general.md#getversion) | Returns the version number string for the SDK. |
-
-
-
-## Initialization
-
- | Method | Description |
- |----------------------|-------------|
- | [`init`](initialization.md#init) | Create an instance of Dynamsoft Label Recognition. |
- | [`initWithLicense`](initialization.md#initWithLicense) | Sets the license and activates the SDK. |
- | [`initLicenseFromLTS`](initialization.md#initlicensefromlts) | Initializes the label recognition license and connects to the specified server for online verification. |
-
-
-
-## Setting
-
- | Method | Description |
- |----------------------|-------------|
- | [`getRuntimeSettings`](settings.md#getruntimesettings) | Gets the current settings and saves it into a class. |
- | [`updateRuntimeSettings`](settings.md#updateruntimesettings) | Updates runtime settings with a given class. |
- | [`resetRuntimeSettings`](settings.md#resetruntimesettings) | Resets the runtime settings. |
- | [`appendSettingsFromString`](settings.md#appendsettingsfromstring) | Appends LabelRecognitionParameter settings in a string to the SDK object. |
- | [`appendSettingsFromFile`](settings.md#appendsettingsfromFile) | Appends LabelRecognitionParameter settings from a file to the SDK object. |
- | [`outputSettingsToFile`](settings.md#outputsettingstofile) | Outputs LabelRecognitionParameter settings into a file (JSON file). |
- | [`clearAppendedSettings`](settings.md#clearappendedsettings) | Clear all appended LabelRecognitionParameter settings in the SDK object. |
- | [`updateReferenceRegionFromBarcodeResults`](settings.md#updatereferenceregionfrombarcoderesults) | Updates reference region which is defined with source type DLR_LST_BARCODE. |
- | [`getModeArgument`](settings.md#getmodeargument) | Get argument value for the specified mode parameter. |
- | [`setModeArgument`](settings.md#setmodeargument) | Set argument value for the specified mode parameter. |
- | [`appendCharacterModel`](settings.md#appendCharacterModel) | Appends CharacterModel to the SDK object. |
- | [`eraseAllCharacterModels`](settings.md#appendCharacterModel) | Erases all CharacterModels the SDK object currently loaded. |
- | [`eraseCharacterModelByName`](settings.md#appendCharacterModel) | Erases a name specified CharacterModel from the SDK object. |
-
-
-
-## Recognizing
-
- | Method | Description |
- |----------------------|-------------|
- | [`recognizeByBuffer`](recognizing.md#recognizebybuffer) | Recognizes text from memory buffer containing image pixels in defined format. |
- | [`recognizeByFile`](recognizing.md#recognizebyfile) | Recognizes text from a specified image file. |
-
-
-
\ No newline at end of file
diff --git a/programming-old/objectivec-swift/api-reference/methods/initialization.md b/programming-old/objectivec-swift/api-reference/methods/initialization.md
deleted file mode 100644
index ed26b9e..0000000
--- a/programming-old/objectivec-swift/api-reference/methods/initialization.md
+++ /dev/null
@@ -1,126 +0,0 @@
----
-layout: default-layout
-title: Initialization - Dynamsoft Label Recognition iOS API Reference
-description: This is the initialization functions of Dynamsoft Label Recognition for iOS API Reference.
-keywords: api reference, objective-c, oc, swift
-needAutoGenerateSidebar: true
-permalink: /programming/objectivec-swift/api-reference/methods/initialization.html
----
-
-# iOS API Reference - Initialization
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v1.x.
-
-| Method | Description |
-|----------------------|-------------|
- | [`init`](#init) | Create an instance of Dynamsoft Label Recognition. |
- | [`initWithLicense`](#initWithLicense) | Sets the license and activates the SDK. |
- | [`initLicenseFromLTS`](#initlicensefromlts) | Initializes the label recognition license and connects to the specified server for online verification. |
-
- ---
-
-## init
-
-Initializes DynamsoftLabelRecognition.
-
-```objc
-- (instancetype _Nonnull)init;
-```
-
-**Return Value**
-The instance of DynamsoftLabelRecognition.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-recognizer = [[DynamsoftLabelRecognition alloc] init];
-```
-Swift:
-
-```Swift
-let recognizer = DynamsoftLabelRecognition.init()
-```
-
-
-
-
-
-## initWithLicense
-Sets the license and activates the SDK.
-
-```objc
-- (instancetype _Nonnull)initWithLicense:(NSString* _Nonnull)license;
-```
-
-**Parameters**
-`[in] license`: The product keys.
-
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-recognizer = [[DynamsoftLabelRecognition alloc] initWithLicense:@"t0260NwAAAHV***************"];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognition.initWithLicense(license: "t0260NwAAAHV***************")
-```
-
-
-
-
-## initLicenseFromLTS
-Initializes the label recognition license and connects to the specified server for online verification.
-
-```objc
-- (instancetype _Nonnull)initLicenseFromLTS:(iDMLTSConnectionParameters* _Nullable)ltsConnectionParameters verificationDelegate:(id _Nullable)connectionDelegate;
-```
-
-**Parameters**
-`[in] ltsConnectionParameters` The struct iDMLTSConnectionParameters with customized settings.
-`[in,out] connectionDelegate` The delegate to handle callback when license server returns.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-iDMLTSConnectionParameters* lts = [[iDMLTSConnectionParameters alloc] init];
-lts.handshakeCode = @"*****-hs-****";
-lts.sessionPassword = @"******";
-recognizer = [[DynamsoftLabelRecognition alloc] initLicenseFromLTS:lts verificationDelegate:self];
-- (void)LTSLicenseVerificationCallback:(bool)isSuccess error:(NSError * )error
-{
- //TODO add your code for license verification
-}
-```
-2.
-```swift
-let lts = iDMLTSConnectionParameters()
-lts.handshakeCode = "200***001-1000*****"
-lts.sessionPassword = "******"
-let recognizer = DynamsoftLabelRecognition(licenseFromLTS: lts, verificationDelegate: self)
-func ltsLicenseVerificationCallback(_ isSuccess: Bool, error: Error?)
-{
- print("isSuccess : \(isSuccess) error : \(String(describing: error))")
-}
-```
-
-
-
diff --git a/programming-old/objectivec-swift/api-reference/methods/recognizing-v1.0.md b/programming-old/objectivec-swift/api-reference/methods/recognizing-v1.0.md
deleted file mode 100644
index 7c8c901..0000000
--- a/programming-old/objectivec-swift/api-reference/methods/recognizing-v1.0.md
+++ /dev/null
@@ -1,104 +0,0 @@
----
-layout: default-layout
-title: Recognizing - Dynamsoft Label Recognition iOS API Reference
-description: This is the recognizing functions of Dynamsoft Label Recognition for iOS API Reference.
-keywords: api reference, objective-c, oc, swift
-needAutoGenerateSidebar: true
-permalink: /programming/objectivec-swift/api-reference/methods/recognizing-v1.0.html
----
-
-# iOS API Reference - Recognizing
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v1.x.
-
-| Method | Description |
-|----------------------|-------------|
- | [`recognizeByBuffer`](#recognizebybuffer) | Recognizes text from memory buffer containing image pixels in defined format. |
- | [`recognizeByFile`](#recognizebyfile) | Recognizes text from a specified image file. |
-
----
-
-## recognizeByBuffer
-Recognizes text from the memory buffer containing image pixels in defined format.
-
-```objc
-- (NSArray*)recognizeByBuffer:(iDLRImageData*)imageData templateName:(NSString*)templateName error:(NSError**)error
-```
-
-**Parameters**
-`[in] imageData` An object of iDLRImageData that represents an image.
-`[in] templateName` The template name. A template name is the value of key LabelRecognitionParameter.Name defined in JSON formatted settings. If no template name is specified, current runtime settings will be used.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Return Value**
-All results recognized successfully.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-recognizer = [[DynamsoftLabelRecognition alloc] initWithLicense:@"t0260NwAAAHV***************"];
-iDLRResult *result;
-iDLRImageData *imageData = [[iDLRImageData alloc] init];
-//construct imageData
-NSError __autoreleasing * error;
-result = [recognizer recognizeByBuffer:imageData templateName:@"" error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognition.initWithLicense(license: "t0260NwAAAHV***************")
-let imageData = iDLRImageData.init()
-let error: NSError? = NSError()
-//construct imageData
-let result = recognizer.recognizeByBuffer(imageData:imageData, templateName:"", error:&error)
-```
-
-
-
-
-## recognizeByFile
-Recognizes text from a specified image file.
-
-```objc
-- (NSArray*)recognizeByFile:(NSString*)name templateName:(NSString*)templateName error:(NSError**)error
-```
-
-**Parameters**
-`name` A string defining the file name.
-`templateName` The template name. A template name is the value of key LabelRecognitionParameter.Name defined in JSON formatted settings. If no template name is specified, current runtime settings will be used.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Return Value**
-All results recognized successfully.
-
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-recognizer = [[DynamsoftLabelRecognition alloc] initWithLicense:@"t0260NwAAAHV***************"];
-iDLRResult *result;
-NSError __autoreleasing * error;
-result = [recognizer recognizeByFile:@"your file path" templateName:@"" error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognition.initWithLicense(license: "t0260NwAAAHV***************")
-let error: NSError? = NSError()
-//construct imageData
-let result = recognizer.recognizeByFile("your file path", templateName:"", error:&error)
-```
-
-
-
-
diff --git a/programming-old/objectivec-swift/api-reference/methods/recognizing.md b/programming-old/objectivec-swift/api-reference/methods/recognizing.md
deleted file mode 100644
index 2ccb019..0000000
--- a/programming-old/objectivec-swift/api-reference/methods/recognizing.md
+++ /dev/null
@@ -1,124 +0,0 @@
----
-layout: default-layout
-title: Recognizing - Dynamsoft Label Recognition iOS API Reference
-description: This is the recognizing functions of Dynamsoft Label Recognition for iOS API Reference.
-keywords: api reference, objective-c, oc, swift
-needAutoGenerateSidebar: true
-permalink: /programming/objectivec-swift/api-reference/methods/recognizing.html
----
-
-# iOS API Reference - Recognizing
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v1.x.
-
-| Method | Description |
-|----------------------|-------------|
- | [`recognizeByBuffer`](#recognizebybuffer) | Recognizes text from memory buffer containing image pixels in defined format. |
- | [`recognizeByFile`](#recognizebyfile) | Recognizes text from a specified image file. |
-
----
-
-## recognizeByBuffer
-Recognizes text from the memory buffer containing image pixels in defined format.
-
-```objc
-- (NSArray*)recognizeByBuffer:(iDLRImageData*)imageData templateName:(NSString*)templateName error:(NSError**)error
-```
-
-**Parameters**
-`[in] imageData` An object of iDLRImageData that represents an image.
-`[in] templateName` The template name. A template name is the value of key LabelRecognitionParameter.Name defined in JSON formatted settings. If no template name is specified, current runtime settings will be used.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Return Value**
-All results recognized successfully.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-iDMLTSConnectionParameters* lts = [[iDMLTSConnectionParameters alloc] init];
-lts.organizationID = @"200001";
-lts.sessionPassword = @"******";
-recognizer = [[DynamsoftLabelRecognition alloc] initLicenseFromLTS:lts verificationDelegate:self];
-- (void)LTSLicenseVerificationCallback:(bool)isSuccess error:(NSError * )error
-{
- //TODO add your code for license verification
-}
-iDLRResult *result;
-iDLRImageData *imageData = [[iDLRImageData alloc] init];
-//construct imageData
-NSError __autoreleasing * error;
-result = [recognizer recognizeByBuffer:imageData templateName:@"" error:&error];
-```
-2.
-```swift
-let lts = iDMLTSConnectionParameters()
-lts.organizationID = "200001"
-lts.sessionPassword = "******"
-let recognizer = DynamsoftLabelRecognition(licenseFromLTS: lts, verificationDelegate: self)
-let imageData = iDLRImageData.init()
-let error: NSError? = NSError()
-//construct imageData
-let result = recognizer.recognizeByBuffer(imageData:imageData, templateName:"", error:&error)
-```
-
-
-
-
-## recognizeByFile
-Recognizes text from a specified image file.
-
-```objc
-- (NSArray*)recognizeByFile:(NSString*)name templateName:(NSString*)templateName error:(NSError**)error
-```
-
-**Parameters**
-`name` A string defining the file name.
-`templateName` The template name. A template name is the value of key LabelRecognitionParameter.Name defined in JSON formatted settings. If no template name is specified, current runtime settings will be used.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Return Value**
-All results recognized successfully.
-
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-iDMLTSConnectionParameters* lts = [[iDMLTSConnectionParameters alloc] init];
-lts.organizationID = @"200001";
-lts.sessionPassword = @"******";
-recognizer = [[DynamsoftLabelRecognition alloc] initLicenseFromLTS:lts verificationDelegate:self];
-- (void)LTSLicenseVerificationCallback:(bool)isSuccess error:(NSError * )error
-{
- //TODO add your code for license verification
-}
-iDLRResult *result;
-NSError __autoreleasing * error;
-result = [recognizer recognizeByFile:@"your file path" templateName:@"" error:&error];
-```
-2.
-```swift
-let lts = iDMLTSConnectionParameters()
-lts.organizationID = "200001"
-lts.sessionPassword = "******"
-let recognizer = DynamsoftLabelRecognition(licenseFromLTS: lts, verificationDelegate: self)
-let error: NSError? = NSError()
-//construct imageData
-let result = recognizer.recognizeByFile("your file path", templateName:"", error:&error)
-```
-
-
-
-
diff --git a/programming-old/objectivec-swift/api-reference/methods/settings-v1.0.md b/programming-old/objectivec-swift/api-reference/methods/settings-v1.0.md
deleted file mode 100644
index 32072be..0000000
--- a/programming-old/objectivec-swift/api-reference/methods/settings-v1.0.md
+++ /dev/null
@@ -1,468 +0,0 @@
----
-layout: default-layout
-title: Settings - Dynamsoft Label Recognition iOS API Reference
-description: This is the settings functions of Dynamsoft Label Recognition for iOS API Reference.
-keywords: api reference, objective-c, oc, swift
-needAutoGenerateSidebar: true
-permalink: /programming/objectivec-swift/api-reference/methods/settings-v1.0.html
----
-
-# iOS API Reference - Settings
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v1.x.
-
-| Method | Description |
-|----------------------|-------------|
- | [`appendCharacterModel`](#appendCharacterModel) | Appends CharacterModel to the SDK object. |
- | [`appendSettingsFromString`](#appendsettingsfromstring) | Appends LabelRecognitionParameter settings in a string to the SDK object. |
- | [`clearAppendedSettings`](#clearappendedsettings) | Clears appended LabelRecognitionParameter settings. |
- | [`eraseAllCharacterModels`](#appendCharacterModel) | Erases all CharacterModels the SDK object currently loaded. |
- | [`eraseCharacterModelByName`](#appendCharacterModel) | Erases a name specified CharacterModel from the SDK object. |
- | [`getModeArgument`](#getmodeargument) | Get argument value for the specified mode parameter. |
- | [`getRuntimeSettings`](#getruntimesettings) | Gets the current settings and saves it into a class object. |
- | [`outputSettingsToFile`](#outputsettingstofile) | Outputs LabelRecognitionParameter settings into a file (JSON file). |
- | [`resetRuntimeSettings`](#resetruntimesettings) | Resets the runtime settings. |
- | [`setModeArgument`](#setmodeargument) | Set argument value for the specified mode parameter. |
- | [`updateReferenceRegionFromBarcodeResults`](#updatereferenceregionfrombarcoderesults) | Updates reference region which is defined with source type DLR_LST_BARCODE. |
- | [`updateRuntimeSettings`](#updateruntimesettings) | Updates runtime settings with a given class object. |
-
----
-
-## appendCharacterModel
-Appends CharacterModel to the SDK object.
-
-```objc
-- (void)appendCharacterModel:(NSString*)name prototxtBuffer:(NSData*)prototxtBuffer txtBuffer:(NSData*)txtBuffer characterModelBuffer:(NSData*)characterModelBuffer
-```
-
-**Parameters**
-`name` A unique name for the appended CharacterModel.
-`prototxtBuffer` The .prototxt file data of the CharacterModel in a byte array.
-`txtBuffer` The .txt file data of the CharacterModel in a byte array.
-`characterModelBuffer` The .caffemodel file data of the CharacterModel in a byte array.
-
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-recognizer = [[DynamsoftLabelRecognition alloc] initWithLicense:@"t0260NwAAAHV***************"];
-//construct prototxtBuffer, txtBuffer and characterModelBuffer
-[recognizer appendCharacterModel:@"your model name" prototxtBuffer: prototxtBuffer txtBuffer: txtBuffer characterModelBuffer: characterModelBuffer];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognition.initWithLicense(license: "t0260NwAAAHV***************")
-//construct prototxtBuffer, txtBuffer and characterModelBuffer
-recognizer.appendCharacterModel("your model name", prototxtBuffer: prototxtBuffer, txtBuffer: txtBuffer, characterModelBuffer: characterModelBuffer)
-```
-
-
-
-
-## appendSettingsFromString
-Append a new template string to the current label recognition instance.
-
-```objc
-- (void)appendSettingsFromString:(NSString*)content error:(NSError**)error
-```
-
-**Parameters**
-`content` A JSON string that represents the content of the settings.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-recognizer = [[DynamsoftLabelRecognition alloc] initWithLicense:@"t0260NwAAAHV***************"];
-NSError __autoreleasing * error;
-[recognizer appendSettingsFromString:@"{\"LabelRecognitionParameter\":{\"Name\":\"P1\", \"RegionPredetectionModes\":[{\"Mode\":\"DLR_RPM_GENERAL_HSV_CONTRAST\"}], \"ReferenceRegionNameArray\": [\"R1\"]},\"ReferenceRegion\":{\"Name\":\"R1\",\"Localization\":{\"SourceType\":\"DLR_LST_PREDETECTED_REGION\",\"RegionPredetectionModesIndex\":0},\"TextAreaNameArray\":[\"T1\"]},\"TextArea\":{\"Name\":\"T1\",\"CharacterModelName\":\"Number\"}}" error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognition.initWithLicense(license: "t0260NwAAAHV***************")
-let error: NSError? = NSError()
-recognizer.appendSettingsFromString("{\"LabelRecognitionParameter\":{\"Name\":\"P1\", \"RegionPredetectionModes\":[{\"Mode\":\"DLR_RPM_GENERAL_HSV_CONTRAST\"}], \"ReferenceRegionNameArray\": [\"R1\"]},\"ReferenceRegion\":{\"Name\":\"R1\",\"Localization\":{\"SourceType\":\"DLR_LST_PREDETECTED_REGION\",\"RegionPredetectionModesIndex\":0},\"TextAreaNameArray\":[\"T1\"]},\"TextArea\":{\"Name\":\"T1\",\"CharacterModelName\":\"Number\"}}", error:&error)
-```
-
-
-
-
-## clearAppendedSettings
-Clear all appended parameter settings of the current label recognition instance.
-
-```objc
-- (void)clearAppendedSettings:(NSError**)error;
-```
-
-**Parameters**
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-recognizer = [[DynamsoftLabelRecognition alloc] initWithLicense:@"t0260NwAAAHV***************"];
-NSError __autoreleasing * error;
-[recognizer clearAppendedSettings:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognition.initWithLicense(license: "t0260NwAAAHV***************")
-let error: NSError? = NSError()
-recognizer.clearAppendedSettings(&error)
-```
-
-
-
-
-## eraseAllCharacterModels
-Erases all CharacterModels the SDK object currently loaded.
-
-```objc
-- (void)eraseAllCharacterModels;
-```
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-recognizer = [[DynamsoftLabelRecognition alloc] initWithLicense:@"t0260NwAAAHV***************"];
-[recognizer eraseAllCharacterModels];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognition.initWithLicense(license: "t0260NwAAAHV***************")
-recognizer.eraseAllCharacterModels()
-```
-
-
-
-
-## eraseCharacterModelByName
-Clear all appended parameter settings of the current label recognition instance.
-
-```objc
-- (void)eraseCharacterModelByName:(NSString*)name
-```
-
-**Parameters**
-`name` A unique name representing the CharacterModel to erase.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-recognizer = [[DynamsoftLabelRecognition alloc] initWithLicense:@"t0260NwAAAHV***************"];
-[recognizer eraseCharacterModelByName:@"your model name"];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognition.initWithLicense(license: "t0260NwAAAHV***************")
-recognizer.eraseCharacterModelByName("your model name")
-```
-
-
-
-
-## getModeArgument
-
-Get argument value for the specified mode parameter.
-
-```objc
-- (NSString* _Nonnull)getModeArgument:(NSString* _Nonnull)modeName index:(NSInteger)index argumentName:(NSString* _Nonnull)argumentName error:(NSError* _Nullable * _Nullable)error;
-```
-
-**Parameters**
-`modeName`: The mode parameter name to get argument.
-`index`: The array index of mode parameter to indicate a specific mode.
-`argumentName`: The name of the argument to get.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Return Value**
-the optional argument for a specified mode in Modes parameters.
-
-### Remark
-Check follow link for available modes and arguments:
-- [`RegionPredetectionModes`]({{ site.parameters-reference }}label-recognition-parameter/region-predetection-modes.html#regionpredetectionmodes)
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-recognizer = [[DynamsoftLabelRecognition alloc] initWithLicense:@"t0260NwAAAHV***************"];
-NSError __autoreleasing * error;
-NSString *argumentValue = [recognizer getModeArgument:@"RegionPredetectionModes" index:0 argumentName:@"AspectRatioRange" error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognition.initWithLicense(license: "t0260NwAAAHV***************")
-let error: NSError? = NSError()
-let argumentValue = recognizer.getModeArgument("RegionPredetectionModes", index:0, argumentName:"AspectRatioRange", error:&error)
-```
-
-
-
-
-## getRuntimeSettings
-Get current settings and save them into a [`DLRRuntimeSettings`](../class/dlr-runtime-settings.html) class object.
-
-```objc
-- (iDLRRuntimeSettings*)getRuntimeSettings:(NSError**)error;
-```
-
-**Parameters**
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Return Value**
-
-The class object of runtime settings.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-recognizer = [[DynamsoftLabelRecognition alloc] initWithLicense:@"t0260NwAAAHV***************"];
-NSError __autoreleasing * error;
-iDLRRuntimeSettings* settings = [recognizer getRuntimeSettings:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognition.initWithLicense(license: "t0260NwAAAHV***************")
-let error: NSError? = NSError()
-let settings = recognizer.getRuntimeSettings(&error)
-```
-
-
-
-## outputSettingsToFile
-Outputs runtime settings and save them into a settings file (JSON file).
-
-```objc
-- (void)outputSettingsToFile:(NSString*)filePath templateName:(NSString*)templateName error:(NSError**)error
-```
-
-**Parameters**
-`filePath` The path of the output file which stores current settings.
-`templateName` A unique name for declaring current runtime settings.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-NSString *settingsName;
-recognizer = [[DynamsoftLabelRecognition alloc] initWithLicense:@"t0260NwAAAHV***************"];
-NSError __autoreleasing * error;
-[recognizer outputSettingsToFile:@"your saving file path" templateName:@"currentRuntimeSettings" error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognition.initWithLicense(license: "t0260NwAAAHV***************")
-let error: NSError? = NSError()
-recognizer.outputSettingsToFile("your saving file path", templateName:"currentRuntimeSettings", error:&error)
-```
-
-
-
-
-## resetRuntimeSettings
-Reset all runtime settings to default values.
-
-```objc
-- (void)resetRuntimeSettings:(NSError**)error;
-```
-
-**Parameters**
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-recognizer = [[DynamsoftLabelRecognition alloc] initWithLicense:@"t0260NwAAAHV***************"];
-NSError __autoreleasing * error;
-[recognizer resetRuntimeSettings:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognition.initWithLicense(license: "t0260NwAAAHV***************")
-let error: NSError? = NSError()
-recognizer.resetRuntimeSettings(error:&error)
-```
-
-
-
-
-
-## setModeArgument
-
-Set argument value for the specified mode parameter.
-
-
-```objc
-- (void)setModeArgument:(NSString* _Nonnull)modeName index:(NSInteger)index argumentName:(NSString* _Nonnull)argumentName argumentValue:(NSString* _Nonnull)argumentValue error:(NSError* _Nullable * _Nullable)error;
-```
-**Parameters**
-`modeName`: The mode parameter name to set argument.
-`index`: The array index of mode parameter to indicate a specific mode.
-`argumentName`: The name of the argument to set.
-`argumentValue`: The value of the argument to set.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-
-### Remark
-Check follow link for available modes and arguments:
-- [`RegionPredetectionModes`]({{ site.parameters-reference }}label-recognition-parameter/region-predetection-modes.html#regionpredetectionmodes)
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-recognizer = [[DynamsoftLabelRecognition alloc] initWithLicense:@"t0260NwAAAHV***************"];
-iDLRRuntimeSettings *settings;
-NSError __autoreleasing * _Nullable error;
-[recognizer setModeArgument:@"RegionPredetectionModes" index:0 argumentName:@"AspectRatioRange" argumentValue:"100" error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognition.initWithLicense(license: "t0260NwAAAHV***************")
-let error: NSError? = NSError()
-recognizer.setModeArgument("RegionPredetectionModes", index:0, argumentName:"AspectRatioRange", argumentValue:"100", error:&error)
-```
-
-
-
-
-## updateReferenceRegionFromBarcodeResults
-Updates reference region which is defined with source type DLR_LST_BARCODE.
-
-```objc
-- (void)updateReferenceRegionFromBarcodeResults:(NSArray*)barcodeResults templateName:(NSString *)templateName error:(NSError**)error
-```
-
-**Parameters**
-`barcodeResults` The barcode results used to localize reference region.
-`templateName` The template name. A template name is the value of key LabelRecognitionParameter.Name defined in JSON formatted settings. If no template name is specified, current runtime settings will be used.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-recognizer = [[DynamsoftLabelRecognition alloc] initWithLicense:@"t0260NwAAAHV***************"];
-NSArray *textResults;
-//get textResults from Dynamsoft Barcode Reader SDK
-NSError __autoreleasing *error;
-[recognizer appendSettingsFromString:@"{\"LabelRecognitionParameter\":{\"Name\":\"P1\", \"RegionPredetectionModes\":[{\"Mode\":\"DLR_RPM_GENERAL_HSV_CONTRAST\"}], \"ReferenceRegionNameArray\": [\"R1\"]},\"ReferenceRegion\":{\"Name\":\"R1\",\"Localization\":{\"SourceType\":\"DLR_LST_BARCODE\"},\"TextAreaNameArray\":[\"T1\"]},\"TextArea\":{\"Name\":\"T1\",\"CharacterModelName\":\"Number\"}}" error:&error];
-[recognizer updateReferenceRegionFromBarcodeResults:textResults templateName:@"P1" error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognition.initWithLicense(license: "t0260NwAAAHV***************")
-var textResults = [iTextResult]()
-//get textResults from Dynamsoft Barcode Reader SDK
-let error: NSError? = NSError()
-recognizer.appendSettingsFromString("{\"LabelRecognitionParameter\":{\"Name\":\"P1\", \"RegionPredetectionModes\":[{\"Mode\":\"DLR_RPM_GENERAL_HSV_CONTRAST\"}], \"ReferenceRegionNameArray\": [\"R1\"]},\"ReferenceRegion\":{\"Name\":\"R1\",\"Localization\":{\"SourceType\":\"DLR_LST_BARCODE\"},\"TextAreaNameArray\":[\"T1\"]},\"TextArea\":{\"Name\":\"T1\",\"CharacterModelName\":\"Number\"}}", error:&error)
-recognizer.updateReferenceRegionFromBarcodeResults(textResults, templateName:"P1", error:&error)
-```
-
-
-
-## updateRuntimeSettings
-Update runtime settings with a given [`DLRRuntimeSettings`](../class/dlr-runtime-settings.html) class object.
-
-```objc
-- (void)updateRuntimeSettings:(iDLRRuntimeSettings*)settings error:(NSError**)error
-```
-
-**Parameters**
-`settings` The class object of template settings.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-recognizer = [[DynamsoftLabelRecognition alloc] initWithLicense:@"t0260NwAAAHV***************"];
-NSError __autoreleasing * error;
-iDLRRuntimeSettings *settings;
-settings.linesCount = 1;
-[recognizer updateRuntimeSettings:settings error:&error];
-```
-2.
-```swift
-let recognizer = DynamsoftLabelRecognition.initWithLicense(license: "t0260NwAAAHV***************")
-let error: NSError? = NSError()
-let settings = recognizer.getRuntimeSettings(&error)
-settings.linesCount = 1;
-recognizer.updateRuntimeSettings(settings, error:&error);
-```
-
-
-
diff --git a/programming-old/objectivec-swift/api-reference/methods/settings.md b/programming-old/objectivec-swift/api-reference/methods/settings.md
deleted file mode 100644
index 2bf60c0..0000000
--- a/programming-old/objectivec-swift/api-reference/methods/settings.md
+++ /dev/null
@@ -1,633 +0,0 @@
----
-layout: default-layout
-title: Settings - Dynamsoft Label Recognition iOS API Reference
-description: This is the settings functions of Dynamsoft Label Recognition for iOS API Reference.
-keywords: api reference, objective-c, oc, swift
-needAutoGenerateSidebar: true
-permalink: /programming/objectivec-swift/api-reference/methods/settings.html
----
-
-# iOS API Reference - Settings
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v1.x.
-
-| Method | Description |
-|----------------------|-------------|
- | [`appendCharacterModel`](#appendCharacterModel) | Appends CharacterModel to the SDK object. |
- | [`appendSettingsFromFile`](#appendsettingsfromfile) | Appends LabelRecognitionParameter settings in a file to the SDK object. |
- | [`appendSettingsFromString`](#appendsettingsfromstring) | Appends LabelRecognitionParameter settings in a string to the SDK object. |
- | [`clearAppendedSettings`](#clearappendedsettings) | Clears appended LabelRecognitionParameter settings. |
- | [`eraseAllCharacterModels`](#eraseallcharactermodels) | Erases all CharacterModels the SDK object currently loaded. |
- | [`eraseCharacterModelByName`](#erasecharactermodelbyname) | Erases a name specified CharacterModel from the SDK object. |
- | [`getModeArgument`](#getmodeargument) | Get argument value for the specified mode parameter. |
- | [`getRuntimeSettings`](#getruntimesettings) | Gets the current settings and saves it into a class object. |
- | [`outputSettingsToFile`](#outputsettingstofile) | Outputs LabelRecognitionParameter settings into a file (JSON file). |
- | [`resetRuntimeSettings`](#resetruntimesettings) | Resets the runtime settings. |
- | [`setModeArgument`](#setmodeargument) | Set argument value for the specified mode parameter. |
- | [`updateReferenceRegionFromBarcodeResults`](#updatereferenceregionfrombarcoderesults) | Updates reference region which is defined with source type DLR_LST_BARCODE. |
- | [`updateRuntimeSettings`](#updateruntimesettings) | Updates runtime settings with a given class object. |
-
----
-
-## appendCharacterModel
-Appends CharacterModel to the SDK object.
-
-```objc
-- (void)appendCharacterModel:(NSString*)name prototxtBuffer:(NSData*)prototxtBuffer txtBuffer:(NSData*)txtBuffer characterModelBuffer:(NSData*)characterModelBuffer
-```
-
-**Parameters**
-`name` A unique name for the appended CharacterModel.
-`prototxtBuffer` The .prototxt file data of the CharacterModel in a byte array.
-`txtBuffer` The .txt file data of the CharacterModel in a byte array.
-`characterModelBuffer` The .caffemodel file data of the CharacterModel in a byte array.
-
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-iDMLTSConnectionParameters* lts = [[iDMLTSConnectionParameters alloc] init];
-lts.organizationID = @"200001";
-lts.sessionPassword = @"******";
-recognizer = [[DynamsoftLabelRecognition alloc] initLicenseFromLTS:lts verificationDelegate:self];
-- (void)LTSLicenseVerificationCallback:(bool)isSuccess error:(NSError * )error
-{
- //TODO add your code for license verification
-}
-//construct prototxtBuffer, txtBuffer and characterModelBuffer
-[recognizer appendCharacterModel:@"your model name" prototxtBuffer: prototxtBuffer txtBuffer: txtBuffer characterModelBuffer: characterModelBuffer];
-```
-2.
-```swift
-let lts = iDMLTSConnectionParameters()
-lts.organizationID = "200001"
-lts.sessionPassword = "******"
-let recognizer = DynamsoftLabelRecognition(licenseFromLTS: lts, verificationDelegate: self)
-//construct prototxtBuffer, txtBuffer and characterModelBuffer
-recognizer.appendCharacterModel("your model name", prototxtBuffer: prototxtBuffer, txtBuffer: txtBuffer, characterModelBuffer: characterModelBuffer)
-```
-
-
-
-
-## appendSettingsFromFile
-Appends LabelRecognitionParameter settings in a file to the SDK object.
-
-```objc
-- (void)appendSettingsFromFile:(NSString*)filePath error:(NSError**)error
-```
-
-**Parameters**
-`filePath` The settings file path.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-iDMLTSConnectionParameters* lts = [[iDMLTSConnectionParameters alloc] init];
-lts.organizationID = @"200001";
-lts.sessionPassword = @"******";
-recognizer = [[DynamsoftLabelRecognition alloc] initLicenseFromLTS:lts verificationDelegate:self];
-- (void)LTSLicenseVerificationCallback:(bool)isSuccess error:(NSError * )error
-{
- //TODO add your code for license verification
-}
-NSError __autoreleasing * error;
-[recognizer appendSettingsFromFile:@"your file path" error:&error];
-```
-2.
-```swift
-let lts = iDMLTSConnectionParameters()
-lts.organizationID = "200001"
-lts.sessionPassword = "******"
-let recognizer = DynamsoftLabelRecognition(licenseFromLTS: lts, verificationDelegate: self)
-let error: NSError? = NSError()
-recognizer.appendSettingsFromFile("your file path", error:&error)
-```
-
-
-
-## appendSettingsFromString
-Append a new template string to the current label recognition instance.
-
-```objc
-- (void)appendSettingsFromString:(NSString*)content error:(NSError**)error
-```
-
-**Parameters**
-`content` A JSON string that represents the content of the settings.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-iDMLTSConnectionParameters* lts = [[iDMLTSConnectionParameters alloc] init];
-lts.organizationID = @"200001";
-lts.sessionPassword = @"******";
-recognizer = [[DynamsoftLabelRecognition alloc] initLicenseFromLTS:lts verificationDelegate:self];
-- (void)LTSLicenseVerificationCallback:(bool)isSuccess error:(NSError * )error
-{
- //TODO add your code for license verification
-}
-NSError __autoreleasing * error;
-[recognizer appendSettingsFromString:@"{\"LabelRecognitionParameter\":{\"Name\":\"P1\", \"RegionPredetectionModes\":[{\"Mode\":\"DLR_RPM_GENERAL_HSV_CONTRAST\"}], \"ReferenceRegionNameArray\": [\"R1\"]},\"ReferenceRegion\":{\"Name\":\"R1\",\"Localization\":{\"SourceType\":\"DLR_LST_PREDETECTED_REGION\",\"RegionPredetectionModesIndex\":0},\"TextAreaNameArray\":[\"T1\"]},\"TextArea\":{\"Name\":\"T1\",\"CharacterModelName\":\"Number\"}}" error:&error];
-```
-2.
-```swift
-let lts = iDMLTSConnectionParameters()
-lts.organizationID = "200001"
-lts.sessionPassword = "******"
-let recognizer = DynamsoftLabelRecognition(licenseFromLTS: lts, verificationDelegate: self)
-let error: NSError? = NSError()
-recognizer.appendSettingsFromString("{\"LabelRecognitionParameter\":{\"Name\":\"P1\", \"RegionPredetectionModes\":[{\"Mode\":\"DLR_RPM_GENERAL_HSV_CONTRAST\"}], \"ReferenceRegionNameArray\": [\"R1\"]},\"ReferenceRegion\":{\"Name\":\"R1\",\"Localization\":{\"SourceType\":\"DLR_LST_PREDETECTED_REGION\",\"RegionPredetectionModesIndex\":0},\"TextAreaNameArray\":[\"T1\"]},\"TextArea\":{\"Name\":\"T1\",\"CharacterModelName\":\"Number\"}}", error:&error)
-```
-
-
-
-
-## clearAppendedSettings
-Clear all appended parameter settings of the current label recognition instance.
-
-```objc
-- (void)clearAppendedSettings:(NSError**)error;
-```
-
-**Parameters**
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-iDMLTSConnectionParameters* lts = [[iDMLTSConnectionParameters alloc] init];
-lts.organizationID = @"200001";
-lts.sessionPassword = @"******";
-recognizer = [[DynamsoftLabelRecognition alloc] initLicenseFromLTS:lts verificationDelegate:self];
-- (void)LTSLicenseVerificationCallback:(bool)isSuccess error:(NSError * )error
-{
- //TODO add your code for license verification
-}
-NSError __autoreleasing * error;
-[recognizer clearAppendedSettings:&error];
-```
-2.
-```swift
-let lts = iDMLTSConnectionParameters()
-lts.organizationID = "200001"
-lts.sessionPassword = "******"
-let recognizer = DynamsoftLabelRecognition(licenseFromLTS: lts, verificationDelegate: self)
-let error: NSError? = NSError()
-recognizer.clearAppendedSettings(&error)
-```
-
-
-
-
-## eraseAllCharacterModels
-Erases all CharacterModels the SDK object currently loaded.
-
-```objc
-- (void)eraseAllCharacterModels;
-```
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-iDMLTSConnectionParameters* lts = [[iDMLTSConnectionParameters alloc] init];
-lts.organizationID = @"200001";
-lts.sessionPassword = @"******";
-recognizer = [[DynamsoftLabelRecognition alloc] initLicenseFromLTS:lts verificationDelegate:self];
-- (void)LTSLicenseVerificationCallback:(bool)isSuccess error:(NSError * )error
-{
- //TODO add your code for license verification
-}
-[recognizer eraseAllCharacterModels];
-```
-2.
-```swift
-let lts = iDMLTSConnectionParameters()
-lts.organizationID = "200001"
-lts.sessionPassword = "******"
-let recognizer = DynamsoftLabelRecognition(licenseFromLTS: lts, verificationDelegate: self)
-recognizer.eraseAllCharacterModels()
-```
-
-
-
-
-## eraseCharacterModelByName
-Erases a name specified CharacterModel from the SDK object.
-
-```objc
-- (void)eraseCharacterModelByName:(NSString*)name
-```
-
-**Parameters**
-`name` A unique name representing the CharacterModel to erase.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-iDMLTSConnectionParameters* lts = [[iDMLTSConnectionParameters alloc] init];
-lts.organizationID = @"200001";
-lts.sessionPassword = @"******";
-recognizer = [[DynamsoftLabelRecognition alloc] initLicenseFromLTS:lts verificationDelegate:self];
-- (void)LTSLicenseVerificationCallback:(bool)isSuccess error:(NSError * )error
-{
- //TODO add your code for license verification
-}
-[recognizer eraseCharacterModelByName:@"your model name"];
-```
-2.
-```swift
-let lts = iDMLTSConnectionParameters()
-lts.organizationID = "200001"
-lts.sessionPassword = "******"
-let recognizer = DynamsoftLabelRecognition(licenseFromLTS: lts, verificationDelegate: self)
-recognizer.eraseCharacterModelByName("your model name")
-```
-
-
-
-
-## getModeArgument
-
-Get argument value for the specified mode parameter.
-
-```objc
-- (NSString* _Nonnull)getModeArgument:(NSString* _Nonnull)modeName index:(NSInteger)index argumentName:(NSString* _Nonnull)argumentName error:(NSError* _Nullable * _Nullable)error;
-```
-
-**Parameters**
-`modeName`: The mode parameter name to get argument.
-`index`: The array index of mode parameter to indicate a specific mode.
-`argumentName`: The name of the argument to get.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Return Value**
-the optional argument for a specified mode in Modes parameters.
-
-### Remark
-Check follow link for available modes and arguments:
-- [`RegionPredetectionModes`]({{ site.parameters-reference }}label-recognition-parameter/region-predetection-modes.html#regionpredetectionmodes)
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-iDMLTSConnectionParameters* lts = [[iDMLTSConnectionParameters alloc] init];
-lts.organizationID = @"200001";
-lts.sessionPassword = @"******";
-recognizer = [[DynamsoftLabelRecognition alloc] initLicenseFromLTS:lts verificationDelegate:self];
-- (void)LTSLicenseVerificationCallback:(bool)isSuccess error:(NSError * )error
-{
- //TODO add your code for license verification
-}
-NSError __autoreleasing * error;
-NSString *argumentValue = [recognizer getModeArgument:@"RegionPredetectionModes" index:0 argumentName:@"AspectRatioRange" error:&error];
-```
-2.
-```swift
-let lts = iDMLTSConnectionParameters()
-lts.organizationID = "200001"
-lts.sessionPassword = "******"
-let recognizer = DynamsoftLabelRecognition(licenseFromLTS: lts, verificationDelegate: self)
-let error: NSError? = NSError()
-let argumentValue = recognizer.getModeArgument("RegionPredetectionModes", index:0, argumentName:"AspectRatioRange", error:&error)
-```
-
-
-
-
-## getRuntimeSettings
-Get current settings and save them into a [`DLRRuntimeSettings`](../class/dlr-runtime-settings.html) class object.
-
-```objc
-- (iDLRRuntimeSettings*)getRuntimeSettings:(NSError**)error;
-```
-
-**Parameters**
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Return Value**
-
-The class object of runtime settings.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-iDMLTSConnectionParameters* lts = [[iDMLTSConnectionParameters alloc] init];
-lts.organizationID = @"200001";
-lts.sessionPassword = @"******";
-recognizer = [[DynamsoftLabelRecognition alloc] initLicenseFromLTS:lts verificationDelegate:self];
-- (void)LTSLicenseVerificationCallback:(bool)isSuccess error:(NSError * )error
-{
- //TODO add your code for license verification
-}
-NSError __autoreleasing * error;
-iDLRRuntimeSettings* settings = [recognizer getRuntimeSettings:&error];
-```
-2.
-```swift
-let lts = iDMLTSConnectionParameters()
-lts.organizationID = "200001"
-lts.sessionPassword = "******"
-let recognizer = DynamsoftLabelRecognition(licenseFromLTS: lts, verificationDelegate: self)
-let error: NSError? = NSError()
-let settings = recognizer.getRuntimeSettings(&error)
-```
-
-
-
-## outputSettingsToFile
-Outputs runtime settings and save them into a settings file (JSON file).
-
-```objc
-- (void)outputSettingsToFile:(NSString*)filePath templateName:(NSString*)templateName error:(NSError**)error
-```
-
-**Parameters**
-`filePath` The path of the output file which stores current settings.
-`templateName` A unique name for declaring current runtime settings.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-NSString *settingsName;
-iDMLTSConnectionParameters* lts = [[iDMLTSConnectionParameters alloc] init];
-lts.organizationID = @"200001";
-lts.sessionPassword = @"******";
-recognizer = [[DynamsoftLabelRecognition alloc] initLicenseFromLTS:lts verificationDelegate:self];
-- (void)LTSLicenseVerificationCallback:(bool)isSuccess error:(NSError * )error
-{
- //TODO add your code for license verification
-}
-NSError __autoreleasing * error;
-[recognizer outputSettingsToFile:@"your saving file path" templateName:@"currentRuntimeSettings" error:&error];
-```
-2.
-```swift
-let lts = iDMLTSConnectionParameters()
-lts.organizationID = "200001"
-lts.sessionPassword = "******"
-let recognizer = DynamsoftLabelRecognition(licenseFromLTS: lts, verificationDelegate: self)
-let error: NSError? = NSError()
-recognizer.outputSettingsToFile("your saving file path", templateName:"currentRuntimeSettings", error:&error)
-```
-
-
-
-
-## resetRuntimeSettings
-Reset all runtime settings to default values.
-
-```objc
-- (void)resetRuntimeSettings:(NSError**)error;
-```
-
-**Parameters**
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-iDMLTSConnectionParameters* lts = [[iDMLTSConnectionParameters alloc] init];
-lts.organizationID = @"200001";
-lts.sessionPassword = @"******";
-recognizer = [[DynamsoftLabelRecognition alloc] initLicenseFromLTS:lts verificationDelegate:self];
-- (void)LTSLicenseVerificationCallback:(bool)isSuccess error:(NSError * )error
-{
- //TODO add your code for license verification
-}
-NSError __autoreleasing * error;
-[recognizer resetRuntimeSettings:&error];
-```
-2.
-```swift
-let lts = iDMLTSConnectionParameters()
-lts.organizationID = "200001"
-lts.sessionPassword = "******"
-let recognizer = DynamsoftLabelRecognition(licenseFromLTS: lts, verificationDelegate: self)
-let error: NSError? = NSError()
-recognizer.resetRuntimeSettings(error:&error)
-```
-
-
-
-
-
-## setModeArgument
-
-Set argument value for the specified mode parameter.
-
-
-```objc
-- (void)setModeArgument:(NSString* _Nonnull)modeName index:(NSInteger)index argumentName:(NSString* _Nonnull)argumentName argumentValue:(NSString* _Nonnull)argumentValue error:(NSError* _Nullable * _Nullable)error;
-```
-**Parameters**
-`modeName`: The mode parameter name to set argument.
-`index`: The array index of mode parameter to indicate a specific mode.
-`argumentName`: The name of the argument to set.
-`argumentValue`: The value of the argument to set.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-
-### Remark
-Check follow link for available modes and arguments:
-- [`RegionPredetectionModes`]({{ site.parameters-reference }}label-recognition-parameter/region-predetection-modes.html#regionpredetectionmodes)
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-iDMLTSConnectionParameters* lts = [[iDMLTSConnectionParameters alloc] init];
-lts.organizationID = @"200001";
-lts.sessionPassword = @"******";
-recognizer = [[DynamsoftLabelRecognition alloc] initLicenseFromLTS:lts verificationDelegate:self];
-- (void)LTSLicenseVerificationCallback:(bool)isSuccess error:(NSError * )error
-{
- //TODO add your code for license verification
-}
-iDLRRuntimeSettings *settings;
-NSError __autoreleasing * _Nullable error;
-[recognizer setModeArgument:@"RegionPredetectionModes" index:0 argumentName:@"AspectRatioRange" argumentValue:"100" error:&error];
-```
-2.
-```swift
-let lts = iDMLTSConnectionParameters()
-lts.organizationID = "200001"
-lts.sessionPassword = "******"
-let recognizer = DynamsoftLabelRecognition(licenseFromLTS: lts, verificationDelegate: self)
-let error: NSError? = NSError()
-recognizer.setModeArgument("RegionPredetectionModes", index:0, argumentName:"AspectRatioRange", argumentValue:"100", error:&error)
-```
-
-
-
-
-## updateReferenceRegionFromBarcodeResults
-Updates reference region which is defined with source type DLR_LST_BARCODE.
-
-```objc
-- (void)updateReferenceRegionFromBarcodeResults:(NSArray*)barcodeResults templateName:(NSString *)templateName error:(NSError**)error
-```
-
-**Parameters**
-`barcodeResults` The barcode results used to localize reference region.
-`templateName` The template name. A template name is the value of key LabelRecognitionParameter.Name defined in JSON formatted settings. If no template name is specified, current runtime settings will be used.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-iDMLTSConnectionParameters* lts = [[iDMLTSConnectionParameters alloc] init];
-lts.organizationID = @"200001";
-lts.sessionPassword = @"******";
-recognizer = [[DynamsoftLabelRecognition alloc] initLicenseFromLTS:lts verificationDelegate:self];
-- (void)LTSLicenseVerificationCallback:(bool)isSuccess error:(NSError * )error
-{
- //TODO add your code for license verification
-}
-NSArray *textResults;
-//get textResults from Dynamsoft Barcode Reader SDK
-NSError __autoreleasing *error;
-[recognizer appendSettingsFromString:@"{\"LabelRecognitionParameter\":{\"Name\":\"P1\", \"RegionPredetectionModes\":[{\"Mode\":\"DLR_RPM_GENERAL_HSV_CONTRAST\"}], \"ReferenceRegionNameArray\": [\"R1\"]},\"ReferenceRegion\":{\"Name\":\"R1\",\"Localization\":{\"SourceType\":\"DLR_LST_BARCODE\"},\"TextAreaNameArray\":[\"T1\"]},\"TextArea\":{\"Name\":\"T1\",\"CharacterModelName\":\"Number\"}}" error:&error];
-[recognizer updateReferenceRegionFromBarcodeResults:textResults templateName:@"P1" error:&error];
-```
-2.
-```swift
-let lts = iDMLTSConnectionParameters()
-lts.organizationID = "200001"
-lts.sessionPassword = "******"
-let recognizer = DynamsoftLabelRecognition(licenseFromLTS: lts, verificationDelegate: self)
-var textResults = [iTextResult]()
-//get textResults from Dynamsoft Barcode Reader SDK
-let error: NSError? = NSError()
-recognizer.appendSettingsFromString("{\"LabelRecognitionParameter\":{\"Name\":\"P1\", \"RegionPredetectionModes\":[{\"Mode\":\"DLR_RPM_GENERAL_HSV_CONTRAST\"}], \"ReferenceRegionNameArray\": [\"R1\"]},\"ReferenceRegion\":{\"Name\":\"R1\",\"Localization\":{\"SourceType\":\"DLR_LST_BARCODE\"},\"TextAreaNameArray\":[\"T1\"]},\"TextArea\":{\"Name\":\"T1\",\"CharacterModelName\":\"Number\"}}", error:&error)
-recognizer.updateReferenceRegionFromBarcodeResults(textResults, templateName:"P1", error:&error)
-```
-
-
-
-## updateRuntimeSettings
-Update runtime settings with a given [`DLRRuntimeSettings`](../class/dlr-runtime-settings.html) class object.
-
-```objc
-- (void)updateRuntimeSettings:(iDLRRuntimeSettings*)settings error:(NSError**)error
-```
-
-**Parameters**
-`settings` The class object of template settings.
-`[in,out] error` Input a pointer to an error object. If an error occurs, this pointer is set to an actual error object containing the error information. You may specify nil for this parameter if you do not want the error information.
-
-
-**Code Snippet**
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-DynamsoftLabelRecognition *recognizer;
-iDMLTSConnectionParameters* lts = [[iDMLTSConnectionParameters alloc] init];
-lts.organizationID = @"200001";
-lts.sessionPassword = @"******";
-recognizer = [[DynamsoftLabelRecognition alloc] initLicenseFromLTS:lts verificationDelegate:self];
-- (void)LTSLicenseVerificationCallback:(bool)isSuccess error:(NSError * )error
-{
- //TODO add your code for license verification
-}
-NSError __autoreleasing * error;
-iDLRRuntimeSettings *settings;
-settings.linesCount = 1;
-[recognizer updateRuntimeSettings:settings error:&error];
-```
-2.
-```swift
-let lts = iDMLTSConnectionParameters()
-lts.organizationID = "200001"
-lts.sessionPassword = "******"
-let recognizer = DynamsoftLabelRecognition(licenseFromLTS: lts, verificationDelegate: self)
-let error: NSError? = NSError()
-let settings = recognizer.getRuntimeSettings(&error)
-settings.linesCount = 1;
-recognizer.updateRuntimeSettings(settings, error:&error);
-```
-
-
-
diff --git a/programming-old/objectivec-swift/api-reference/quadrilateral.md b/programming-old/objectivec-swift/api-reference/quadrilateral.md
deleted file mode 100644
index 944d697..0000000
--- a/programming-old/objectivec-swift/api-reference/quadrilateral.md
+++ /dev/null
@@ -1,36 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Core iOS Class - iQuadrilateral
-description: This page shows the iQuadrilateral class of Dynamsoft Label Recognizer iOS Edition v1.x.
-keywords: iQuadrilateral, class, objective-c, oc, swift
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-noTitleIndex: true
-permalink: /programming/objectivec-swift/api-reference/quadrilateral.html
----
-
-# iQuadrilateral
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v2.2.20.
-
-Stores the quadrilateral.
-
-```objc
-@interface iQuadrilateral : NSObject
-```
-
-## Attributes
-
-| Attribute | Type |
-|---------- | ---- |
-| [`points`](#points) | *NSArray\** |
-
-
-
-### points
-
-Four vertexes (CGPoint) in a clockwise direction of a quadrilateral. Index 0 represents the left-most vertex.
-
-```objc
-NSArray* points
-```
diff --git a/programming-old/objectivec-swift/hello-world-sample-v2.2.20.md b/programming-old/objectivec-swift/hello-world-sample-v2.2.20.md
deleted file mode 100644
index 439916b..0000000
--- a/programming-old/objectivec-swift/hello-world-sample-v2.2.20.md
+++ /dev/null
@@ -1,19 +0,0 @@
----
-layout: default-layout
-title: HelloWorld (iOS) Dynamsoft Label Recognizer
-description: This is the page of Dynamsoft Label Recognizer iOS HelloWorld sample.
-keywords: HelloWorld, iOS
-needAutoGenerateSidebar: true
-permalink: /programming/objectivec-swift/hello-world-sample-v2.2.20.html
----
-
-# HelloWorld Sample
-
-The iOS Helloworld sample shows how to create the simplest video streaming text scanning app with Dynamsoft Label Recognizer iOS SDK.
-
-View the sample:
-
-- HelloWorld (Objective-C)
-- HelloWorld (Swift)
-
-For more details about how to get started with Dynamsoft Label Recognizer, please view the [user guide](user-guide.md).
diff --git a/programming-old/objectivec-swift/index-v1.2.1.md b/programming-old/objectivec-swift/index-v1.2.1.md
deleted file mode 100644
index 08ed400..0000000
--- a/programming-old/objectivec-swift/index-v1.2.1.md
+++ /dev/null
@@ -1,23 +0,0 @@
----
-layout: default-layout
-title: Main Page - Dynamsoft Label Recognition for iOS
-description: This is the main page of Dynamsoft Label Recognition for iOS SDK.
-keywords: objective-c, oc, swift
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /programming/objectivec-swift/index-v1.2.1.html
----
-
-# Dynamsoft Label Recognition - for iOS
-
-## Getting Started
-
-- [User Guide](user-guide.md)
-
-## API Reference
-
-- [API Reference](api-reference/index.md)
-
-## Release Notes
-
-- [Version 1.x](release-notes/ios-1.md)
\ No newline at end of file
diff --git a/programming-old/objectivec-swift/index-v2.2.20.md b/programming-old/objectivec-swift/index-v2.2.20.md
deleted file mode 100644
index c753ebc..0000000
--- a/programming-old/objectivec-swift/index-v2.2.20.md
+++ /dev/null
@@ -1,30 +0,0 @@
----
-layout: default-layout
-title: Main Page - Dynamsoft Label Recognizer for iOS
-description: This is the main page of Dynamsoft Label Recognizer for iOS SDK.
-keywords: objective-c, oc, swift
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /programming/objectivec-swift/index-v2.2.20.html
----
-
-# iOS Documentation
-
-## Getting Started
-
-- [User Guide](user-guide.md)
-
-## Samples
-
-- [Samples](samples.md)
- - [HelloWorld](hello-world-sample.md)
- - [MRZScanner](mrz-sample.md)
-
-## API Reference
-
-- [API Reference](api-reference/index.md)
-
-## Release Notes
-
-- [Version 2.x](release-notes/ios-2.md)
-- [Version 1.x](release-notes/ios-1.md)
\ No newline at end of file
diff --git a/programming-old/objectivec-swift/mrz-sample-v2.2.20.md b/programming-old/objectivec-swift/mrz-sample-v2.2.20.md
deleted file mode 100644
index bd1c841..0000000
--- a/programming-old/objectivec-swift/mrz-sample-v2.2.20.md
+++ /dev/null
@@ -1,122 +0,0 @@
----
-layout: default-layout
-title: MRZ Scanner (iOS) Dynamsoft Label Recognizer
-description: This is the page of Dynamsoft Label Recognizer iOS MRZ Scanner sample.
-keywords: MRZ Scanner, iOS
-needAutoGenerateSidebar: true
-permalink: /programming/objectivec-swift/mrz-sample-v2.2.20.html
----
-
-# MRZ Scanner Sample
-
-MRZScanner sample shows you how to develop with Dynamsoft Label Recognizer to create a simple app to scan machine-readable zome (MRZ).
-
-View the samples:
-
-- MRZScanner (Objective-C)
-- MRZScanner (Swift)
-
-In the MRZScanner sample, we include an additional library **MRZRecognizer.framework**, which is developed from Dynamsoft Label Recognizer. MRZ models or parameters are preset in the library. As a result, you don't need to add additional settings.
-
-The following APIs are available in the MRZScanner sample
-
-- `MRZRecognizer`: The class extended from `DynamsoftLabelRecognizer`.
-- `MRZResult`: The class that stores MRZ result information. When using **MRZRecognizer.framework**, you can obtain `MRZResult` as the output of the library instead of `DLRResult`.
-- `MRZResultListener`: The listener to handle callbacks when MRZResults are returned.
-
-## How to use MRZRecognizer
-
-### Setup Camera Module
-
-In this sample, we use Dynamsoft Camera Enhancer to set up the camera module and capture video frames.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, strong) DynamsoftCameraEnhancer *cameraEnhancer;
-@property (nonatomic, strong) DCECameraView *dceView;
-...
-- (void)configureMRZ {
- self.dceView = [[DCECameraView alloc] initWithFrame:self.view.bounds];
- self.cameraEnhancer = [[DynamsoftCameraEnhancer alloc] initWithView:self.dceView];
- [self.view addSubview:self.dceView];
- [self.cameraEnhancer open];
-}
-```
-2.
-```swift
-var cameraEnhancer: DynamsoftCameraEnhancer!
-var dceView: DCECameraView!
-...
-func configureMRZ() -> Void {
- dceView = DCECameraView.init(frame: self.view.bounds)
- cameraEnhancer = DynamsoftCameraEnhancer.init(view: dceView)
- self.view.addSubview(dceView)
- cameraEnhancer.open()
-}
-```
-
-### Initialize MRZ Recognizer and Bind the Camera Module
-
-Create an instance of `MRZRecognizer`. Use the method `setImageSource` to bind the `MRZRecognizer` and the camera module you created. After that, the instance of `MRZRecognizer` will be able to obtain video frames from the camera continuously.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, strong) DynamsoftMRZRecognizer *mrzRecognizer;
-...
-- (void)configureMRZ {
- self.mrzRecognizer = [[DynamsoftMRZRecognizer alloc] init];
- // Use setImageSource to bind MRZRecognizer with the camera enhancer.
- // You can also implement the interface ImageSource by yourself.
- [self.mrzRecognizer setImageSource:self.cameraEnhancer];
-}
-```
-2.
-```swift
-var mrzRecognizer: DynamsoftMRZRecognizer!
-...
-func configureMRZ() -> Void {
- mrzRecognizer = DynamsoftMRZRecognizer.init()
- // Use setImageSource to bind MRZRecognizer with the camera enhancer.
- // You can also implement the interface ImageSource by yourself.
- mrzRecognizer.setImageSource(cameraEnhancer)
-}
-```
-
-### Obtain Results
-
-Use `setMRZResultListener` to Register a `MRZResultListener`. Trigger `startScanning`. So that you can obtain the MRZ results from `mrzResultCallback`.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@interface ViewController ()
-[self.mrzRecognizer setMRZResultListener:self];
-[self.mrzRecognizer startScanning];
-- (void)mrzResultCallback:(NSInteger)frameId imageData:(iImageData *)imageData result:(iMRZResult *)result {
- // Implement the mrzResultCallback.
-}
-```
-2.
-```swift
-class ViewController: BaseViewController, MRZResultListener {
- func configureMRZ() -> Void {
- mrzRecognizer.setMRZResultListener(self)
- mrzRecognizer.startScanning()
- }
- ...
- func mrzResultCallback(_ frameId: Int, imageData: iImageData, result: iMRZResult?) {
- // Implement the mrzResultCallback.
- }
-}
-```
diff --git a/programming-old/objectivec-swift/mrz-sample.md b/programming-old/objectivec-swift/mrz-sample.md
deleted file mode 100644
index ea77a7f..0000000
--- a/programming-old/objectivec-swift/mrz-sample.md
+++ /dev/null
@@ -1,122 +0,0 @@
----
-layout: default-layout
-title: MRZ Scanner (iOS) Dynamsoft Label Recognizer
-description: This is the page of Dynamsoft Label Recognizer iOS MRZ Scanner sample.
-keywords: MRZ Scanner, iOS
-needAutoGenerateSidebar: true
-permalink: /programming/objectivec-swift/mrz-sample.html
----
-
-# MRZ Scanner Sample
-
-MRZScanner sample shows you how to develop with Dynamsoft Label Recognizer to create a simple app to scan machine-readable zome (MRZ).
-
-View the samples:
-
-- MRZScanner (Objective-C)
-- MRZScanner (Swift)
-
-In the MRZScanner sample, we include an additional library **MRZRecognizer.framework**, which is developed from Dynamsoft Label Recognizer. MRZ models or parameters are preset in the library. As a result, you don't need to add additional settings.
-
-The following APIs are available in the MRZScanner sample
-
-- `MRZRecognizer`: The class extended from `DynamsoftLabelRecognizer`.
-- `MRZResult`: The class that stores MRZ result information. When using **MRZRecognizer.framework**, you can obtain `MRZResult` as the output of the library instead of `DLRResult`.
-- `MRZResultListener`: The listener to handle callbacks when MRZResults are returned.
-
-## How to use MRZRecognizer
-
-### Setup Camera Module
-
-In this sample, we use Dynamsoft Camera Enhancer to set up the camera module and capture video frames.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, strong) DynamsoftCameraEnhancer *cameraEnhancer;
-@property (nonatomic, strong) DCECameraView *dceView;
-...
-- (void)configureMRZ {
- self.dceView = [[DCECameraView alloc] initWithFrame:self.view.bounds];
- self.cameraEnhancer = [[DynamsoftCameraEnhancer alloc] initWithView:self.dceView];
- [self.view addSubview:self.dceView];
- [self.cameraEnhancer open];
-}
-```
-2.
-```swift
-var cameraEnhancer: DynamsoftCameraEnhancer!
-var dceView: DCECameraView!
-...
-func configureMRZ() -> Void {
- dceView = DCECameraView.init(frame: self.view.bounds)
- cameraEnhancer = DynamsoftCameraEnhancer.init(view: dceView)
- self.view.addSubview(dceView)
- cameraEnhancer.open()
-}
-```
-
-### Initialize MRZ Recognizer and Bind the Camera Module
-
-Create an instance of `MRZRecognizer`. Use the method `setImageSource` to bind the `MRZRecognizer` and the camera module you created. After that, the instance of `MRZRecognizer` will be able to obtain video frames from the camera continuously.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, strong) DynamsoftMRZRecognizer *mrzRecognizer;
-...
-- (void)configureMRZ {
- self.mrzRecognizer = [[DynamsoftMRZRecognizer alloc] init];
- // Use setImageSource to bind MRZRecognizer with the camera enhancer.
- // You can also implement the interface ImageSource by yourself.
- [self.mrzRecognizer setImageSource:self.cameraEnhancer];
-}
-```
-2.
-```swift
-var mrzRecognizer: DynamsoftMRZRecognizer!
-...
-func configureMRZ() -> Void {
- mrzRecognizer = DynamsoftMRZRecognizer.init()
- // Use setImageSource to bind MRZRecognizer with the camera enhancer.
- // You can also implement the interface ImageSource by yourself.
- mrzRecognizer.setImageSource(cameraEnhancer)
-}
-```
-
-### Obtain Results
-
-Use `setMRZResultListener` to Register a `MRZResultListener`. Trigger `startScanning`. So that you can obtain the MRZ results from `mrzResultCallback`.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@interface ViewController ()
-[self.mrzRecognizer setMRZResultListener:self];
-[self.mrzRecognizer startScanning];
-- (void)mrzResultCallback:(NSInteger)frameId imageData:(iImageData *)imageData result:(iMRZResult *)result {
- // Implement the mrzResultCallback.
-}
-```
-2.
-```swift
-class ViewController: BaseViewController, MRZResultListener {
- func configureMRZ() -> Void {
- mrzRecognizer.setMRZResultListener(self)
- mrzRecognizer.startScanning()
- }
- ...
- func mrzResultCallback(_ frameId: Int, imageData: iImageData, result: iMRZResult?) {
- // Implement the mrzResultCallback.
- }
-}
-```
diff --git a/programming-old/objectivec-swift/release-notes/index-v1.2.1.md b/programming-old/objectivec-swift/release-notes/index-v1.2.1.md
deleted file mode 100644
index 8eae860..0000000
--- a/programming-old/objectivec-swift/release-notes/index-v1.2.1.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-layout: default-layout
-title: iOS SDK Release Notes - Dynamsoft Label Recognition
-description: This is the release notes page of Dynamsoft Label Recognition for iOS SDK.
-keywords: release notes, objective-c, oc, swift
-needAutoGenerateSidebar: false
-permalink: /programming/objectivec-swift/release-notes/index-v1.2.1.html
----
-
-# Dynamsoft Label Recognition iOS SDK - Release Notes
-
-- [1.2.1 (06/08/2021)](ios-1.md#121-06082021)
-- [1.2 (05/18/2021)](ios-1.md#12-05182021)
-- [1.0 (02/24/2021)](ios-1.md#10-02242021)
\ No newline at end of file
diff --git a/programming-old/objectivec-swift/release-notes/ios-1-v1.2.1.md b/programming-old/objectivec-swift/release-notes/ios-1-v1.2.1.md
deleted file mode 100644
index 8515455..0000000
--- a/programming-old/objectivec-swift/release-notes/ios-1-v1.2.1.md
+++ /dev/null
@@ -1,76 +0,0 @@
----
-layout: default-layout
-title: iOS SDK Release Notes 1.x - Dynamsoft Label Recognition
-description: This is the release notes page of Dynamsoft Label Recognition for iOS SDK version 1.x.
-keywords: release notes, objective-c, oc, swift
-needAutoGenerateSidebar: false
-permalink: /programming/objectivec-swift/release-notes/ios-1-v1.2.1.html
----
-
-# Release Notes for iOS - 1.x
-
-## 1.2.1 (06/08/2021)
-
-### New
-
-- Added a new property [`products`]({{ site.dlr_ios_api }}class/dlr-lts-connection-parameters.html#products) to `iDLRLTSConnectionParameters`.
-- Added a new enumeration [`EnumProduct`]({{ site.enumerations }}other-enums.html#product).
-
-### Fixed
-
-- Fixed a bug of license client.
-
-
-## 1.2 (05/18/2021)
-
-### New
-
-- Added a new parameter [`LabelRecognitionParameter.Timeout`]({{ site.parameters-reference }}label-recognition-parameter-control/parameter-control.html#timeout). Should the recognition time pass the value of this parameter, a new error code [`DLRERR_RECOGNITION_TIMEOUT`]({{ site.enumerations }}error-code.html) will be returned.
-
-- Added a new parameter [`LabelRecognitionParameter.Pages`]({{ site.parameters-reference }}label-recognition-parameter/parameter-control.html#page) that specifies a page or a subset of pages of a single file to run the recognition process on.
-
-- Added the following error codes: [`DLRERR_TIFF_READ_FAILED`]({{ site.enumerations }}error-code.html) , [`DLRERR_PDF_READ_FAILED`]({{ site.enumerations }}error-code.html) and [`DLRERR_PDF_DLL_MISSING`]({{ site.enumerations }}error-code.html). These error codes will be returned when the recognizer fails to read a TIFF file, a PDF file, or if the PDF DLL is missing, respectively.
-
-- Added a new property [`pageNumber`]({{ site.objectivec-structs }}dlr-result.html#pagenumber) to `iDLRResult` to identify the page on which the result is located.
-
-- Added parameters `TextStringLengthRange` and `LineStringLengthRange` that can be used to define the minimum and maximum string length when running the recognition process on a text area or a specific line, respectively. They are available as:
- - [`LabelRecognitionParameter.TextStringLengthRange`]({{ site.parameters-reference }}label-recognition-parameter/parameter-control.html#textstringlengthrange)
- - [`LabelRecognitionParameter.LineStringLengthRange`]({{ site.parameters-reference }}label-recognition-parameter/parameter-control.html#linestringlengthrange)
- - [`TextArea.TextStringLengthRange`]({{ site.parameters-reference }}text-area/parameter-control.html#textstringlengthrange)
- - [`TextArea.LineStringLengthRange`]({{ site.parameters-reference }}text-area/parameter-control.html#linestringlengthrange)
- - [`LineSpecification.LineStringLengthRange`]({{ site.parameters-reference }}line-specification/parameter-control.html#linestringlengthrange)
-
-- Added a new parameter `MaxLineCharacterSpacing` to limit the spacing between characters treated as one line. They are available as:
- - [`LabelRecognitionParameter.MaxLineCharacterSpacing`]({{ site.parameters-reference }}label-recognition-parameter/parameter-control.html#maxlinecharacterspacing)
- - [`TextArea.MaxLineCharacterSpacing`]({{ site.parameters-reference }}text-area/parameter-control.html#maxlinecharacterspacing)
-
-- Added parameters [`LineSpecification.FirstPoint`]({{ site.parameters-reference }}line-specification/parameter-control.html#firstpoint), [`LineSpecification.SecondPoint`]({{ site.parameters-reference }}line-specification/parameter-control.html#secondpoint), [`LineSpecification.ThirdPoint`]({{ site.parameters-reference }}line-specification/parameter-control.html#thirdpoint), and [`LineSpecification.FourthPoint`]({{ site.parameters-reference }}line-specification/parameter-control.html#fourthpoint) to specify the coordinates of a line.
-
-- Added a new API [`appendSettingsFromFile`]({{ site.dlr_ios_api }}methods/settings.html#appendsettingsfromfile) to allow appending settings directly from a JSON file.
-
-### Improved
-
-- Improved the recognition performance.
-
-- Improved the regular expression parameter by supporting more [RegEx pattern syntaxes]({{ site.parameters-reference }}label-recognition-parameter/parameter-control.html#textregexpattern).
-
-- Improved the recognition accuracy when dealing with skewed and italics characters.
-
-- Improved the recognition accuracy for serif fonts.
-
-
-## 1.0 (02/24/2021)
-
-* Supports recognition of `A-Z`, `a-z`, `0-9`, `.`, `-`, `_`, `(blank space)`, `/` and `:` characters.
-
-* Supports text recognition from BMP, JPEG, PNG and single-page TIFF files.
-
-* Supports zonal OCR and provides three ways to localize text areas:
-
- - Manually pre-define an area in pixel units or by percentage.
-
- - Specify an area relative to the barcode zone, which allows you to recognize accompanying texts near the barcode.
-
- - Specify an area relative to a block of a certain colour or that contains text of a specified font colour. A common example would be a price tag, where the text of interest is always on a yellow square background, the yellow square can serve as the reference region.
-
-* Supports the usage of regular expressions to improve overall recognition accuracy and robustness.
diff --git a/programming-old/objectivec-swift/release-notes/ios-1.md b/programming-old/objectivec-swift/release-notes/ios-1.md
deleted file mode 100644
index 7aa72b5..0000000
--- a/programming-old/objectivec-swift/release-notes/ios-1.md
+++ /dev/null
@@ -1,76 +0,0 @@
----
-layout: default-layout
-title: iOS SDK Release Notes 1.x - Dynamsoft Label Recognition
-description: This is the release notes page of Dynamsoft Label Recognition for iOS SDK version 1.x.
-keywords: release notes, objective-c, oc, swift
-needAutoGenerateSidebar: false
-permalink: /programming/objectivec-swift/release-notes/ios-1.html
----
-
-# Release Notes - iOS 1.x
-
-## 1.2.1 (06/08/2021)
-
-### New
-
-- Added a new property [`products`]({{ site.dlr_ios_api }}class/dlr-lts-connection-parameters.html#products) to `iDLRLTSConnectionParameters`.
-- Added a new enumeration [`EnumProduct`]({{ site.enumerations }}other-enums.html#product).
-
-### Fixed
-
-- Fixed a bug of license client.
-
-
-## 1.2 (05/18/2021)
-
-### New
-
-- Added a new parameter [`LabelRecognitionParameter.Timeout`]({{ site.parameters-reference }}label-recognition-parameter/parameter-control.html#timeout). Should the recognition time pass the value of this parameter, a new error code [`DLRERR_RECOGNITION_TIMEOUT`]({{ site.enumerations }}error-code.html) will be returned.
-
-- Added a new parameter [`LabelRecognitionParameter.Pages`]({{ site.parameters-reference }}label-recognition-parameter/parameter-control.html#page) that specifies a page or a subset of pages of a single file to run the recognition process on.
-
-- Added the following error codes: [`DLRERR_TIFF_READ_FAILED`]({{ site.enumerations }}error-code.html) , [`DLRERR_PDF_READ_FAILED`]({{ site.enumerations }}error-code.html) and [`DLRERR_PDF_DLL_MISSING`]({{ site.enumerations }}error-code.html). These error codes will be returned when the recognizer fails to read a TIFF file, a PDF file, or if the PDF DLL is missing, respectively.
-
-- Added a new property [`pageNumber`]({{ site.dlr_ios_api }}dlr-result.html#pagenumber) to `iDLRResult` to identify the page on which the result is located.
-
-- Added parameters `TextStringLengthRange` and `LineStringLengthRange` that can be used to define the minimum and maximum string length when running the recognition process on a text area or a specific line, respectively. They are available as:
- - [`LabelRecognitionParameter.TextStringLengthRange`]({{ site.parameters-reference }}label-recognition-parameter/parameter-control.html#textstringlengthrange)
- - [`LabelRecognitionParameter.LineStringLengthRange`]({{ site.parameters-reference }}label-recognition-parameter/parameter-control.html#linestringlengthrange)
- - [`TextArea.TextStringLengthRange`]({{ site.parameters-reference }}text-area/parameter-control.html#textstringlengthrange)
- - [`TextArea.LineStringLengthRange`]({{ site.parameters-reference }}text-area/parameter-control.html#linestringlengthrange)
- - [`LineSpecification.LineStringLengthRange`]({{ site.parameters-reference }}line-specification/parameter-control.html#linestringlengthrange)
-
-- Added a new parameter `MaxLineCharacterSpacing` to limit the spacing between characters treated as one line. They are available as:
- - [`LabelRecognitionParameter.MaxLineCharacterSpacing`]({{ site.parameters-reference }}label-recognition-parameter/parameter-control.html#maxlinecharacterspacing)
- - [`TextArea.MaxLineCharacterSpacing`]({{ site.parameters-reference }}text-area/parameter-control.html#maxlinecharacterspacing)
-
-- Added parameters [`LineSpecification.FirstPoint`]({{ site.parameters-reference }}line-specification/parameter-control.html#firstpoint), [`LineSpecification.SecondPoint`]({{ site.parameters-reference }}line-specification/parameter-control.html#secondpoint), [`LineSpecification.ThirdPoint`]({{ site.parameters-reference }}line-specification/parameter-control.html#thirdpoint), and [`LineSpecification.FourthPoint`]({{ site.parameters-reference }}line-specification/parameter-control.html#fourthpoint) to specify the coordinates of a line.
-
-- Added a new API [`appendSettingsFromFile`]({{ site.dlr_ios_api }}methods/settings.html#appendsettingsfromfile) to allow appending settings directly from a JSON file.
-
-### Improved
-
-- Improved the recognition performance.
-
-- Improved the regular expression parameter by supporting more [RegEx pattern syntaxes]({{ site.parameters-reference }}label-recognition-parameter/parameter-control.html#textregexpattern).
-
-- Improved the recognition accuracy when dealing with skewed and italics characters.
-
-- Improved the recognition accuracy for serif fonts.
-
-
-## 1.0 (02/24/2021)
-
-* Supports recognition of `A-Z`, `a-z`, `0-9`, `.`, `-`, `_`, `(blank space)`, `/` and `:` characters.
-
-* Supports text recognition from BMP, JPEG, PNG and single-page TIFF files.
-
-* Supports zonal OCR and provides three ways to localize text areas:
-
- - Manually pre-define an area in pixel units or by percentage.
-
- - Specify an area relative to the barcode zone, which allows you to recognize accompanying texts near the barcode.
-
- - Specify an area relative to a block of a certain colour or that contains text of a specified font colour. A common example would be a price tag, where the text of interest is always on a yellow square background, the yellow square can serve as the reference region.
-
-* Supports the usage of regular expressions to improve overall recognition accuracy and robustness.
diff --git a/programming-old/objectivec-swift/release-notes/ios-2.md b/programming-old/objectivec-swift/release-notes/ios-2.md
deleted file mode 100644
index ed456c3..0000000
--- a/programming-old/objectivec-swift/release-notes/ios-2.md
+++ /dev/null
@@ -1,107 +0,0 @@
----
-layout: default-layout
-title: iOS SDK Release Notes 2.x - Dynamsoft Label Recognizer
-description: This is the release notes page of Dynamsoft Label Recognizer for iOS SDK version 2.x.
-keywords: release notes, objective-c, oc, swift
-needAutoGenerateSidebar: false
-permalink: /programming/objectivec-swift/release-notes/ios-2.html
----
-
-# Release Notes - iOS 2.x
-
-## 2.2.20 (09/29/2022)
-
-
-
-### Version Highlights
-
-
-
-{%- include release-notes/product-highlight-2.2.md -%}
-
-
-
-### Changelog
-
-#### New
-
-- Added methods in `DynamsoftLabelRecognizer` class to support video streaming recognition.
- - [`setImageSource`](../api-reference/label-recognizer.md#setimagesource): Set the source of image/video.
- - [`setLabelResultListener`](../api-reference/label-recognizer.md#setlabelresultlistener): Register a listener to receive label recognizing results.
- - [`startScanning`](../api-reference/label-recognizer.md#startscanning): Start the label recognizing processes.
- - [`stopScanning`](../api-reference/label-recognizer.md#stopscanning): Stop the label recognizing processes.
-- Added methods in `DynamsoftLabelRecognizer` class to configure settings.
- - [`initRuntimeSettings`](../api-reference/label-recognizer.md#initruntimesettings)
- - [`initRuntimeSettingsFromFile`](../api-reference/label-recognizer.md#initruntimesettingsfromfile)
- - [`outputRuntimeSettings`](../api-reference/label-recognizer.md#outputruntimesettings)
- - [`outputRuntimeSettingsFromFile`](../api-reference/label-recognizer.md#outputruntimesettingstofile)
-- Added a new recognition method [`recognizeFileInMemory`](../api-reference/label-recognizer.md#recognizefileinmemory) in `DynamsoftLabelRecognizer` class.
-- Added a protocol [`LabelResultListener`](../api-reference/label-result-listener.md) to obtain video label recognition results.
-- Added a new parameter [`timeout`](../api-reference/dlr-runtime-settings.md#timeout) to `iDLRRuntimeSettings` class.
-
-#### Rename
-
-- The following methods of `DynamsoftLabelRecognizer` class are renamed
- - Renamed `recognizeByFile` to [`recognizeFile`](../api-reference/label-recognizer.md#recognizefile)
- - Renamed `recognizeByBuffer` to [`recognizeBuffer`](../api-reference/label-recognizer.md#recognizebuffer)
- - Renamed `recognizeByImage` to [`recognizeImage`](../api-reference/label-recognizer.md#recognizeimage)
- - Renamed `outputSettingsToFile` to [`outputRuntimeSettingsToFile`](../api-reference/label-recognizer.md#outputruntimesettingstofile)
-
-#### Removed
-
-- The following methods of `DynamsoftLabelRecognizer` class are removed
- - `initLicense`. The method is replaced by `DynamsoftLicenseManager.initLicense` under `DynamsoftCore`.
- - `appendSettingsFromString`
- - `appendSettingsFromFile`
- - `clearAppendedSettings`
- - `destory`
-
-## 2.0 (08/26/2021)
-
-
-
-### Version Highlights
-
-
-
-{%- include release-notes/product-highlight-2.0.md -%}
-
-
-
-### Changelog
-
-#### New
-
-- Added auto-deskew algorithm to improve the performance on recognizing the skewed characters.
-- Added framework `DynamsoftCore.framework`. Migrated the Dynamsoft core classes from framework `DynamsoftLabelRecognizer.framework` to `DynamsoftCore.framework`.
-- Added class [`iBarcodeResult`]({{site.dlr_ios_api}}barcode-result.html) for users to interact with Dynamsoft Barcode Reader SDK.
-- Added [`iDLRRuntimeSettings`]({{site.dlr_ios_api}}dlr-runtime-settings.html) property [`dictionaryPath`]({{site.dlr_ios_api}}dlr-runtime-settings.html#dictionarypath) and [`dictionaryCorrectionThreshold`]({{site.dlr_ios_api}}dlr-runtime-settings.html#dictionarycorrectionthreshold) for users to further improve the recognizing accuracy by referencing dictionary files.
-- Added class [`iDLRDictionaryCorrectionThreshold`]({{site.dlr_ios_api}}dlr-dictionary-correction-threshold.html).
-- Added class [`iDLRFurtherModes`]({{site.dlr_ios_api}}dlr-further-modes.html) and property [`iDLRRuntimeSettings.furtherModes`]({{site.dlr_ios_api}}dlr-runtime-settings.html#furthermodes) for users to config more processing modes.
-- Added enumeration [`TextureDetectionMode`]({{ site.enumerations }}texture-detection-mode.html) and property [`iDLRFurtherModes.textureDetectionModes`]({{site.dlr_ios_api}}dlr-further-modes.html#texturedetectionmodes) for users to detect and remove the texture background.
-- Added enumeration [`ColourConversionMode`]({{ site.enumerations }}colour-conversion-mode.html) and property [`iDLRFurtherModes.colourConversionModes`]({{site.dlr_ios_api}}dlr-further-modes.html#colourconversionmodes) for users to convert color images to grayscale images in differenct ways.
-- Added enumeration [`BinarizationMode`]({{ site.enumerations }}binarization-mode.html) and property [`iDLRRuntimeSettings.binarizationModes`]({{site.dlr_ios_api}}dlr-runtime-settings.html#binarizationmodes) for users to convert grayscale images to binary images in different ways.
-- Added enumeration [`GrayscaleEnhancementMode`]({{ site.enumerations }}grayscale-enhancement-mode.html) and property [`iDLRFurtherModes.grayscaleEnhancementModes`]({{site.dlr_ios_api}}dlr-further-modes.html#grayscaleenhancementmodes) for users to enable grayscale images preprocessing.
-- Added [`characterHConfidence`]({{site.dlr_ios_api}}dlr-character-result.html#characterhconfidence), [`characterMConfidence`]({{site.dlr_ios_api}}dlr-character-result.html#charactermconfidence) and [`characterLConfidence`]({{site.dlr_ios_api}}dlr-character-result.html#characterlconfidence) properties in [`iDLRCharacterResult`]({{site.dlr_ios_api}}dlr-character-result.html) class so that more alternative results will be available for users.
-- Added API [`recognizeByImage`]({{site.dlr_ios_api}}label-recognizer.html#recognizebyimage).
-- Added static method [`initLicense`]({{site.dlr_ios_api}}label-recognizer.html#initlicense) to replace the old license activation APIs.
-
-#### Improved
-
-- Improved the neural network performance by replacing Caffe engine with OpenCV DNN engine.
-
-#### Fixed
-
-- Fixed a bug that might cause wrong line number matching when using [`LineSpecification.LineNumber`]({{ site.parameters-reference }}line-specification/parameter-control.html#linenumber).
-
-#### API Changes
-
-- Modified the parameter type of the method [`UpdateReferenceRegionFromBarcodeResults`]({{site.dlr_ios_api}}label-recognizer.html#updatereferenceregionfrombarcoderesults) from `NSArray*` to `NSArray*`.
-- Modified the parameters [`LabelRecognizerParameter.LetterHeightRange`]({{ site.parameters-reference }}label-recognition-parameter/parameter-control.html#letterheightrange) and [`TextArea.LetterHeightRange`]({{ site.parameters-reference }}text-area/parameter-control.html#letterheightrange). The value unit of the parameters are modified from percentage to thousandth. The available range of the value and the default value are updated as well.
-- Renamed framework `DynamsoftLabelRecognition` to `DynamsoftLableRecognizer`.
-- Renamed protocol `DLRLTSLicenseVerificationDelegate` to `DLRLicenseVerificationDelegate`.
-- Renamed protocol method `DLRLTSLicenseVerificationCallback` to `DLRLicenseVerificationCallback`.
-- Removed property `license`.
-- Removed method `initWithLicense`.
-- Removed method `initLicenseFromLTS`.
-- Removed class `iDLRLTSConnectionParameters`.
diff --git a/programming-old/objectivec-swift/samples-v2.2.20.md b/programming-old/objectivec-swift/samples-v2.2.20.md
deleted file mode 100644
index 02b0b8e..0000000
--- a/programming-old/objectivec-swift/samples-v2.2.20.md
+++ /dev/null
@@ -1,33 +0,0 @@
----
-layout: default-layout
-title: iOS Samples - Dynamsoft Label Recognizer
-description: This is the iOS samples page of Dynamsoft Label Recognizer.
-keywords: samples, iOS
-needAutoGenerateSidebar: true
-permalink: /programming/objectivec-swift/samples-v2.2.20.html
----
-
-# Demo and Samples
-
-## Samples
-
-| Name | Description |
-| ---- | ----------- |
-| [HelloWorld](hello-world-sample.md) | The simplest video streaming text scanner. |
-| [MRZScanner](mrz-sample.md) | An example shows how to use Dynamsoft Label Recognizer on scanning MRZ. |
-
-Before you start viewing the samples, the following concepts may help you understand how to get started with Dynamsoft Label Recognizer.
-
-### License
-
-A network connection is required to verify the trial license in the samples. You can request a 30-day trial license via the [Request a Trial License](https://www.dynamsoft.com/customer/license/trialLicense?product=dlr&utm_source=docs&package=ios){:target="_blank"} link. If you download the [Installation Package](https://www.dynamsoft.com/label-recognition/downloads/?product=dlr&utm_source=docs&package=ios), it comes with a 30-day trial license by default.
-
-### Video Text Line Recognizing
-
-Most of the Dynamsoft Label Recognizer mobile samples are designed for video text recognizing. Dynamsoft Camera Enhancer (DCE) is applied to the video streaming scanning samples. The following features in the samples are powered by DCE:
-
-- Capture video frames for text recognition.
-- Specify a scan region.
-- Highlighting the recognized text areas.
-
-View the [API reference](api-reference/camera-enhancer/index.md) for more details
diff --git a/programming-old/objectivec-swift/user-guide-code-snippets.md b/programming-old/objectivec-swift/user-guide-code-snippets.md
deleted file mode 100644
index ca30ce1..0000000
--- a/programming-old/objectivec-swift/user-guide-code-snippets.md
+++ /dev/null
@@ -1,208 +0,0 @@
----
-layout: default-layout
-title: iOS User Guide Code Snippet - Dynamsoft Label Recognizer
-description: This is a supplement to the user guide page of Dynamsoft Label Recognizer for iOS SDK.
-keywords: a, user guide supplement
-needAutoGenerateSidebar: true
-permalink: /programming/objectivec-swift/user-guide-code-snippets.html
-ignore: true
----
-
-# Dynamsoft Label Recognizer - iOS User Guide Code Snippets
-
-> You are viewing a history document page of Dynamsoft Label Recognizer iOS v1.2.1.
-
-## Load Photo from Photo Gallery and OCR
-The following code snippet showcases a simple application that contains three main components: an image viewer, a button to load a photo from the photo gallery, and another button to OCR the photo.
-
-Objective-C
-
-```objc
-#import "ViewController.h"
-#import
-#import
-
-@interface ViewController ()
-@property (nonatomic, strong) IBOutlet UIImageView *rectLayerImage;
-@property (nonatomic, strong) UIButton *openGalleryButton;
-@property (nonatomic, strong) UIButton *readDLRButton;
-@end
-
-@implementation ViewController
-
-#pragma mark - Open up Photo Gallery
-/* Uses the UIImagePickerController library to display the photo gallery*/
--(IBAction)showLibraryAction:(id)sender
-{
- UIImagePickerController *imagePickController=[[UIImagePickerController alloc]init];
- imagePickController.sourceType=UIImagePickerControllerSourceTypePhotoLibrary;
- imagePickController.delegate=self;
- imagePickController.allowsEditing=FALSE;
- [self presentViewController:imagePickController animated:YES completion:nil];
-}
-
-#pragma mark - OCR the photo using DLR
--(IBAction)readImageDLR:(id)sender
-{
- /* First, image needs to be converted to a byte stream in order to generate the iDLRImageData for the recognizeByBuffer method. */
- CGDataProviderRef provider = CGImageGetDataProvider(_rectLayerImage.image.CGImage);
- NSData* data = (id)CFBridgingRelease(CGDataProviderCopyData(provider));
- NSUInteger bytesPerPixel = 4;
- NSUInteger stride = bytesPerPixel * _rectLayerImage.image.size.width; // bytes per row
-
- // Generating the iDLRImageData object using the image data
- iDLRImageData* DLRdata = [[iDLRImageData alloc] init];
- DLRdata.bytes = data;
- DLRdata.format = EnumDLRImagePixelFormatARGB8888;
- DLRdata.width = _rectLayerImage.image.size.width;
- DLRdata.height = _rectLayerImage.image.size.height;
- DLRdata.stride = stride;
- /*NSString *localFilePath = _imageURL.absoluteString;
- NSLog(@"localFilePath: %@",localFilePath); // check that the path is valid via the console*/
-
- // Initialize the DLR instance - using initLicense since we are using a trial key.
- DynamsoftLabelRecognizer *recognizer;
- recognizer = [[DynamsoftLabelRecognizer alloc] initWithLicense:@"t0068UwAAAJJAsvaTWDbWVqODE9awtia4Ijv6yoby/tlUTABTvsGsjlZzcANX3FAvxZdCFOAWdH0YzkDLH34F047k39kB8F8="];
-
- NSError __autoreleasing * error;
-
- // Get the results using the recognizeByBuffer method (recognizeByFile currently not working)
- //result = [recognizer recognizeByFile:localFilePath templateName:@"" error:&error];
- NSArray* results = [recognizer recognizeByBuffer:DLRdata templateName:@"" error:&error];
- NSString *msgText = @"";
-
- for (NSInteger i = 0; i < [results count]; i++) {
- for (iDLRLineResult* lineResult in results[i].lineResults) {
- msgText = [msgText stringByAppendingString:[NSString stringWithFormat:@"\nValue: %@\n",lineResult.text]];
- }
- }
- NSLog(@"msgText.%@",msgText); // Printing the DLR result in the debugger console
-
- _readDLRButton.enabled=FALSE;
-}
-
-#pragma mark - Loading Image into Image Viewer once selected.
--(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
-{
- UIImage *image=[info objectForKey:UIImagePickerControllerEditedImage]; // Get edited image
- if(image==nil)
- {
- image = [info objectForKey:UIImagePickerControllerOriginalImage]; // If not edited, grab original image
- }
-
- _rectLayerImage.image=image;
-
- // Get the image URL to make the file path string
- //_imageURL = [info valueForKey:(@"UIImagePickerControllerReferenceURL")];
-
- _openGalleryButton.enabled=TRUE;
-
- [self dismissViewControllerAnimated:YES completion:nil];
-}
-
-#pragma mark - Memory warning
-
-- (void)didReceiveMemoryWarning
-{
- [super didReceiveMemoryWarning];
- // Release any cached data, images, etc that aren't in use.
-}
-
-#pragma mark - Creating the main vertical stack view
-- (UIStackView*)createStackView
-{
- UIStackView *stack = [[UIStackView alloc] init];
- stack.translatesAutoresizingMaskIntoConstraints = NO;
- stack.distribution = UIStackViewDistributionEqualSpacing;
- stack.axis = UIAxisVertical;
- stack.spacing = 30;
- return stack;
-}
-
-#pragma mark - Creating the button horizontal stack view
-- (UIStackView*)createButtonStackView
-{
- UIStackView *stack = [[UIStackView alloc] init];
- stack.distribution = UIStackViewDistributionFillEqually;
- stack.alignment = UIStackViewAlignmentFill;
- stack.spacing = 9;
- return stack;
-}
-
-#pragma mark - View lifecycle
-
-- (void)viewDidLoad
-{
- [super viewDidLoad];
-
- // Create the main stack view and add it to the viewer, and declare its constraints.
- UIStackView* stackView = [self createStackView];
-
- [self.view addSubview:stackView];
- [stackView.heightAnchor constraintEqualToConstant:self.view.bounds.size.height - 100].active = true;
- [stackView.widthAnchor constraintEqualToConstant:self.view.bounds.size.width - 40].active = true;
- [stackView.centerXAnchor constraintEqualToAnchor:self.view.centerXAnchor].active = true;
- [stackView.centerYAnchor constraintEqualToAnchor:self.view.centerYAnchor].active = true;
-
- // Create the main image view to display the image selected
- _rectLayerImage =[[UIImageView alloc] initWithFrame:self.view.bounds];
-
- // Creating the load image button and defining its action
- _openGalleryButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
- [_openGalleryButton addTarget:self action:@selector(showLibraryAction:) forControlEvents:(UIControlEventTouchUpInside)];
- [_openGalleryButton setFrame:(CGRectMake(0, self.view.bounds.size.height * 0.6, self.view.bounds.size.width * 0.6, self.view.bounds.size.height))];
- [_openGalleryButton setTitle:@"Load an Image" forState:UIControlStateNormal];
- [_openGalleryButton setExclusiveTouch:YES];
- _openGalleryButton.translatesAutoresizingMaskIntoConstraints = NO;
-
- // Creating the DLR button and defining its action
- _readDLRButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
- [_readDLRButton addTarget:self action:@selector(readImageDLR:) forControlEvents:(UIControlEventTouchUpInside)];
- [_readDLRButton setFrame:(CGRectMake(0, self.view.bounds.size.height * 0.6, self.view.bounds.size.width * 0.6, self.view.bounds.size.height))];
- [_readDLRButton setTitle:@"DLR Me" forState:UIControlStateNormal];
- [_readDLRButton setExclusiveTouch:YES];
- _readDLRButton.translatesAutoresizingMaskIntoConstraints = NO;
-
- // Create the horizontal stack view that will hold the two buttons
- // Addding the buttons to a horizontal stack view
- UIStackView* buttonStackView = [self createButtonStackView];
- [buttonStackView addArrangedSubview:_openGalleryButton];
- [buttonStackView addArrangedSubview:_readDLRButton];
-
- // Adding the button stack view and image view to the main vertical stack view.
- [stackView addArrangedSubview:_rectLayerImage];
- [stackView addArrangedSubview:buttonStackView];
-
-
- // Ensuring that the image fits within the image viewer
- _rectLayerImage.contentMode = UIViewContentModeScaleAspectFill;
- _rectLayerImage.clipsToBounds = YES;
-}
-
-- (void)viewWillAppear:(BOOL)animated
-{
- [super viewWillAppear:animated];
-}
-
-- (void)viewDidAppear:(BOOL)animated
-{
- [super viewDidAppear:animated];
-}
-
-- (void)viewWillDisappear:(BOOL)animated
-{
- [super viewWillDisappear:animated];
-}
-
-- (void)viewDidDisappear:(BOOL)animated
-{
- [super viewDidDisappear:animated];
-}
-
-- (BOOL)shouldAutorotate:(UIInterfaceOrientation)interfaceOrientation
-{
- return YES;
-}
-
-@end
-```
diff --git a/programming-old/objectivec-swift/user-guide-mrz-v2.2.0.md b/programming-old/objectivec-swift/user-guide-mrz-v2.2.0.md
deleted file mode 100644
index 3ba4a5e..0000000
--- a/programming-old/objectivec-swift/user-guide-mrz-v2.2.0.md
+++ /dev/null
@@ -1,373 +0,0 @@
----
-layout: default-layout
-title: iOS User Guide - Dynamsoft MRZ Recognizer
-description: This is the user guide page of Dynamsoft MRZ Recognizer for iOS SDK.
-keywords: iOS, swift, objective-c, user guide
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /programming/objectivec-swift/user-guide-mrz-v2.2.0.html
----
-
-# MRZ Scanner Solution for iOS - User Guide
-
-- [MRZ Scanner Solution for iOS - User Guide](#mrz-scanner-solution-for-ios---user-guide)
- - [Requirements](#requirements)
- - [Add the Frameworks](#add-the-frameworks)
- - [Add the Frameworks Manually](#add-the-frameworks-manually)
- - [Add the Frameworks via CocoaPods](#add-the-frameworks-via-cocoapods)
- - [Build Your First Application](#build-your-first-application)
- - [Create a New Project](#create-a-new-project)
- - [Include the Frameworks](#include-the-frameworks)
- - [Initialize the License](#initialize-the-license)
- - [Initialize the Camera Module](#initialize-the-camera-module)
- - [Initialize the MRZ Recognizer](#initialize-the-mrz-recognizer)
- - [Start Recognition Process](#start-recognition-process)
- - [Obtain And Display Recognized MRZ Result](#obtain-and-display-recognized-mrz-result)
- - [Build and Run the Project](#build-and-run-the-project)
-
-## Requirements
-
-- Supported OS: iOS 11.0 or higher.
-- Supported ABI: arm64 and x86_64.
-- Development Environment: Xcode 13.0 and above (Xcode 14.1+ recommended), CocoaPods 1.11.0+
-
-## Add the Frameworks
-
-The MRZ SCanner Solution iOS Package comes with four frameworks:
-
-- **DynamsoftLabelRecognizer.xcframework**: Dynamsoft Label Recognizer (DLR) is a framework that offers APIs for text recognition from image files and camera video. **A license is required for its use.**
-- **DynamsoftCore.xcframework**: The core framework includes common basic structure and license related APIs.
-- **DynamsoftCameraEnhancer.xcframework** (Optional): Dynamsoft Camera Enhancer (DCE) is a framework of getting video frames from mobile cameras. Provides APIs for camera control, camera preview, and other advanced features. **A license is required for its advanced features such as `frame filter`, `sensor control`, `autozoom`, `enhanced focus` and `smart torch`**.
-- **MRZScanner.xcframework**: MRZScanner is a framework wrapped around the Dynamsoft Label Recognizer SDK. It is not a part of the Dynamsoft standard SDK but is completely open source. You can download it and freely modify it.
-
-There are several ways to add the SDK into your project.
-
-### Add the Frameworks Manually
-
-1. Download the solution package from the Dynamsoft website. After unzipping, four **xcframework** files can be found in the **MRZScanner\Frameworks** directory:
-
- - **MRZScanner.xcframework**
- - **DynamsoftLabelRecognizer.xcframework**
- - **DynamsoftCore.xcframework**
- - **DynamsoftCameraEnhancer.xcframework**
-
- > Note:
- > If you want to use iOS Camera SDK or your own sdk to control camera, please ignore **DynamsoftCameraEnhancer.xcframeork** in the following steps.
-
-2. Drag and drop the target frameworks from the above four **xcframework** into your Xcode project. Make sure to check Copy items if needed and Create groups to copy the framework into your project's folder.
-
-3. Click on the project settings then go to **General –> Frameworks, Libraries, and Embedded Content**. Set the **Embed** field to **Embed & Sign** for all of them.
-
-### Add the Frameworks via CocoaPods
-
-1. Add the frameworks in your **Podfile**, replace `TargetName` with your real target name.
-
- ```pod
- target 'TargetName' do
- use_frameworks!
-
- pod 'MRZScanner','2.2.20'
-
- # Remove the following line if you want to use iOS AVFoundation framework or your own sdk to control camera.
- pod 'DynamsoftCameraEnhancer','3.0.1'
-
- end
- ```
-
-2. Execute the pod command to install the frameworks and generate workspace(**HelloWorld.xcworkspace**):
-
- ```bash
- pod install
- ```
-
-## Build Your First Application
-
-The following sample will demonstrate how to create a `HelloWorld` app for recognizing MRZ from camera video input. After you complete all steps, the final application looks like this example.
-
-[Download the Objective-C sample source code](todo)
-[Download the Swift sample source code](todo)
-
->Note:
->
->- The following steps are completed in XCode 13.0
-
-### Create a New Project
-
-1. Open XCode and select New Project… in the File > New > 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 (Objective-C/Swift)
-
-4. Click on the **Next** button and select the location to save the project.
-
-5. Click on the **Create** button to finish.
-
-### Include the Frameworks
-
-Add the SDK to your new project. Please read [Add the Frameworks](#add-the-frameworks) section for more details.
-
-### Initialize the License
-
-1. Use the `DynamsoftLicenseManager` class and initialize the license in the file **AppDelegate**.
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- @interface AppDelegate ()
- ...
- - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
- ...
- [DynamsoftLicenseManager initLicense:@"DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9" verificationDelegate:self];
- }
- - (void)licenseVerificationCallback:(bool)isSuccess error:(NSError *)error {
- // Add code to execute when license verification is approved or failed.
- }
- ```
- 2.
- ```swift
- class AppDelegate: UIResponder, UIApplicationDelegate, LicenseVerificationListener {
- func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
- DynamsoftLicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9",verificationDelegate:self)
- }
- func licenseVerificationCallback(_ isSuccess: Bool, error: Error?) {
- // Add code to execute when license verification is approved or failed.
- }
- }
- ```
-
- >Note:
- >
- >- Network connection is required for the license to work.
- >- The license string here will grant you a time-limited trial license.
- >- You can request a 30-day trial license via the [Request a Trial License](https://www.dynamsoft.com/customer/license/trialLicense?product=dlr&utm_source=guide&package=ios){:target="_blank"} link
-
-### Initialize the Camera Module
-
-1. Go to the file **ViewController**, create the instances of `DynamsoftCameraEnhancer` and `DCECameraView`.
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- @interface ViewController ()
- @property (nonatomic, strong) DynamsoftCameraEnhancer *cameraEnhancer;
- @property (nonatomic, strong) DCECameraView *dceView;
- ...
- @end
- @implementation ViewController
- - (void)viewDidLoad {
- [super viewDidLoad];
- self.view.backgroundColor = [UIColor whiteColor];
- self.title = @"MRZ Scanner";
- [self configureMRZ];
- }
- - (void)configureMRZ {
- self.dceView = [[DCECameraView alloc] initWithFrame:self.view.bounds];
- self.cameraEnhancer = [[DynamsoftCameraEnhancer alloc] initWithView:self.dceView];
- [self.view addSubview:self.dceView];
- [self.cameraEnhancer open];
- }
- @end
- ```
- 2.
- ```swift
- class ViewController: BaseViewController{
- var cameraEnhancer: DynamsoftCameraEnhancer!
- var dceView: DCECameraView!
- ...
- func configureMRZ() -> Void {
- dceView = DCECameraView.init(frame: self.view.bounds)
- cameraEnhancer = DynamsoftCameraEnhancer.init(view: self.dceView)
- self.view.addSubview(self.dceView)
- cameraEnhancer.open()
- }
- }
- ```
-
-2. Define a scan region for MRZ recognition.
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- - (void)configureMRZ {
- ...
- iRegionDefinition *region = [[iRegionDefinition alloc] init];
- region.regionLeft = 5;
- region.regionRight = 95;
- region.regionTop = 40;
- region.regionBottom = 60;
- region.regionMeasuredByPercentage = 1;
- [self.cameraEnhancer setScanRegion:region error:nil];
- }
- ```
- 2.
- ```swift
- func configureMRZ() -> Void {
- ...
- let region = iRegionDefinition.init()
- region.regionLeft = 5
- region.regionRight = 95
- region.regionTop = 40
- region.regionBottom = 60
- region.regionMeasuredByPercentage = 1
- try? cameraEnhancer.setScanRegion(region)
- }
- ```
-
-### Initialize the MRZ Recognizer
-
-1. Create an instance of `MRZRecognizer`, bind it with the instance of `DynamsoftCameraEnhancer`.
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- @interface ViewController ()
- ...
- @property (nonatomic, strong) DynamsoftMRZRecognizer *mrzRecognizer;
- @end
- @implementation ViewController
- - (void)configureMRZ {
- self.mrzRecognizer = [[DynamsoftMRZRecognizer alloc] init];
- [self.mrzRecognizer setImageSource:self.cameraEnhancer];
- }
- @end
- ```
- 2.
- ```swift
- class ViewController: BaseViewController{
- var mrzRecognizer: DynamsoftMRZRecognizer!
- ...
- func configureMRZ() -> Void {
- mrzRecognizer = DynamsoftMRZRecognizer.init()
- mrzRecognizer.setImageSource(self.cameraEnhancer)
- }
- }
- ```
-
-### Start Recognition Process
-
-1. Start the MRZ recognition process and implement the `MRZResultListener` protocol to retrieve the recognized MRZ result.
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- @interface ViewController ()
- ...
- @end
- @implementation ViewController
- - (void)configureMRZ {
- [self.mrzRecognizer setMRZResultListener:self];
- [self.mrzRecognizer startScanning];
- }
- - (void)mrzResultCallback:(NSInteger)frameId imageData:(iImageData *)imageData result:(iMRZResult *)result {
- // Add your code to execute on results are received.
- }
- @end
- ```
- 2.
- ```swift
- class ViewController: BaseViewController, MRZResultListener {
- ...
- func configureMRZ() -> Void {
- ...
- mrzRecognizer.setMRZResultListener(self)
- mrzRecognizer.startScanning()
- }
- func mrzResultCallback(_ frameId: Int, imageData: iImageData, result: iMRZResult?) {
- // Add your code to execute on results are received.
- }
- }
- ```
-
-### Obtain And Display Recognized MRZ Result
-
-1. Obtain the MRZ result via `mrzResultCallback` and display the it on the `UIAlertController`.
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- @interface ViewController ()
- ...
- @end
- @implementation ViewController
- ...
- - (void)mrzResultCallback:(NSInteger)frameId imageData:(iImageData *)imageData result:(iMRZResult *)result {
- if (result != nil) {
- [self.mrzRecognizer stopScanning];
- [self showResult:result];
- }
- }
- - (void)showResult:(iMRZResult*)result {
- NSString *isParsedString = (result.isParsed) ? @"YES" : @"NO";
- NSString *isVerifiedString = (result.isVerified) ? @"YES" : @"NO";
- //combine the mrz result into a string.
- NSString *resultString = [NSString stringWithFormat:@"Document Type:%@\nIssuing State:%@\nSurname:%@\nGiven Name:%@\nDocument Id:%@\nNationlity:%@\nDate of Birth(YY-MM-DD):%@\nGender:%@\nDate of Expiry(YY-MM-DD):%@\nIs Parsed:%@\nIs Verified:%@\nMRZ Text:%@", result.docType, result.issuer, result.surname, result.givenName, result.docId, result.nationality, result.dateOfBirth, result.gender, result.dateOfExpiration, isParsedString, isVerifiedString, result.mrzText];
- //display the result
- UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Result" message:resultString preferredStyle:UIAlertControllerStyleAlert];
- UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
- [self.mrzRecognizer startScanning];
- }];
- [alertController addAction:okAction];
- [self presentViewController:alertController animated:YES completion:nil];
- }
- @end
- ```
- 1.
- ```swift
- class ViewController: BaseViewController, MRZResultListener {
- ...
- func mrzResultCallback(_ frameId: Int, imageData: iImageData, result: iMRZResult?) {
- if let result = result {
- mrzRecognizer?.stopScanning()
- showResult(result)
- }
- }
- func showResult(_ result: iMRZResult) {
- let isParsedString = result.isParsed ? "YES" : "NO"
- let isVerifiedString = result.isVerified ? "YES" : "NO"
- let resultString = """
- Document Type: \(result.docType)
- Issuing State: \(result.issuer)
- Surname: \(result.surname)
- Given Name: \(result.givenName)
- Document Id: \(result.docId)
- Nationlity: \(result.nationality)
- Date of Birth(YY-MM-DD): \(result.dateOfBirth)
- Gender: \(result.gender)
- Date of Expiry(YY-MM-DD): \(result.dateOfExpiration)
- Is Parsed: \(isParsedString)
- Is Verified: \(isVerifiedString)
- MRZ Text: \(result.mrzText)
- """
- let alertController = UIAlertController(title: "Result", message: resultString, preferredStyle: .alert)
- let okAction = UIAlertAction(title: "OK", style: .default) { [weak self] (_) in
- self?.mrzRecognizer?.startScanning()
- }
- alertController.addAction(okAction)
- present(alertController, animated: true, completion: nil)
- }
- }
- ```
-
-### Build and Run the Project
-
-1. Select the device that you want to run your app on.
-2. Run the project, then your app will be installed on your device.
diff --git a/programming-old/objectivec-swift/user-guide-mrz.md b/programming-old/objectivec-swift/user-guide-mrz.md
deleted file mode 100644
index efce527..0000000
--- a/programming-old/objectivec-swift/user-guide-mrz.md
+++ /dev/null
@@ -1,373 +0,0 @@
----
-layout: default-layout
-title: iOS User Guide - Dynamsoft MRZ Recognizer
-description: This is the user guide page of Dynamsoft MRZ Recognizer for iOS SDK.
-keywords: iOS, swift, objective-c, user guide
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /programming/objectivec-swift/user-guide-mrz.html
----
-
-# MRZ Scanner Solution for iOS - User Guide
-
-- [MRZ Scanner Solution for iOS - User Guide](#mrz-scanner-solution-for-ios---user-guide)
- - [Requirements](#requirements)
- - [Add the Frameworks](#add-the-frameworks)
- - [Add the Frameworks Manually](#add-the-frameworks-manually)
- - [Add the Frameworks via CocoaPods](#add-the-frameworks-via-cocoapods)
- - [Build Your First Application](#build-your-first-application)
- - [Create a New Project](#create-a-new-project)
- - [Include the Frameworks](#include-the-frameworks)
- - [Initialize the License](#initialize-the-license)
- - [Initialize the Camera Module](#initialize-the-camera-module)
- - [Initialize the MRZ Recognizer](#initialize-the-mrz-recognizer)
- - [Start Recognition Process](#start-recognition-process)
- - [Obtain And Display Recognized MRZ Result](#obtain-and-display-recognized-mrz-result)
- - [Build and Run the Project](#build-and-run-the-project)
-
-## Requirements
-
-- Supported OS: iOS 11.0 or higher.
-- Supported ABI: arm64 and x86_64.
-- Development Environment: Xcode 13.0 and above (Xcode 14.1+ recommended), CocoaPods 1.11.0+
-
-## Add the Frameworks
-
-The MRZ SCanner Solution iOS Package comes with four frameworks:
-
-- **DynamsoftLabelRecognizer.xcframework**: Dynamsoft Label Recognizer (DLR) is a framework that offers APIs for text recognition from image files and camera video. **A license is required for its use.**
-- **DynamsoftCore.xcframework**: The core framework includes common basic structure and license related APIs.
-- **DynamsoftCameraEnhancer.xcframework** (Optional): Dynamsoft Camera Enhancer (DCE) is a framework of getting video frames from mobile cameras. Provides APIs for camera control, camera preview, and other advanced features. **A license is required for its advanced features such as `frame filter`, `sensor control`, `autozoom`, `enhanced focus` and `smart torch`**.
-- **MRZScanner.xcframework**: MRZScanner is a framework wrapped around the Dynamsoft Label Recognizer SDK. It is not a part of the Dynamsoft standard SDK but is completely open source. You can download it and freely modify it.
-
-There are several ways to add the SDK into your project.
-
-### Add the Frameworks Manually
-
-1. Download the solution package from the Dynamsoft website. After unzipping, four **xcframework** files can be found in the **MRZScanner\Frameworks** directory:
-
- - **MRZScanner.xcframework**
- - **DynamsoftLabelRecognizer.xcframework**
- - **DynamsoftCore.xcframework**
- - **DynamsoftCameraEnhancer.xcframework**
-
- > Note:
- > If you want to use iOS Camera SDK or your own sdk to control camera, please ignore **DynamsoftCameraEnhancer.xcframeork** in the following steps.
-
-2. Drag and drop the target frameworks from the above four **xcframework** into your Xcode project. Make sure to check Copy items if needed and Create groups to copy the framework into your project's folder.
-
-3. Click on the project settings then go to **General –> Frameworks, Libraries, and Embedded Content**. Set the **Embed** field to **Embed & Sign** for all of them.
-
-### Add the Frameworks via CocoaPods
-
-1. Add the frameworks in your **Podfile**, replace `TargetName` with your real target name.
-
- ```pod
- target 'TargetName' do
- use_frameworks!
-
- pod 'MRZScanner','2.2.20'
-
- # Remove the following line if you want to use iOS AVFoundation framework or your own sdk to control camera.
- pod 'DynamsoftCameraEnhancer','3.0.1'
-
- end
- ```
-
-2. Execute the pod command to install the frameworks and generate workspace(**HelloWorld.xcworkspace**):
-
- ```bash
- pod install
- ```
-
-## Build Your First Application
-
-The following sample will demonstrate how to create a `HelloWorld` app for recognizing MRZ from camera video input. After you complete all steps, the final application looks like this example.
-
-[Download the Objective-C sample source code](todo)
-[Download the Swift sample source code](todo)
-
->Note:
->
->- The following steps are completed in XCode 13.0
-
-### Create a New Project
-
-1. Open XCode and select New Project… in the File > New > 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 (Objective-C/Swift)
-
-4. Click on the **Next** button and select the location to save the project.
-
-5. Click on the **Create** button to finish.
-
-### Include the Frameworks
-
-Add the SDK to your new project. Please read [Add the Frameworks](#add-the-frameworks) section for more details.
-
-### Initialize the License
-
-1. Use the `DynamsoftLicenseManager` class and initialize the license in the file **AppDelegate**.
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- @interface AppDelegate ()
- ...
- - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
- ...
- [DynamsoftLicenseManager initLicense:@"DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9" verificationDelegate:self];
- }
- - (void)licenseVerificationCallback:(bool)isSuccess error:(NSError *)error {
- // Add code to execute when license verification is approved or failed.
- }
- ```
- 2.
- ```swift
- class AppDelegate: UIResponder, UIApplicationDelegate, LicenseVerificationListener {
- func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
- DynamsoftLicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9",verificationDelegate:self)
- }
- func licenseVerificationCallback(_ isSuccess: Bool, error: Error?) {
- // Add code to execute when license verification is approved or failed.
- }
- }
- ```
-
- >Note:
- >
- >- Network connection is required for the license to work.
- >- The license string here will grant you a time-limited trial license.
- >- You can request a 30-day trial license via the [Request a Trial License](https://www.dynamsoft.com/customer/license/trialLicense?product=dlr&utm_source=guide&package=ios){:target="_blank"} link
-
-### Initialize the Camera Module
-
-1. Go to the file **ViewController**, create the instances of `DynamsoftCameraEnhancer` and `DCECameraView`.
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- @interface ViewController ()
- @property (nonatomic, strong) DynamsoftCameraEnhancer *cameraEnhancer;
- @property (nonatomic, strong) DCECameraView *dceView;
- ...
- @end
- @implementation ViewController
- - (void)viewDidLoad {
- [super viewDidLoad];
- self.view.backgroundColor = [UIColor whiteColor];
- self.title = @"MRZ Scanner";
- [self configureMRZ];
- }
- - (void)configureMRZ {
- self.dceView = [[DCECameraView alloc] initWithFrame:self.view.bounds];
- self.cameraEnhancer = [[DynamsoftCameraEnhancer alloc] initWithView:self.dceView];
- [self.view addSubview:self.dceView];
- [self.cameraEnhancer open];
- }
- @end
- ```
- 2.
- ```swift
- class ViewController: BaseViewController{
- var cameraEnhancer: DynamsoftCameraEnhancer!
- var dceView: DCECameraView!
- ...
- func configureMRZ() -> Void {
- dceView = DCECameraView.init(frame: self.view.bounds)
- cameraEnhancer = DynamsoftCameraEnhancer.init(view: self.dceView)
- self.view.addSubview(self.dceView)
- cameraEnhancer.open()
- }
- }
- ```
-
-2. Define a scan region for MRZ recognition.
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- - (void)configureMRZ {
- ...
- iRegionDefinition *region = [[iRegionDefinition alloc] init];
- region.regionLeft = 5;
- region.regionRight = 95;
- region.regionTop = 40;
- region.regionBottom = 60;
- region.regionMeasuredByPercentage = 1;
- [self.cameraEnhancer setScanRegion:region error:nil];
- }
- ```
- 2.
- ```swift
- func configureMRZ() -> Void {
- ...
- let region = iRegionDefinition.init()
- region.regionLeft = 5
- region.regionRight = 95
- region.regionTop = 40
- region.regionBottom = 60
- region.regionMeasuredByPercentage = 1
- try? cameraEnhancer.setScanRegion(region)
- }
- ```
-
-### Initialize the MRZ Recognizer
-
-1. Create an instance of `MRZRecognizer`, bind it with the instance of `DynamsoftCameraEnhancer`.
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- @interface ViewController ()
- ...
- @property (nonatomic, strong) DynamsoftMRZRecognizer *mrzRecognizer;
- @end
- @implementation ViewController
- - (void)configureMRZ {
- self.mrzRecognizer = [[DynamsoftMRZRecognizer alloc] init];
- [self.mrzRecognizer setImageSource:self.cameraEnhancer];
- }
- @end
- ```
- 2.
- ```swift
- class ViewController: BaseViewController{
- var mrzRecognizer: DynamsoftMRZRecognizer!
- ...
- func configureMRZ() -> Void {
- mrzRecognizer = DynamsoftMRZRecognizer.init()
- mrzRecognizer.setImageSource(self.cameraEnhancer)
- }
- }
- ```
-
-### Start Recognition Process
-
-1. Start the MRZ recognition process and implement the `MRZResultListener` protocol to retrieve the recognized MRZ result.
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- @interface ViewController ()
- ...
- @end
- @implementation ViewController
- - (void)configureMRZ {
- [self.mrzRecognizer setMRZResultListener:self];
- [self.mrzRecognizer startScanning];
- }
- - (void)mrzResultCallback:(NSInteger)frameId imageData:(iImageData *)imageData result:(iMRZResult *)result {
- // Add your code to execute on results are received.
- }
- @end
- ```
- 2.
- ```swift
- class ViewController: BaseViewController, MRZResultListener {
- ...
- func configureMRZ() -> Void {
- ...
- mrzRecognizer.setMRZResultListener(self)
- mrzRecognizer.startScanning()
- }
- func mrzResultCallback(_ frameId: Int, imageData: iImageData, result: iMRZResult?) {
- // Add your code to execute on results are received.
- }
- }
- ```
-
-### Obtain And Display Recognized MRZ Result
-
-1. Obtain the MRZ result via `mrzResultCallback` and display the it on the `UIAlertController`.
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- @interface ViewController ()
- ...
- @end
- @implementation ViewController
- ...
- - (void)mrzResultCallback:(NSInteger)frameId imageData:(iImageData *)imageData result:(iMRZResult *)result {
- if (result != nil) {
- [self.mrzRecognizer stopScanning];
- [self showResult:result];
- }
- }
- - (void)showResult:(iMRZResult*)result {
- NSString *isParsedString = (result.isParsed) ? @"YES" : @"NO";
- NSString *isVerifiedString = (result.isVerified) ? @"YES" : @"NO";
- //combine the mrz result into a string.
- NSString *resultString = [NSString stringWithFormat:@"Document Type:%@\nIssuing State:%@\nSurname:%@\nGiven Name:%@\nDocument Id:%@\nNationlity:%@\nDate of Birth(YY-MM-DD):%@\nGender:%@\nDate of Expiry(YY-MM-DD):%@\nIs Parsed:%@\nIs Verified:%@\nMRZ Text:%@", result.docType, result.issuer, result.surname, result.givenName, result.docId, result.nationality, result.dateOfBirth, result.gender, result.dateOfExpiration, isParsedString, isVerifiedString, result.mrzText];
- //display the result
- UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Result" message:resultString preferredStyle:UIAlertControllerStyleAlert];
- UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
- [self.mrzRecognizer startScanning];
- }];
- [alertController addAction:okAction];
- [self presentViewController:alertController animated:YES completion:nil];
- }
- @end
- ```
- 1.
- ```swift
- class ViewController: BaseViewController, MRZResultListener {
- ...
- func mrzResultCallback(_ frameId: Int, imageData: iImageData, result: iMRZResult?) {
- if let result = result {
- mrzRecognizer?.stopScanning()
- showResult(result)
- }
- }
- func showResult(_ result: iMRZResult) {
- let isParsedString = result.isParsed ? "YES" : "NO"
- let isVerifiedString = result.isVerified ? "YES" : "NO"
- let resultString = """
- Document Type: \(result.docType)
- Issuing State: \(result.issuer)
- Surname: \(result.surname)
- Given Name: \(result.givenName)
- Document Id: \(result.docId)
- Nationlity: \(result.nationality)
- Date of Birth(YY-MM-DD): \(result.dateOfBirth)
- Gender: \(result.gender)
- Date of Expiry(YY-MM-DD): \(result.dateOfExpiration)
- Is Parsed: \(isParsedString)
- Is Verified: \(isVerifiedString)
- MRZ Text: \(result.mrzText)
- """
- let alertController = UIAlertController(title: "Result", message: resultString, preferredStyle: .alert)
- let okAction = UIAlertAction(title: "OK", style: .default) { [weak self] (_) in
- self?.mrzRecognizer?.startScanning()
- }
- alertController.addAction(okAction)
- present(alertController, animated: true, completion: nil)
- }
- }
- ```
-
-### Build and Run the Project
-
-1. Select the device that you want to run your app on.
-2. Run the project, then your app will be installed on your device.
diff --git a/programming-old/objectivec-swift/user-guide-v1.2.1.md b/programming-old/objectivec-swift/user-guide-v1.2.1.md
deleted file mode 100644
index 6c99b94..0000000
--- a/programming-old/objectivec-swift/user-guide-v1.2.1.md
+++ /dev/null
@@ -1,137 +0,0 @@
----
-layout: default-layout
-title: iOS User Guide - Dynamsoft Label Recognition
-description: This is the user guide page of Dynamsoft Label Recognition for iOS SDK.
-keywords: a, user guide
-needAutoGenerateSidebar: true
-permalink: /programming/objectivec-swift/user-guide-v1.2.1.html
----
-
-# Dynamsoft Label Recognition - iOS User Guide
-
-## System Requirements
-
-- Operating systems:
- - macOS 10.11 and above.
- - iOS 9.0 and above.
-- Environment: Xcode 7.1 - 11.5 and above.
-
-- Recommended: macOS 10.15.4+, Xcode 11.5+, iOS 11+
-
-
-## Installation
-
-Download the Dynamsoft Label Recognition SDK from the [Dynamsoft website](https://www.dynamsoft.com/label-recognition/downloads) and unzip the package. The trial package includes a free trial license valid for 30 days.
-
-## Getting Started: HelloWorld
-
-1. Create a new iOS project in Xcode.
-2. Add the Dynamsoft Label Recognition framework to your project
-
- - Unzip the downloaded ZIP file `dlr-ios-1.0.zip` and you'll see `DynamsoftLabelRecognition.framework`.
-
- - Drag and drop the framework into your Xcode project. Make sure to check Copy items if needed and Create groups to copy the framework into your project's folder.
-
-3. Add the required `.tbd/.dylib` file to your project.
- Go to the `Build Phases` tab of your Xcode project, under `Link Binary with Libraries` section, click + button. Search for the file `libc++.tbd`, select it and click Add button. Then the libc++.tbd file will be copied to your project.
-
-4. Import the framework's header in the file ViewController.m. For a basic project, most of the operations will be defined there. Should you choose to use the Label Recognition API in another file, please include the import statement there as well.
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- #import
- ```
- 2.
- ```swift
- import DynamsoftLabelRecognition
- ```
-
-5. After setting up the basic project, let's now move on to coding.
-
- The following code demonstrates initializing DynamsoftLabelRecognition and starting the text recognition process. Overall, this piece of code will not do anything as is, but once integrated with an image viewer and a few buttons in the view controller, you can easily set up a simple iOS app that allows the user to OCR any image from their photo gallery. If you are interested in the larger code snippet, please refer to [User Guide Code Snippets](user-guide-code-snippets.md).
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- #import "ViewController.h"
- #import
- @interface ViewController ()
- @end
- @implementation ViewController
- -(IBAction)readImageDLR:(id)sender
- {
- // First, image needs to be converted to a byte stream in order to generate the iDLRImageData for the recognizeByBuffer method.
- CGDataProviderRef provider = CGImageGetDataProvider(_rectLayerImage.image.CGImage);
- NSData* data = (id)CFBridgingRelease(CGDataProviderCopyData(provider));
- NSUInteger bytesPerPixel = 4;
- NSUInteger stride = bytesPerPixel * _rectLayerImage.image.size.width; // bytes per row
- // Generating the iDLRImageData object for recognizeByBuffer using the image data
- iDLRImageData* DLRdata = [[iDLRImageData alloc] init];
- DLRdata.bytes = data;
- DLRdata.format = EnumDLRImagePixelFormatARGB8888;
- DLRdata.width = _rectLayerImage.image.size.width;
- DLRdata.height = _rectLayerImage.image.size.height;
- DLRdata.stride = stride;
- /* If you choose to use the recognizeByFile method instead, extract the path of the image that was just loaded in.
- NSURL* _imageURL = [info valueForKey:(@"UIImagePickerControllerReferenceURL")]; // this line should be called in the callback function of UIImagePickerController
- NSString *localFilePath = _imageURL.absoluteString;
- NSLog(@"localFilePath: %@",localFilePath); // check that the path is valid via the console */
- // Initialize the DLR instance - using initLicense since we are using a trial key.
- DynamsoftLabelRecognition *recognizer;
- recognizer = [[DynamsoftLabelRecognition alloc] initWithLicense:@"t0068MgAAAE4Y***kiJWrYg="];
- NSError __autoreleasing * error;
- // Get the results using the recognizeByBuffer method
- NSArray* results = [recognizer recognizeByBuffer:DLRdata templateName:@"" error:&error];
- //If using recognizeByFile instead, it's called as follows
- //result = [recognizer recognizeByFile:localFilePath templateName:@"" error:&error];
- NSString *msgText = @"";
- for (NSInteger i = 0; i < [results count]; i++) {
- for (iDLRLineResult* lineResult in results[i].lineResults) {
- msgText = [msgText stringByAppendingString:[NSString stringWithFormat:@"\nValue: %@\n",lineResult.text]];
- }
- }
- NSLog(@"msgText.%@",msgText); // Printing the DLR result in the debugger console
- }
- @end
- ```
- 2.
- ```swift
- import DynamsoftLabelRecognition
- class ViewController {
- // MARK: - OCR the photo using DLR
- @IBAction func readImageDLR(_ sender: Any) {
- let provider = rectLayerImage.image.cgImage?.dataProvider
- let data = CFBridgingRelease(provider?.data) as? Data
- let bytesPerPixel = 4
- let stride = bytesPerPixel * rectLayerImage.image.size.width // bytes per row
- let DLRdata = iDLRImageData.init()
- DLRdata?.bytes = data
- DLRdata?.format = EnumDLRImagePixelFormatARGB8888
- DLRdata?.width = rectLayerImage.image.size.width
- DLRdata?.height = rectLayerImage.image.size.height
- DLRdata?.stride = stride
- let recognizer = DynamsoftLabelRecognition.initWithLicense(license: "t0068MgAAAE4Y***kiJWrYg=")
- var error: Error?
- let result = recognizer.recognizeByBuffer(imageData:DLRdata, templateName:"", error:&error)
- var msgText = ""
- for i in 0..<(results?.count ?? 0) {
- if let lineResults = results?[i].lineResults {
- for lineResult in lineResults {
- guard let lineResult = lineResult as? iDLRLineResult else {
- continue
- }
- msgText = msgText + "\nValue: \(lineResult.text)\n"
- }
- }
- }
- print("msgText.\(msgText)") // Printing the DLR result in the debugger console
- }
- }
- ```
diff --git a/programming-old/objectivec-swift/user-guide-v2.0.0.md b/programming-old/objectivec-swift/user-guide-v2.0.0.md
deleted file mode 100644
index e88aa9e..0000000
--- a/programming-old/objectivec-swift/user-guide-v2.0.0.md
+++ /dev/null
@@ -1,304 +0,0 @@
----
-layout: default-layout
-title: iOS User Guide - Dynamsoft Label Recognizer
-description: This is the user guide page of Dynamsoft Label Recognizer for iOS SDK.
-keywords: iOS, swift, objective-c, user guide
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /programming/objectivec-swift/user-guide-v2.0.0.html
----
-
-# User Guide - iOS
-
-* [Requirements](#requirements)
-* [Installation](#installation)
-* [Build Your First Application](#build-your-first-application)
- * [Create a New Project](#create-a-new-project)
- * [Include the Label Recognizer Library](#include-the-label-recognizer-library)
- * [Initialize the Label Recognizer](#initialize-the-label-recognizer)
- * [Recognition Process and How to Use the Results](#recognition-process-and-how-to-use-the-results)
- * [Additional Auxiliary Steps](#additional-auxiliary-steps)
- * [Build and Run the Project](#build-and-run-the-project)
-
-## Requirements
-
-- Operating systems:
- - macOS 10.11 and above.
- - iOS 9.0 and above.
-- Environment: Xcode 7.1 - 11.5 and above.
-
-- Recommended: macOS 10.15.4+, Xcode 11.5+, iOS 11+
-
-
-## Installation
-
-If you don't have SDK yet, please go to Dynamsoft website to get it. After the sdk is decompressed, the root directory of the DLR installation package is `DynamsoftLabelRecognizer`, which is represented by `[INSTALLATION FOLDER]`.
-
-## Build Your First Application
-
-The following sample will demonstrate how to take a picture and recognize it.
-
->Note:
->- The following steps are completed in XCode 12.2
->- You can download the entire Objective-C source code from [here](https://github.com/Dynamsoft/label-recognizer-mobile-samples/tree/master/ios/HelloWorldObjc)
->- You can download the entire Swift source code from [here](https://github.com/Dynamsoft/label-recognizer-mobile-samples/tree/master/ios/HelloWorldSwift)
-
-### Create a New Project
-
-1. Open XCode and select New Project… in the File > New > New Project… menu to create a new project.
-
-2. Choose the correct template for your project. In this sample, we'll use `iOS > App`.
-
-3. When prompted, choose your product name (`DLRiOSSample`), Interface (`StoryBoard`), Language (`Swift` or `Objective-C`)
-
-4. Click on the Next button and select the location to save the project.
-
-5. Click on the Create button to finish.
-
-### Include the Label Recognizer Library
-
-1. Add the Dynamsoft Label Recognizer framework to your project.
-
- - Drag and drop the frameworks(`[INSTALLATION FOLDER]\DynamsoftCore.framework` and `[INSTALLATION FOLDER]\DynamsoftLabelRecognizer.framework`) into your Xcode project. Make sure to check `Copy items if needed` and `Create groups` to copy the framework into your project's folder.
- - Click on the project, go to the `General` > `Frameworks, Libraries, and Embedded Content`, set the embed type to `Embed & Sign`.
-
-2. Import the framework in the file `ViewController.m`
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- #import
- ```
- 2.
- ```swift
- import DynamsoftLabelRecognizer
- ```
-
-### Initialize the Label Recognizer
-
-1. Initialize the license connection parameters.
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- [DynamsoftLabelRecognizer initLicense:@"DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSIsInByb2R1Y3RzIjoyfQ==" verificationDelegate:self];
- ```
- 2.
- ```swift
- DynamsoftLabelRecognizer.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSIsInByb2R1Y3RzIjoyfQ==",verificationDelegate:self)
- ```
-
- >Note:
- >- Network connection is required for the license to work.
- >- "DLS2***" is a default free public trial license used in the sample.
- >- You can request a 30-day trial license via the [Request a Trial License](https://www.dynamsoft.com/customer/license/trialLicense?product=dlr&utm_source=guide&package=ios){:target="_blank"} link
-
-2. Create an instance of Dynamsoft Label Recognizer
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- DynamsoftLabelRecognizer *dlr = [[DynamsoftLabelRecognizer alloc] init];
- ```
- 2.
- ```swift
- let dlr = DynamsoftLabelRecognition.init()
- ```
-
-### Recognition Process and How to Use the Results
-
-1. Recognizing text
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- NSError* error = [[NSError alloc] init];
- NSArray* results = [dlr recognizeByImage:self.imgView.image templateName:@"" error:&error];
- ```
- 2.
- ```swift
- var error : NSError? = NSError()
- let results = dlr.recognizeByBuffer(image: imgView.image!, templateName: "", error: &error)
- ```
-
- >The variable `data` represents the temporary photo taken by camera app, which will be explained later.
-
-2. Get and output the recognition results
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- NSString* msgText = @"";
- if (results.count > 0) {
- for (NSInteger i = 0; i < [results count]; i++) {
- for (iDLRLineResult* lineResult in results[i].lineResults) {
- msgText = [msgText stringByAppendingString:[NSString stringWithFormat:@"\nValue: %@\n",lineResult.text]];
- }
- }
- }else{
- msgText = error.code == 0 ? @"No data detected." : error.userInfo[NSUnderlyingErrorKey];
- }
- ```
- 2.
- ```swift
- var msgText:String = ""
- for item in results
- {
- if item.lineResults!.count > 0 {
- for lineResult in item.lineResults! {
- msgText = "\(msgText)\nValue: \(lineResult.text ?? "nil")\n"
- }
- }
- }
- ```
-
- The recognition results of SDK are organized into a four-tier structure:
- - `iDLRResult[]` corresponds to the results of an `image`
- - `iDLRResult` corresponds to the result of a `TextArea` (also called Label)
- - `iDLRLineResult` corresponds to the result of each `TextLine` in the Label
- - `iDLRCharacterResult` corresponds to the result of each `Character` in the `TextLine`
-
- The structure is shown in the figure below:
-
-
-
-
Figure 1 – DLR Result Structure
-
-
-### Additional Auxiliary Steps
-
-1. Change the class declaration and add the property `imagePickerController`
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- @interface ViewController : UIViewController
- @property (nonatomic) UIImagePickerController *imagePickerController;
- @end
- ```
- 2.
- ```swift
- class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
- var imagePickerController : UIImagePickerController?
- }
- ```
-
-2. Click on the `Main.storyboard`, add three controls(one `ImageView` and two `Buttons`)
-
-3. Select the Assistant Editor and make sure the `ViewController.m` or `ViewController.swift` is visible.
-
-4. Ctrl and drag from the `ImageView` control to the ViewController class and create the following Outlet.
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- @property (weak, nonatomic) IBOutlet UIImageView *imgView;
- ```
- 2.
- ```swift
- @IBOutlet weak var imgView: UIImageView!
- ```
-
-5. Ctrl an drag from the Button(`Take a Photo`) to the ViewController class and create the following Action.
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- - (IBAction)onTakePhoto:(id)sender {
- UIImagePickerController *imgCtrl = [[UIImagePickerController alloc]init];
- imgCtrl.sourceType = UIImagePickerControllerSourceTypeCamera;
- imgCtrl.cameraDevice = UIImagePickerControllerCameraDeviceRear;
- imgCtrl.delegate = self;
- self.imagePickerController = imgCtrl;
- [self presentViewController:imgCtrl animated:YES completion:nil];
- }
- - (void)imagePickerController:(UIImagePickerController *) picker
- didFinishPickingMediaWithInfo:(NSDictionary *) info{
- [picker dismissViewControllerAnimated:YES completion:nil];
- UIImage *img = [info objectForKey:UIImagePickerControllerOriginalImage];
- self.imgView.image = img;
- }
- ```
- 2.
- ```swift
- @IBAction func onTakePhoto(_ sender: Any) {
- imagePickerController.sourceType = .camera
- imagePickerController.cameraDevice = .rear
- imagePickerController.delegate = self
- present(imagePickerController, animated: true, completion: nil)
- }
- func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
- imgView.image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage
- self.dismiss(animated: true, completion: nil)
- }
- ```
-
-6. Ctrl an drag from the Button(`Recognize Text`) to the ViewController class and create the following Action.
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- - (IBAction)onRecognizeText:(id)sender {
- NSString* msgText = @"";
- dispatch_async(dispatch_get_global_queue(0, 0), ^{
- msgText = recognizeText();
- });
- dispatch_async(dispatch_get_main_queue(), ^{
- UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Results" message:msgText preferredStyle:UIAlertControllerStyleAlert];
- [alert addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil]];
- [self presentViewController:alert animated:YES completion:nil];
- });
- }
- ```
- 2.
- ```swift
- @IBAction func onRecognizeText(_ sender: Any) {
- var msgText:String = ""
- DispatchQueue.global().async {
- msgText = recognizeText()
- }
- DispatchQueue.main.async {
- let ac = UIAlertController(title: "Results", message: msgText, preferredStyle: .alert)
- ac.addAction(UIAlertAction(title: "Ok", style: .default, handler: nil))
- self.present(ac, animated: true, completion: nil)
- }
- }
- ```
-
- >Note: The implementation of the `recognizeText` function has been explained in [Initialize the Dynamsoft Label Recognizer](#initialize-the-dynamsoft-label-recognizer) and [Recognizing and output results](#recognizing-and-output-results).
-
-- You can download the entire Objective-C source code from [here](https://github.com/Dynamsoft/label-recognizer-mobile-samples/tree/master/ios/HelloWorldObjc)
-- You can download the entire Swift source code from [here](https://github.com/Dynamsoft/label-recognizer-mobile-samples/tree/master/ios/HelloWorldSwift)
-
-### Build and Run the Project
-
-1. Select the device that you want to run your app on.
-
-2. Click `Build and then run the current scheme` button, then XCode installs your app on your connected device and starts it.
\ No newline at end of file
diff --git a/programming-old/objectivec-swift/user-guide-v2.2.20.md b/programming-old/objectivec-swift/user-guide-v2.2.20.md
deleted file mode 100644
index a95ee62..0000000
--- a/programming-old/objectivec-swift/user-guide-v2.2.20.md
+++ /dev/null
@@ -1,359 +0,0 @@
----
-layout: default-layout
-title: iOS User Guide - Dynamsoft Label Recognizer
-description: This is the user guide page of Dynamsoft Label Recognizer for iOS SDK.
-keywords: iOS, swift, objective-c, user guide
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /programming/objectivec-swift/user-guide-v2.2.20.html
----
-
-# User Guide - iOS
-
-* [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 Library](#include-the-library)
- * [Initialize Camera Module](#initialize-the-camera-module)
- * [Initialize Label Recognizer](#initialize-the-label-recognizer)
- * [Start Recognition Process](#start-recognition-process)
- * [Obtain and Display Recognized Result](#obtain-and-display-recognized-results)
- * [Build and Run the Project](#build-and-run-the-project)
-
-## Requirements
-
-* Operating systems:
- * macOS 10.11 and above.
- * iOS 9.0 and above.
-* Environment: Xcode 7.1 - 11.5 and above.
-* Recommended: macOS 10.15.4+, Xcode 11.5+, iOS 11+
-
-## Add the SDK
-
-The Dynamsoft Label Recognizer (DLR) iOS SDK comes with three modules:
-
-* **DynamsoftLabelRecognizer.framework**: Main module. Provides APIs to recognize text from image files and camera video.
-* **DynamsoftCore.framework**: The core library of Dynamsoft's SDKs, including common basic structure and license related APIs.
-* **DynamsoftCameraEnhancer.framework** (Optional): Dynamsoft Camera Enhancer (DCE) module for getting video frames from mobile cameras. Provides APIs for camera control, camera preview, and other advanced features.
-
-There are several ways to add the SDK into your project.
-
-### Add the Library Manually
-
-1. Download the SDK package from the Dynamsoft website. After unzipping, three **framework** files can be found in the **DynamsoftLabelRecognizer\Frameworks** directory:
-
- * **DynamsoftLabelRecognizer.framework**
- * **DynamsoftCore.framework**
- * **DynamsoftCameraEnhancer.framework**
-
- > Note:
- > If you want to use iOS Camera SDK or your own sdk to control camera, please ignore **DynamsoftCameraEnhancer.framework** in the following steps.
-
-2. Drag and drop the above **frameworks** into your Xcode project. Make sure to check Copy items if needed and Create groups to copy the framework into your project's folder.
-3. Click on the project settings then go to **General –> Frameworks, Libraries, and Embedded Content**. Set the **Embed** field to **Embed & Sign** for **DynamsoftLabelRecognizer** and **DynamsoftCameraEnhancer**.
-
-### Add the Frameworks via CocoaPods
-
-1. Add the frameworks in your **Podfile**, replace `TargetName` with your real target name.
-
- ```pod
- target 'TargetName' do
- use_frameworks!
-
- pod 'DynamsoftLabelRecognizer','2.2.20'
-
- # Remove the following line if you want to use iOS AVFoundation framework or your own sdk to control camera.
- pod 'DynamsoftCameraEnhancer','3.0.1'
-
- end
- ```
-
-2. Execute the pod command to install the frameworks and generate workspace(**HelloWorld.xcworkspace**):
-
- ```bash
- pod install
- ```
-
-## Build Your First Application
-
-The following sample will demonstrate how to create a HelloWorld app for recognizing text from camera video input.
-
->Note:
->
->* The following steps are completed in XCode 12.2
->* You can download the entire Objective-C source code from [here](https://github.com/Dynamsoft/label-recognizer-mobile-samples/tree/master/ios/HelloWorldObjC)
->* You can download the entire Swift source code from [here](https://github.com/Dynamsoft/label-recognizer-mobile-samples/tree/master/ios/HelloWorldSwift)
-
-### Create a New Project
-
-1. Open XCode and select New Project… in the File > New > 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 (Objective-C/Swift)
-
-4. Click on the **Next** button and select the location to save the project.
-
-5. Click on the **Create** button to finish.
-
-### Include the Library
-
-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 the file **AppDelegate**.
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- @interface AppDelegate ()
- ...
- - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
- ...
- [DynamsoftLicenseManager initLicense:@"Put Your License Here" verificationDelegate:self];
- }
- - (void)licenseVerificationCallback:(bool)isSuccess error:(NSError *)error {
- // Add code to execute when license verification is approved or failed.
- }
- ```
- 2.
- ```swift
- class AppDelegate: UIResponder, UIApplicationDelegate, LicenseVerificationListener {
- func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
- DynamsoftLicenseManager.initLicense("Put Your License Here",verificationDelegate:self)
- }
- func licenseVerificationCallback(_ isSuccess: Bool, error: Error?) {
- // Add code to execute when license verification is approved or failed.
- }
- }
- ```
-
- >Note:
- >
- >* Network connection is required for the license to work.
- >* The license string here will grant you a time-limited trial license.
- >* You can request a 30-day trial license via the [Request a Trial License](https://www.dynamsoft.com/customer/license/trialLicense?product=dlr&utm_source=guide&package=ios){:target="_blank"} link
-
-### Initialize the Camera Module
-
-1. Go to the file **ViewController**, create the instances of CameraEnhancer and CameraView.
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- @property (nonatomic, strong) DynamsoftCameraEnhancer *cameraEnhancer;
- @property (nonatomic, strong) DCECameraView *dceView;
- - (void)configureDLR {
- self.dceView = [[DCECameraView alloc] initWithFrame:self.view.bounds];
- self.cameraEnhancer = [[DynamsoftCameraEnhancer alloc] initWithView:self.dceView];
- [self.view addSubview:self.dceView];
- [self.cameraEnhancer open];
- }
- ```
- 2.
- ```swift
- class ViewController: BaseViewController{
- var cameraEnhancer: DynamsoftCameraEnhancer!
- var dceView: DCECameraView!
- ...
- func configureDLR() -> Void {
- dceView = DCECameraView.init(frame: self.view.bounds)
- cameraEnhancer = DynamsoftCameraEnhancer.init(view: self.dceView)
- self.view.addSubview(self.dceView)
- cameraEnhancer.open()
- }
- }
- ```
-
-2. Define a scan region for recognition.
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- - (void)configureDLR {
- ...
- iRegionDefinition *region = [[iRegionDefinition alloc] init];
- region.regionLeft = 5;
- region.regionRight = 95;
- region.regionTop = 30;
- region.regionBottom = 50;
- region.regionMeasuredByPercentage = 1;
- }
- ```
- 2.
- ```swift
- func configureDLR() -> Void {
- ...
- let region = iRegionDefinition.init()
- region.regionLeft = 5
- region.regionRight = 95
- region.regionTop = 30
- region.regionBottom = 50
- region.regionMeasuredByPercentage = 1
- try? cameraEnhancer.setScanRegion(region)
- }
- ```
-
-### Initialize the Label Recognizer
-
-1. Create an instance of `DynamsoftLabelRecognizer`, bind it with the instance of `DynamsoftCameraEnhancer`.
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- @property (nonatomic, strong) DynamsoftLabelRecognizer *labelRecognizer;
- - (void)configureDLR {
- self.labelRecognizer = [[DynamsoftLabelRecognizer alloc] init];
- [self.labelRecognizer setImageSource:self.cameraEnhancer];
- }
- ```
- 2.
- ```swift
- class ViewController: BaseViewController{
- var labelRecognizer: DynamsoftLabelRecognizer!
- ...
- func configureDLR() -> Void {
- labelRecognizer = DynamsoftLabelRecognizer.init()
- labelRecognizer.setImageSource(self.cameraEnhancer)
- }
- }
- ```
-
-### Start Recognition Process
-
-1. Setup result callback and start scanning.
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- // Add LabelResultListener to the class.
- @interface ViewController ()
- - (void)configureDLR {
- [self.labelRecognizer setLabelResultListener:self];
- [self.labelRecognizer startScanning];
- }
- - (void)labelResultCallback:(NSInteger)frameId imageData:(iImageData *)imageData results:(NSArray *)results {
- // Add your code to execute on results are received.
- }
- ```
- 2.
- ```swift
- // Add LabelResultListener to the class.
- class ViewController: BaseViewController, LabelResultListener {
- ...
- func configureDLR() -> Void {
- ...
- // Set result listener.
- labelRecognizer.setLabelResultListener(self)
- // Start the label recognition thread.
- labelRecognizer.startScanning()
- }
- func labelResultCallback(_ frameId: Int, imageData: iImageData, results: [iDLRResult]?) {
- // Add your code to execute on results are received.
- }
- }
- ```
-
-### Obtain And Display Recognized Results
-
-1. You can obtain the label recognition results via `labelResultCallback`. Add code to display the label recognition results on the view.
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- - (void)labelResultCallback:(NSInteger)frameId imageData:(iImageData *)imageData results:(NSArray *)results {
- if (results.count > 0) {
- [self.labelRecognizer stopScanning];
- NSMutableString *msgString = [NSMutableString string];
- int index = 0;
- for (iDLRResult *dlrResult in results) {
- for (iDLRLineResult *lineResult in dlrResult.lineResults) {
- index++;
- [msgString appendString:[NSString stringWithFormat:@"Result %d:%@\n", index, lineResult.text]];
- }
- }
- UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@"Result" message:msgString preferredStyle:UIAlertControllerStyleAlert];
- UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
- [self.labelRecognizer startScanning];
- }];
- [alertVC addAction:okAction];
- dispatch_async(dispatch_get_main_queue(), ^{
- [self presentViewController:alertVC animated:YES completion:nil];
- });
- }
- }
- ```
- 2.
- ```swift
- func labelResultCallback(_ frameId: Int, imageData: iImageData, results: [iDLRResult]?) {
- if let results = results {
- guard results.count > 0 else {
- return
- }
- labelRecognizer.stopScanning()
- var msgString = ""
- var index = 0
- for dlrResult in results {
- if let dlrLineResults = dlrResult.lineResults {
- for lineResult in dlrLineResults {
- index+=1
- msgString += String(format: "Result %d:%@\n", index, lineResult.text ?? "")
- }
- }
- }
- let alertVC = UIAlertController.init(title: "Results", message: msgString, preferredStyle: .alert)
- let okAction = UIAlertAction.init(title: "OK", style: .default) { _ in
- self.labelRecognizer.startScanning()
- }
- alertVC.addAction(okAction)
- DispatchQueue.main.async {
- self.present(alertVC, animated: true, completion: nil)
- }
- }
- }
- ```
-
- The recognition results of SDK are organized into a four-tier structure:
-
- * The array of `iDLRResult` corresponds to the results of an `image`.
- * `iDLRResult` corresponds to the result of a `TextArea` (also called Label).
- * `iDLRLineResult` corresponds to the result of each `TextLine` in the Label.
- * `iDLRCharacterResult` corresponds to the result of each `Character` in the `TextLine`.
-
- The structure is shown in the figure below:
-
-
-
-
Figure 1 – DLR Result Structure
-
-
-### Build and Run the Project
-
-1. 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:
->
->* You can get the source code of the HelloWord app from the following link
-> * Objective-C
-> * Swift
diff --git a/programming/android/api-reference/index-v3.0.20.md b/programming/android/api-reference/index-v3.0.20.md
deleted file mode 100644
index 0091775..0000000
--- a/programming/android/api-reference/index-v3.0.20.md
+++ /dev/null
@@ -1,110 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Label Recognizer Android API Reference
-description: This is the index of Dynamsoft Label Recognizer Android API Reference.
-keywords: label recognizer, api reference, Android
-permalink: /programming/android/api-reference/index-v3.0.20.html
----
-
-# API Reference - Android
-
-## Primary Class
-
-- [`CaptureVisionRouter`]({{ site.dcv_android_api }}capture-vision-router/capture-vision-router.html)
-
-## Input
-
-- [`DirectoryFetcher`]({{ site.dcv_android_api }}utility/directory-fetcher.html)
-- [`FileFetcher`]({{ site.dcv_android_api }}utility/file-fetcher.html)
-- [`ImageSourceAdapter`]({{ site.dcv_android_api }}core/basic-structures/image-source-adapter.html)
-
-## Final Results
-
-- [`CapturedResultReceiver`]({{ site.dcv_android_api }}core/basic-structures/captured-result-receiver.html)
-- [`CapturedResultItem`]({{ site.dcv_android_api }}core/basic-structures/captured-result-item.html)
-- [`CapturedResult`]({{ site.dcv_android_api }}core/basic-structures/captured-result.html)
-- [`TextLineResultItem`]({{ site.dlr_android_api }}text-line-result-item.html)
-- [`CharacterResult`]({{ site.dlr_android_api }}character-result.html)
-- [`RecognizedTextLinesResult`]({{ site.dlr_android_api }}recognized-text-lines-result.html)
-- [`OriginalImageResultItem`]({{ site.dcv_android_api }}core/basic-structures/original-image-result-item.html)
-
-## Final Results Filters
-
-- [`CapturedResultFilter`]({{ site.dcv_android_api }}core/basic-structures/captured-result-filter.html)
-- [`MultiFrameResultCrossFilter`]({{ site.dcv_android_api }}utility/multi-frame-result-cross-filter.html)
-
-## Intermediate Results
-
-- [`IntermediateResultManager`]({{ site.dcv_android_api }}core/intermediate-results/intermediate-result-manager.html)
-- [`IntermediateResultReceiver`]({{ site.dcv_android_api }}core/intermediate-results/intermediate-result-receiver.html)
-- [`ObservationParameters`]({{ site.dcv_android_api }}core/intermediate-results/observation-parameters.html)
-- [`IntermediateResultExtraInfo`]({{ site.dcv_android_api }}core/intermediate-results/intermediate-result-extra-info.html)
-- [`IntermediateResult`]({{ site.dcv_android_api }}core/intermediate-results/intermediate-result.html)
-- [`IntermediateResultUnit`]({{ site.dcv_android_api }}core/intermediate-results/intermediate-result-unit.html)
-- [`PredetectedRegionsUnit`]({{ site.dcv_android_api }}core/intermediate-results/predetected-regions-unit.html)
-- [`LocalizedTextLinesUnit`]({{ site.dlr_android_api }}localized-text-lines-unit.html)
-- [`RecognizedTextLinesUnit`]({{ site.dlr_android_api }}recognized-text-lines-unit.html)
-- [`RegionObjectElement`]({{ site.dcv_android_api }}core/intermediate-results/region-object-element.html)
-- [`PredetectedRegionElement`]({{ site.dcv_android_api }}core/intermediate-results/predetected-region-element.html)
-- [`LocalizedTextLineElement`]({{ site.dlr_android_api }}localized-text-line-element.html)
-- [`RecognizedTextLineElement`]({{ site.dlr_android_api }}recognized-text-line-element.html)
-- [`BinaryImageUnit`]({{ site.dcv_android_api }}core/intermediate-results/binary-image-unit.html)
-- [`ColourImageUnit`]({{ site.dcv_android_api }}core/intermediate-results/colour-image-unit.html)
-- [`EnhancedGrayscaleImageUnit`]({{ site.dcv_android_api }}core/intermediate-results/enhanced-grayscale-image-unit.html)
-- [`GrayscaleImageUnit`]({{ site.dcv_android_api }}core/intermediate-results/grayscale-image-unit.html)
-- [`ScaledDownColourImageUnit`]({{ site.dcv_android_api }}core/intermediate-results/scaled-down-colour-image-unit.html)
-- [`TextZonesUnit`]({{ site.dcv_android_api }}core/intermediate-results/text-zones-unit.html)
-- [`TextureDetectionResultUnit`]({{ site.dcv_android_api }}core/intermediate-results/texture-detection-result-unit.html)
-- [`TextureRemovedBinaryImageUnit`]({{ site.dcv_android_api }}core/intermediate-results/texture-removed-binary-image-unit.html)
-- [`TextureRemovedGrayscaleImageUnit`]({{ site.dcv_android_api }}core/intermediate-results/texture-removed-grayscale-image-unit.html)
-- [`TransformedGrayscaleImageUnit`]({{ site.dcv_android_api }}core/intermediate-results/transformed-grayscale-image-unit.html)
-
-## Settings
-
-- [`SimplifiedCaptureVisionSettings`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/simplified-capture-vision-settings.html)
-- [`SimplifiedLabelRecognizerSettings`]({{ site.dlr_android_api }}simplified-label-recognizer-settings.html)
-
-## State Listener
-
-- [`CaptureStateListener`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/capture-state-listener.html)
-- [`ImageSourceStateListener`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/image-source-state-listener.html)
-
-## License
-
-- [`LicenseManager`]({{ site.dcv_android_api }}license/license-manager.html)
-
-## Basic Structure
-
-- [`Rect`]({{ site.dcv_android_api }}core/basic-structures/rect.html)
-- [`Quadrilateral`]({{ site.dcv_android_api }}core/basic-structures/quadrilateral.html)
-- [`ImageData`]({{ site.dcv_android_api }}core/basic-structures/image-data.html)
-- [`ImageTag`]({{ site.dcv_android_api }}core/basic-structures/image-tag.html)
-- [`FileImageTag`]({{ site.dcv_android_api }}core/basic-structures/file-image-tag.html)
-
-## Modules
-
-- [`CaptureVisionRouterModule`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/capture-vision-router-module.html)
-- [`LabelRecognizerModule`]({{ site.dlr_android_api }}label-recognizer-module.html)
-- [`CoreModule`]({{ site.dcv_android_api }}core/basic-structures/core-module.html)
-- [`LicenseModule`]({{ site.dcv_android_api }}license/license-module.html)
-- [`UtilityModule`]({{ site.dcv_android_api }}utility/utility-module.html)
-- [`ImageProcessingModule`]({{ site.dcv_android_api }}image-processing/image-processing-module.html)
-
-## Enumerations
-
-- [`BufferOverflowProtectionMode`]({{ site.dcv_enumerations}}core/buffer-overflow-protection-mode.html?src=android&&lang=android)
-- [`CapturedResultItemType`]({{ site.dcv_enumerations}}core/captured-result-item-type.html?src=android&&lang=android)
-- [`ErrorCode`]({{ site.dcv_enumerations}}core/error-code.html?src=android&&lang=android)
-- [`GrayscaleTransformationMode`]({{ site.dcv_enumerations}}core/grayscale-transformation-mode.html?src=android&&lang=android)
-- [`ImageCaptureDistanceMode`]({{ site.dcv_enumerations}}core/image-capture-distance-mode.html?src=android&&lang=android)
-- [`ImagePixelFormat`]({{ site.dcv_enumerations}}core/image-pixel-format.html?src=android&&lang=android)
-- [`ImageSourceState`]({{ site.dcv_enumerations}}core/image-source-state.html?src=android&&lang=android)
-- [`ImageTagType`]({{ site.dcv_enumerations}}core/image-tag-type.html?src=android&&lang=android)
-- [`IntermediateResultUnitType`]({{ site.dcv_enumerations}}core/intermediate-result-unit-type.html?src=android&&lang=android)
-- [`PresetTemplate`]({{ site.dcv_enumerations }}capture-vision-router/preset-template.html?src=android&&lang=android)
-- [`RegionObjectElementType`]({{ site.dcv_enumerations}}core/region-object-element-type.html?src=android&&lang=android)
-- [`SectionType`]({{ site.dcv_enumerations}}core/section-type.html?src=android&&lang=android)
-- [`VideoFrameQuality`]({{ site.dcv_enumerations }}core/video-frame-quality.html?src=android&&lang=android)
-- [`ColourChannelUsageType`]({{ site.dcv_enumerations}}core/colour-channel-usage-type.html?src=android&&lang=android)
-- [`RasterDataSource`]({{ site.dcv_enumerations}}core/raster-data-source.html?src=android&&lang=android)
-- [`TransformMatrixType`]({{ site.dcv_enumerations}}core/transform-matrix-type.html?src=android&&lang=android)
diff --git a/programming/android/api-reference/index.md b/programming/android/api-reference/index.md
deleted file mode 100644
index 0c30212..0000000
--- a/programming/android/api-reference/index.md
+++ /dev/null
@@ -1,61 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Label Recognizer Android API Reference - Main Page
-description: This is the main page of Dynamsoft Label Recognizer SDK API Reference for Android Language.
-keywords: Label Recognizer, api reference, Android
----
-
-# 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 Label Recognizer SDK.
-
-## Modules Summary
-
-The Dynamsoft Label Recognizer (DLR) SDK is built on the Dynamsoft Capture Vision (DCV) framework, which includes multiple modules working together to achieve text line recognition. The hierarchical structure diagram below illustrates the various modules of the DLR SDK (with modules at the top depending on those below).
-
-
-
-
Modules hierarchical of the DLR SDK
-
-
-The table below describes details the functionalities of these modules:
-
-| Module | Description | Mandatory/Optional |
-|:-----|:------------|:-------------------|
-| `DynamsoftLabelRecognizer.aar`(DLR) | The Dynamsoft Label Recognizer module identifies and recognizes text labels such as passport MRZs, ID cards, and VIN numbers. | Mandatory |
-| `DynamsoftCore.aar`(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. | Mandatory |
-| `DynamsoftCaptureVisionRouter.aar`(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. | Mandatory |
-| `DynamsoftImageProcessing.aar`(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. | Mandatory |
-| `DynamsoftNeuralNetwork.aar`(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. | Mandatory |
-| `DynamsoftLicense.aar`(License) | The Dynamsoft License module manages the licensing aspects of Dynamsoft SDKs based on the DCV (Dynamsoft Capture Vision) architecture. | Mandatory |
-| `DynamsoftCameraEnhancer.aar`(DCE) | The [Dynamsoft Camera Enhancer]({{ site.dce_android }}){:target="_blank"} 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. | Optional |
-| `DynamsoftUtility.aar`(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. | Optional |
-
-## 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 Label Recognizer 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 video stream text recognizing]({{ 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 }}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
-
-To receive the results of video streaming text recognizing, you need to implement the [`CapturedResultReceiver`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html) with the callback method [`onRecognizedTextlinesReceived`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html#onrecognizedtextlinesreceived). The result you received in the callback method is a [`RecognizedTextlinesResult`](recognized-text-lines-result.md) object, which contains all the recognized text lines from the processed video frame.
-
-- [`onRecognizedTextlinesReceived`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html#onrecognizedtextlinesreceived): The callback method for you to receive the text recognizing results with a [`RecognizedTextlinesResult`](recognized-text-lines-result.md) object.
-- [`RecognizedTextlinesResult`](recognized-text-lines-result.md): An object that contains all the [`TextLineResultItem`](text-line-result-item.md) that obtained from a video frame.
-- [`TextLineResultItem`](text-line-result-item.md): The basic item that represents a single text line with the decoded text and other information.
-
-### Camera View
-
-[`CameraView`]({{ site.dce_android }}auxiliary-api/dcecameraview.html) is a view class that design for visualizing the real time video streaming and the text recognizing result. If the [`CameraEnhancer`]({{ site.dce_android }}primary-api/camera-enhancer.html) is set as the input of your CVR, the recognized text lines will be highlighted automatically on the [`CameraView`]({{ site.dce_android }}auxiliary-api/dcecameraview.html).
diff --git a/programming/android/api-reference/localized-text-lines-unit-v3.0.20.md b/programming/android/api-reference/localized-text-lines-unit-v3.0.20.md
deleted file mode 100644
index 853336d..0000000
--- a/programming/android/api-reference/localized-text-lines-unit-v3.0.20.md
+++ /dev/null
@@ -1,45 +0,0 @@
----
-layout: default-layout
-title: LocalizedTextLinesUnit - Dynamsoft Label Recognizer Android Edition
-description: The class LocalizedTextLinesUnit of Dynamsoft Label Recognizer Android edition represents a unit that contains localized text lines.
-keywords: Localized text lines unit
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
-breadcrumbText: LocalizedTextLinesUnit
-permalink: /programming/android/api-reference/localized-text-lines-unit-v3.0.20.html
----
-
-# LocalizedTextLinesUnit
-
-The `LocalizedTextLinesUnit` class represents a unit that contains localized text lines. It inherits from the [IntermediateResultUnit]({{ site.dcv_android_api }}core/intermediate-results/intermediate-result-unit.html) class.
-
-## Definition
-
-*Namespace:* com.dynamsoft.dlr.intermediate_results
-
-*Assembly:* DynamsoftLabelRecognizer.aar
-
-```java
-class LocalizedTextLinesUnit extends IntermediateResultUnit
-```
-
-*Inheritance:* [IntermediateResultUnit]({{ site.dcv_android_api }}core/intermediate-results/intermediate-result-unit.html) -> LocalizedTextLinesUnit
-
-## Methods
-
-| Method | Description |
-| ------ | ----------- |
-| [`getLocalizedTextLine`](#getlocalizedtextlines) | Gets a pointer to a specific localized text line element. |
-
-### getLocalizedTextLines
-
-Gets all the text lines that are localized from the image.
-
-```java
-LocalizedTextLineElement[] getLocalizedTextLines();
-```
-
-**Return value**
-
-Returns an array of [`LocalizedTextLineElement`](localized-text-line-element.md), which is the basic unit of the localized text line result.
diff --git a/programming/android/api-reference/raw-text-line.md b/programming/android/api-reference/raw-text-line.md
new file mode 100644
index 0000000..566f539
--- /dev/null
+++ b/programming/android/api-reference/raw-text-line.md
@@ -0,0 +1,191 @@
+---
+layout: default-layout
+title: RawTextLine - Dynamsoft Label Recognizer iOS Edition
+description: The class RawTextLine of Dynamsoft Label Recognizer iOS edition represents a unit which holds the raw text lines.
+keywords: raw text lines unit, intermediate result unit
+needGenerateH3Content: true
+needAutoGenerateSidebar: true
+noTitleIndex: true
+breadcrumbText: RawTextLine
+---
+
+# RawTextLine
+
+The `RawTextLine` class represents a text line in an image. It can be in one of the following states:
+
+- `TLS_LOCALIZED`: Localized but recognition not performed.
+- `TLS_RECOGNITION_FAILED`: Recognition failed.
+- `TLS_RECOGNIZED_SUCCESSFULLY`: Successfully recognized.
+
+## Definition
+
+*Namespace:* com.dynamsoft.dlr
+
+*Assembly:* DynamsoftLabelRecognizer.aar
+
+```java
+class RawTextLine
+```
+
+## Methods
+
+| Methods | Description |
+| ------- | ----------- |
+| [`getText`](#gettext) | Returns the recognized text. |
+| [`setText`](#settext) | Sets the recognized text. |
+| [`getConfidence`](#getconfidence) | Returns the confidence level of the recognized text. |
+| [`getCharacterResults`](#getcharacterresults) | Returns all the characters contained by the textline. |
+| [`getRowNumber`](#getrownumber) | Returns the row number of the text line within the image. |
+| [`setRowNumber`](#setrownumber) | Sets the row number of the text line within the image. |
+| [`getSpecificationName`](#getspecificationname) | Get the name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`. |
+| [`setSpecificationName`](#setspecificationname) | Sets the name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`. |
+| [`getLocation`](#getlocation) | Returns the location of the text line. |
+| [`setLocation`](#setlocation) | Sets the location of the text line. |
+
+### getText
+
+Returns the recognized text.
+
+```java
+String getText();
+```
+
+**Return value**
+
+Returns the text of the text line.
+
+### setText
+
+Returns the recognized text.
+
+```java
+void setText(string text);
+```
+
+**Parameter**
+
+`text`: The text.
+
+**Return value**
+
+Returns the `ErrorCode` if failed. Otherwise, returns 0.
+
+### getConfidence
+
+Returns the confidence level of the recognized text.
+
+```java
+int getConfidence();
+```
+
+**Return value**
+
+Returns the confidence level of the text line.
+
+### getCharacterResults
+
+Returns all the characters contained by the textline in an array of [`CharacterResult`](character-result.md).
+
+```java
+CharacterResult[] getCharacterResults();
+```
+
+**Return value**
+
+Returns all the characters contained by the textline in an array of [`CharacterResult`](character-result.md).
+
+### getRowNumber
+
+Returns the row number of the text line within the image.
+
+```java
+int getRowNumber();
+```
+
+**Return value**
+
+Returns the row number of the text line within the image.
+
+### setRowNumber
+
+Sets the row number of the text line within the image.
+
+```java
+int setRowNumber(int rowNumber);
+```
+
+**Parameter**
+
+`rowNumber`: The row number of the text line within the image.
+
+**Return value**
+
+Returns 0 if success, otherwise an error code.
+
+### getSpecificationName
+
+Returns the name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`.
+
+```java
+String getSpecificationName();
+```
+
+**Return value**
+
+The name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`.
+
+### setSpecificationName
+
+Sets the name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`.
+
+```java
+int setSpecificationName(String specificationName);
+```
+
+**Parameter**
+
+`specificationName`: The name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`.
+
+**Return value**
+
+Returns 0 if success, otherwise an error code.
+
+### getLocation
+
+Returns a `Quadrilateral` object which represents the location of the text line.
+
+```java
+Quadrilateral getLocation();
+```
+
+**Return value**
+
+A `Quadrilateral` object which represents the location of the text line.
+
+### setLocation
+
+Set the location of the text line.
+
+```java
+int setLocation(Quadrilateral location);
+```
+
+**Parameter**
+
+`location`: The location of the text line.
+
+**Return value**
+
+Returns 0 if success, otherwise an error code.
+
+### getStatus
+
+Returns the status of the text line.
+
+```java
+RawTextLineStatus getStatus();
+```
+
+**Return value**
+
+The status of the text line.
diff --git a/programming/android/api-reference/raw-text-lines-unit.md b/programming/android/api-reference/raw-text-lines-unit.md
new file mode 100644
index 0000000..98782bc
--- /dev/null
+++ b/programming/android/api-reference/raw-text-lines-unit.md
@@ -0,0 +1,142 @@
+---
+layout: default-layout
+title: RawTextLinesUnit - Dynamsoft Label Recognizer iOS Edition
+description: The class RawTextLinesUnit of Dynamsoft Label Recognizer iOS edition represents a unit which holds the raw text lines.
+keywords: raw text lines unit, intermediate result unit
+needGenerateH3Content: true
+needAutoGenerateSidebar: true
+noTitleIndex: true
+breadcrumbText: RawTextLinesUnit
+---
+
+# RawTextLinesUnit
+
+The `RawTextLinesUnit` class represents a unit which holds the raw text lines.
+
+## Definition
+
+## Definition
+
+*Namespace:* com.dynamsoft.dlr
+
+*Assembly:* DynamsoftLabelRecognizer.aar
+
+```java
+class RawTextLine
+```
+
+*Inheritance:* [IntermediateResultUnit]({{ site.dcv_android_api }}core/intermediate-results/intermediate-result-unit.html) -> RecognizedTextLinesUnit
+
+## Methods
+
+| Method | Description |
+| --- | --- |
+| [`getCount`](#getcount) | Gets the number of raw text lines in the unit. |
+| [`getRawTextLine`](#getrawtextline) | Gets a raw text line at the specified index. |
+| [`getRawTextLines`](#getrawtextlines) | Gets all raw text lines of the unit. |
+| [`removeAllRawTextLines`](#removeallrawtextlines) | Removes all raw text lines. |
+| [`removeRawTextLine`](#removerawtextline) | Removes the raw text line at the specified index. |
+| [`addRawTextLine`](#addrawtextline) | Adds a raw text line. |
+| [`setRawTextLine`](#setrawtextline) | Sets the raw text line at the specified index. |
+
+### getCount
+
+Returns the number of raw text lines in the unit.
+
+```java
+int getCount();
+```
+
+**Return value**
+
+Returns the number of raw text lines in the unit.
+
+### getRawTextLine
+
+Gets a raw text line at the specified index.
+
+```java
+RawTextLine getRawTextLine(int index);
+```
+
+**Parameters**
+
+`index`: The index of the raw text line.
+
+**Return value**
+
+Returns a pointer to the [`RawTextLine`](raw-text-line.md) object at the specified index.
+
+### getRawTextLines
+
+Gets all raw text lines of the unit.
+
+```java
+RawTextLine[] getRawTextLines();
+```
+
+**Return value**
+
+Returns all the [`RawTextLine`](raw-text-line.md) objects of the unit in an array.
+
+### removeAllRawTextLines
+
+Removes all raw text lines.
+
+```java
+void removeAllRawTextLines();
+```
+
+### removeRawTextLine
+
+Removes the raw text line at the specified index.
+
+```java
+int removeRawTextLine(int index);
+```
+
+**Parameters**
+
+`index`: The index of the raw text line to be removed.
+
+**Return value**
+
+Returns the `ErrorCode` if failed. Otherwise, returns 0.
+
+### addRawTextLine
+
+Adds a raw text line to the unit.
+
+```java
+int addRawTextLine(RawTextLine textline, Matrix matrixToOriginalImage);
+```
+
+**Parameters**
+
+`textline`: A [`RawTextLine`](raw-text-line.md) object as the raw text line to be added to the unit.
+
+`matrixToOriginalImage`: The matrix to the original image.
+
+**Return value**
+
+Returns the `ErrorCode` if failed. Otherwise, returns 0.
+
+### setRawTextLine
+
+Sets the raw text line at the specified index.
+
+```java
+int setRawTextLine(int index, RawTextLine textline, Matrix matrixToOriginalImage);
+```
+
+**Parameters**
+
+`index`: The index of the raw text line to be set.
+
+`textline`: A [`RawTextLine`](raw-text-line.md) object as the raw text line to be set.
+
+`matrixToOriginalImage`: The matrix to the original image.
+
+**Return value**
+
+Returns the `ErrorCode` if failed. Otherwise, returns 0.
diff --git a/programming/android/api-reference/recognized-text-line-element-v2.2.3000.md b/programming/android/api-reference/recognized-text-line-element-v2.2.3000.md
new file mode 100644
index 0000000..83d79d8
--- /dev/null
+++ b/programming/android/api-reference/recognized-text-line-element-v2.2.3000.md
@@ -0,0 +1,109 @@
+---
+layout: default-layout
+title: RecognizedTextLineElement - Dynamsoft Label Recognizer Android Edition
+description: The class RecognizedTextLineElement of Dynamsoft Label Recognizer Android edition represents a line of recognized text in an image.
+keywords: Recognized text line element
+needGenerateH3Content: true
+needAutoGenerateSidebar: true
+noTitleIndex: true
+breadcrumbText: RecognizedTextLineElement
+---
+
+# RecognizedTextLineElement
+
+The `RecognizedTextLineElement` class extends the [RegionObjectElement]({{ site.dcv_android_api }}core/intermediate-results/region-object-element.html) class and represents a recognized text line element.
+
+## Definition
+
+*Namespace:* com.dynamsoft.dlr.intermediate_results
+
+*Assembly:* DynamsoftLabelRecognizer.aar
+
+```java
+class RecognizedTextLineElement extends RegionObjectElement
+```
+
+*Inheritance:* [RegionObjectElement]({{ site.dcv_android_api }}core/intermediate-results/region-object-element.html) -> RecognizedTextLineElement
+
+## Methods
+
+| Method | Description |
+| ------ | ----------- |
+| [`getText`](#gettext) | Returns the recognized text of the line. |
+| [`getConfidence`](#getconfidence) | Returns the confidence score for the recognized text line. |
+| [`getCharacterResults`](#getcharacterresults) | Returns all the results for individual characters within the text line. |
+| [`getRowNumber`](#getrownumber) | Returns the row number of the text line, starting from 1. |
+| [`setText`](#settext) | Sets the recognized text of the line. |
+| [`getSpecificationName`](#getspecificationname) | Returns the name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`. |
+
+### getText
+
+Returns the recognized text of the line.
+
+```java
+String getText()
+```
+
+**Return value**
+
+The recognized text of the line.
+
+### getConfidence
+
+Returns the confidence score for the recognized text line.
+
+```java
+int getConfidence()
+```
+
+**Return value**
+
+The confidence score for the recognized text line.
+
+### getCharacterResults
+
+Returns all the results for individual characters within the text line, defined by [`CharacterResult`](character-result.md).
+
+```java
+CharacterResult[] getCharacterResults();
+```
+
+**Return value**
+
+The results for individual characters within the text line, defined by [`CharacterResult`](character-result.md).
+
+### getRowNumber
+
+Returns the row number of the text line, starting from 1.
+
+```java
+int getRowNumber();
+```
+
+**Return value**
+
+The row number of the text line, starting from 1.
+
+### setText
+
+Sets the recognized text of the line.
+
+```java
+void setText(String text);
+```
+
+**Parameters**
+
+`text`: The text to be set.
+
+### getSpecificationName
+
+Returns the name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`.
+
+```java
+String getSpecificationName();
+```
+
+**Return value**
+
+The name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`.
diff --git a/programming/android/api-reference/recognized-text-line-element-v3.0.20.md b/programming/android/api-reference/recognized-text-line-element-v3.0.20.md
deleted file mode 100644
index 9cf46b2..0000000
--- a/programming/android/api-reference/recognized-text-line-element-v3.0.20.md
+++ /dev/null
@@ -1,84 +0,0 @@
----
-layout: default-layout
-title: RecognizedTextLineElement - Dynamsoft Label Recognizer Android Edition
-description: The class RecognizedTextLineElement of Dynamsoft Label Recognizer Android edition represents a line of recognized text in an image.
-keywords: Recognized text line element
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
-breadcrumbText: RecognizedTextLineElement
-permalink: /programming/android/api-reference/recognized-text-line-element-v3.0.20.html
----
-
-# RecognizedTextLineElement
-
-The `RecognizedTextLineElement` class represents a line of recognized text in an image. It inherits from the [RegionObjectElement]({{ site.dcv_android_api }}core/intermediate-results/region-object-element.html) class.
-
-## Definition
-
-*Namespace:* com.dynamsoft.dlr.intermediate_results
-
-*Assembly:* DynamsoftLabelRecognizer.aar
-
-```java
-class RecognizedTextLineElement extends RegionObjectElement
-```
-
-*Inheritance:* [RegionObjectElement]({{ site.dcv_android_api }}core/intermediate-results/region-object-element.html) -> RecognizedTextLineElement
-
-## Methods
-
-| Method | Description |
-| ------ | ----------- |
-| [`getText`](#gettext) | Gets the recognized text. |
-| [`getConfidence`](#getconfidence) | Gets the confidence level of the recognized text. |
-| [`getCharacterResults`](#getcharacterresults) | Gets all the characters contained by the textline. |
-| [`getRowNumber`](#getrownumber) | Gets the row number of the text line within the image. |
-
-### getText
-
-Gets the recognized text.
-
-```java
-String getText()
-```
-
-**Return value**
-
-Returns the text of the text line.
-
-### getConfidence
-
-Gets the confidence level of the recognized text.
-
-```java
-int getConfidence()
-```
-
-**Return value**
-
-Returns an integer value representing the confidence level of the recognized text.
-
-### getCharacterResults
-
-Gets all the characters contained by the textline in an array of [`CharacterResult`](character-result.md).
-
-```java
-CharacterResult[] getCharacterResults();
-```
-
-**Return value**
-
-Returns an integer value representing the success of the operation. Zero indicates success, while any other value indicates failure.
-
-### getRowNumber
-
-Gets the row number of the text line within the image.
-
-```java
-int getRowNumber();
-```
-
-**Return value**
-
-Returns an integer value representing the row number of the text line within the image.
diff --git a/programming/android/api-reference/recognized-text-line-element.md b/programming/android/api-reference/recognized-text-line-element.md
index 5378871..cf41f3b 100644
--- a/programming/android/api-reference/recognized-text-line-element.md
+++ b/programming/android/api-reference/recognized-text-line-element.md
@@ -36,6 +36,7 @@ class RecognizedTextLineElement extends RegionObjectElement
| [`getRowNumber`](#getrownumber) | Returns the row number of the text line, starting from 1. |
| [`setText`](#settext) | Sets the recognized text of the line. |
| [`getSpecificationName`](#getspecificationname) | Returns the name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`. |
+| [`getRawText`](#getrawtext) | Returns the recognized raw text, excluding any concatenation separators. |
### getText
@@ -108,3 +109,15 @@ String getSpecificationName();
**Return value**
The name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`.
+
+### getRawText
+
+Returns the recognized raw text, excluding any concatenation separators.
+
+```java
+String getRawText();
+```
+
+**Return value**
+
+The recognized raw text, excluding any concatenation separators.
diff --git a/programming/android/api-reference/recognized-text-lines-unit-v3.0.20.md b/programming/android/api-reference/recognized-text-lines-unit-v2.2.3000.md
similarity index 56%
rename from programming/android/api-reference/recognized-text-lines-unit-v3.0.20.md
rename to programming/android/api-reference/recognized-text-lines-unit-v2.2.3000.md
index c623cce..a697e0b 100644
--- a/programming/android/api-reference/recognized-text-lines-unit-v3.0.20.md
+++ b/programming/android/api-reference/recognized-text-lines-unit-v2.2.3000.md
@@ -7,7 +7,6 @@ needGenerateH3Content: true
needAutoGenerateSidebar: true
noTitleIndex: true
breadcrumbText: RecognizedTextLinesUnit
-permalink: /programming/android/api-reference/recognized-text-lines-unit-v3.0.20.html
---
# RecognizedTextLinesUnit
@@ -43,3 +42,57 @@ RecognizedTextLineElement[] getRecognizedTextLines();
**Return value**
An array of [`RecognizedTextLineElement`](recognized-text-line-element.md) that contains all recognized text line of this unit.
+
+### getCount
+
+Gets the number of recognized text lines in this unit.
+
+```java
+int getCount();
+```
+
+**Return value**
+
+The number of recognized text lines in this unit.
+
+### getRecognizedTextLine
+
+Gets the recognized text line at the specified index in a [`RecognizedTextLineElement`](recognized-text-line-element.md) object.
+
+```java
+RecognizedTextLineElement getRecognizedTextLine(int index);
+```
+
+**Parameters**
+
+`index`: The index of the recognized text line in this unit.
+
+**Return value**
+
+The recognized text line at the specified index in a [`RecognizedTextLineElement`](recognized-text-line-element.md) object.
+
+### removeAllRecognizedTextLines
+
+Removes all the recognized text lines from the unit.
+
+```java
+void removeAllRecognizedTextLines();
+```
+
+### setRecognizedTextLine
+
+Sets the recognized text line at the specified index in a [`RecognizedTextLineElement`](recognized-text-line-element.md) object.
+
+```java
+int setRecognizedTextLine(RecognizedTextLineElement element, Matrix matrixToOriginalImage);
+```
+
+**Parameters**
+
+`element`: The [`RecognizedTextLineElement`](recognized-text-line-element.md) object to be set.
+
+`matrixToOriginalImage`: The matrix to the original image.
+
+**Return value**
+
+Returns the `ErrorCode` if failed. Otherwise, returns 0.
diff --git a/programming/android/api-reference/recognized-text-lines-unit.md b/programming/android/api-reference/recognized-text-lines-unit.md
index ddfdc6e..8db4bce 100644
--- a/programming/android/api-reference/recognized-text-lines-unit.md
+++ b/programming/android/api-reference/recognized-text-lines-unit.md
@@ -30,7 +30,32 @@ class RecognizedTextLinesUnit extends IntermediateResultUnit
| Method | Description |
| ------ | ----------- |
-| [`getRecognizedTextLines`](#getrecognizedtextlines) | Gets a pointer to the [`RecognizedTextLineElement`](recognized-text-line-element.md) object at the specified index. |
+| [`addRecognizedTextLine`](#addrecognizedtextline) | Adds a recognized text line. |
+| [`getRecognizedTextLines`](#getrecognizedtextlines) | Get all the recognized text lines in an array of [`DSRecognizedTextLineElement`](recognized-text-line-element.md). |
+| [`getCount`](#getcount) | Returns the number of text lines in this unit. |
+| [`getRecognizedTextLine`](#getrecognizedtextline) | Returns the text line at the specified index in a [`DSRecognizedTextLineElement`](recognized-text-line-element.md) object. |
+| [`removeAllRecognizedTextLines`](#removeallrecognizedtextlines) | Removes all the recognized text lines from this unit. |
+| [`removeRecognizedTextLine`](#removerecognizedtextline) | Removes the recognized text line at the specified index. |
+| [`setRecognizedTextLine(index, element, matrixToOriginalImage)`](#setrecognizedtextlineindex-element-matrixtooriginalimage) | Sets the recognized text line at the specified index. |
+| [`setRecognizedTextLine(element, matrixToOriginalImage)`](#setrecognizedtextlineelement-matrixtooriginalimage) | Sets the recognized text line at the specified index. |
+
+### AddRecognizedTextLine
+
+Adds a recognized text line.
+
+```java
+int addRecognizedTextLine(RecognizedTextLineElement element, Matrix matrixToOriginalImage);
+```
+
+**Parameters**
+
+`element`: The [`RecognizedTextLineElement`](recognized-text-line-element.md) object to be added.
+
+`matrixToOriginalImage`: The matrix to transform the original image.
+
+**Return value**
+
+Returns the `ErrorCode` if failed. Otherwise, returns 0.
### getRecognizedTextLines
@@ -80,7 +105,45 @@ Removes all the recognized text lines from the unit.
void removeAllRecognizedTextLines();
```
-### setRecognizedTextLine
+### removeRecognizedTextLine
+
+Removes the [`RecognizedTextLineElement`](recognized-text-line-element.md) at the specified index.
+
+```java
+int removeRecognizedTextLine(int index);
+```
+
+**Parameters**
+
+`index`: The index of the recognized text line to remove.
+
+**Return value**
+
+Returns the `ErrorCode` if failed. Otherwise, returns 0.
+
+### setRecognizedTextLine(index, element, matrixToOriginalImage)
+
+Sets the recognized text line at the specified index in a [`RecognizedTextLineElement`](recognized-text-line-element.md) object.
+
+```java
+int setRecognizedTextLine(int index, RecognizedTextLineElement element, Matrix matrixToOriginalImage);
+```
+
+**Parameters**
+
+`index`: The index of the recognized text line to set.
+
+`element`: The [`RecognizedTextLineElement`](recognized-text-line-element.md) object to be set.
+
+`matrixToOriginalImage`: The matrix to the original image.
+
+**Return value**
+
+Returns the `ErrorCode` if failed. Otherwise, returns 0.
+
+### setRecognizedTextLine(element, matrixToOriginalImage)
+
+> This method is deprecated.
Sets the recognized text line at the specified index in a [`RecognizedTextLineElement`](recognized-text-line-element.md) object.
diff --git a/programming/android/api-reference/simplified-label-recognizer-settings-v3.0.20.md b/programming/android/api-reference/simplified-label-recognizer-settings-v3.0.20.md
deleted file mode 100644
index f3b77a1..0000000
--- a/programming/android/api-reference/simplified-label-recognizer-settings-v3.0.20.md
+++ /dev/null
@@ -1,95 +0,0 @@
----
-layout: default-layout
-title: SimplifiedLabelRecognizerSettings - Dynamsoft Label Recognizer Android Edition API Reference
-description: The SimplifiedLabelRecognizerSettings contains label recognition setting of Dynamsoft Label Recognizer Android edition
-keywords: Android, SimplifiedLabelRecognizerSettings
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-breadcrumbText: SimplifiedLabelRecognizerSettings
-permalink: /programming/android/api-reference/simplified-label-recognizer-settings-v3.0.20.html
----
-
-# SimplifiedLabelRecognizerSettings
-
-The `SimplifiedLabelRecognizerSettings` class contains settings for label recognition. It is a sub-parameter of `SimplifiedCaptureVisionSettings`
-
-```java
-class SimplifiedLabelRecognizerSettings
-```
-
-## Attributes Summary
-
-| Property | Type | Description |
-| -------- | ---- | ----------- |
-| [`grayscaleTransformationModes`](#grayscaletransformationmodes) | *EnumGrayscaleTransformationMode[]* | Set the grayscale transformation modes with an array of enumeration [`GrayscaleTransformationMode`]({{ site.dcv_enumerations}}core/grayscale-transformation-mode.html). |
-| [`grayscaleEnhancementModes`](#grayscaleenhancementmodes) | *EnumGrayscaleEnhancementMode[]* | Set the grayscale enhancement modes with an array of enumeration [`GrayscaleEnhancementMode`]({{ site.dcv_enumerations}}core/grayscale-enhancement-mode.html). |
-| [`characterModelName`](#charactermodelname) | *String* | Specify a character model by its name. |
-| [`lineStringRegExPattern`](#linestringregexpattern) | *String* | Set the RegEx pattern of the text line string to filter out the unqualified results. |
-| [`maxThreadsInOneTask`](#maxthreadsinonetask) | *int* | Set the maximum available threads count in one label recognition task. |
-| [`scaleDownThreshold`](#scaledownthreshold) | *int* | Set the threshold for image shrinking when dealing with large images. |
-
-### grayscaleTransformationModes
-
-Set the grayscale transformation modes with an array of enumeration [`GrayscaleTransformationMode`]({{ site.dcv_enumerations}}core/grayscale-transformation-mode.html).
-
-```java
-int[] grayscaleTransformationModes;
-```
-
-**Remarks**
-
-View the parameter reference page of [`GrayscaleTransformationMode`]({{ site.dcv_parameter_reference }}image-parameter/grayscale-transformation-modes.html){:target="_blank"} for more detail about how to set grayscale transformation modes.
-
-### grayscaleEnhancementModes
-
-Set the grayscale enhancement modes with an array of enumeration [`GrayscaleEnhancementMode`]({{ site.dcv_enumerations}}core/grayscale-enhancement-mode.html).
-
-```java
-int[] grayscaleEnhancementModes;
-```
-
-**Remarks**
-
-View the reference page of [`GrayscaleEnhancementMode`]({{ site.dcv_parameter_reference }}image-parameter/grayscale-enhancement-modes.html){:target="_blank"} for more detail about how to set grayscale enhancement modes.
-
-### characterModelName
-
-Specify a character model by its name.
-
-```java
-String characterModelName;
-```
-
-**Remarks**
-
-View the parameter reference of [CharacterModelName]({{ site.dcv_parameter_reference }}text-line-specification/character-model-name.html) for more details about how to use the parameter.
-
-### lineStringRegExPattern
-
-Set the RegEx pattern of the text line string to filter out the unqualified results.
-
-```java
-String lineStringRegExPattern;
-```
-
-**Remarks**
-
-### maxThreadsInOneTask
-
-Set the maximum available threads count in one label recognition task.
-
-```java
-int maxThreadsInOneTask;
-```
-
-**Remarks**
-
-### scaleDownThreshold
-
-Set the threshold for image shrinking when dealing with large images.
-
-```java
-int scaleDownThreshold;
-```
-
-**Remarks**
diff --git a/programming/android/api-reference/text-line-result-item-v3.0.20.md b/programming/android/api-reference/text-line-result-item-v2.2.3000.md
similarity index 80%
rename from programming/android/api-reference/text-line-result-item-v3.0.20.md
rename to programming/android/api-reference/text-line-result-item-v2.2.3000.md
index 617f603..eac3e16 100644
--- a/programming/android/api-reference/text-line-result-item-v3.0.20.md
+++ b/programming/android/api-reference/text-line-result-item-v2.2.3000.md
@@ -7,7 +7,6 @@ needGenerateH3Content: true
needAutoGenerateSidebar: true
noTitleIndex: true
breadcrumbText: TextLineResultItem
-permalink: /programming/android/api-reference/text-line-result-item-v3.0.20.html
---
# TextLineResultItem
@@ -34,6 +33,7 @@ class TextLineResultItem extends CapturedResultItem
| [`getLocation`](#getlocation) | Gets the location of the text line in the form of a quadrilateral. |
| [`getConfidence`](#getconfidence) | Gets the confidence of the text line recognition result. |
| [`getCharacterResults`](#getcharacterresults) | Get all the characters in the text line. Each character is represented by a [`CharacterResult`](character-result.md) object. |
+| [`getSpecificationName`](#getspecificationname) | Get the name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`. |
### getText
@@ -82,3 +82,15 @@ CharacterResult[] getCharacterResults();
**Return value**
An array of [`CharacterResult`](character-result.md) contains all the characters.
+
+### getSpecificationName
+
+Get the name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`.
+
+```java
+String getSpecificationName();
+```
+
+**Return value**
+
+The name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`.
diff --git a/programming/android/api-reference/text-line-result-item.md b/programming/android/api-reference/text-line-result-item.md
index eac3e16..061a2f5 100644
--- a/programming/android/api-reference/text-line-result-item.md
+++ b/programming/android/api-reference/text-line-result-item.md
@@ -29,15 +29,16 @@ class TextLineResultItem extends CapturedResultItem
| Method | Description |
| ------ | ----------- |
-| [`getText`](#gettext) | Gets the text content of the text line. |
-| [`getLocation`](#getlocation) | Gets the location of the text line in the form of a quadrilateral. |
-| [`getConfidence`](#getconfidence) | Gets the confidence of the text line recognition result. |
+| [`getText`](#gettext) | Returns the text content of the text line. |
+| [`getLocation`](#getlocation) | Returns the location of the text line in the form of a quadrilateral. |
+| [`getConfidence`](#getconfidence) | Returns the confidence of the text line recognition result. |
| [`getCharacterResults`](#getcharacterresults) | Get all the characters in the text line. Each character is represented by a [`CharacterResult`](character-result.md) object. |
-| [`getSpecificationName`](#getspecificationname) | Get the name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`. |
+| [`getSpecificationName`](#getspecificationname) | Returns the name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`. |
+| [`getRawText`](#getrawtext) | Returns the recognized raw text, excluding any concatenation separators. |
### getText
-Gets the text content of the individual text line.
+Returns the text content of the individual text line.
```java
String getText();
@@ -61,7 +62,7 @@ Returns the location of the text line in the form of a quadrilateral.
### getConfidence
-Gets the confidence of the individual text line recognition result.
+Returns the confidence of the individual text line recognition result.
```java
int getConfidence();
@@ -85,7 +86,7 @@ An array of [`CharacterResult`](character-result.md) contains all the characters
### getSpecificationName
-Get the name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`.
+Returns the name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`.
```java
String getSpecificationName();
@@ -94,3 +95,15 @@ String getSpecificationName();
**Return value**
The name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`.
+
+### getRawText
+
+Returns the recognized raw text, excluding any concatenation separators.
+
+```java
+String getRawText();
+```
+
+**Return value**
+
+The recognized raw text, excluding any concatenation separators.
diff --git a/programming/android/hello-world-sample.md b/programming/android/hello-world-sample.md
deleted file mode 100644
index e0049ec..0000000
--- a/programming/android/hello-world-sample.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-layout: default-layout
-title: HelloWorld (Android) Dynamsoft Label Recognizer
-description: This is the page of Dynamsoft Label Recognizer Android HelloWorld sample.
-keywords: HelloWorld, Android
-needAutoGenerateSidebar: true
-permalink: /programming/android/hello-world-sample.html
----
-
-# HelloWorld Sample
-
-The Android Helloworld sample shows how to create the simplest video streaming text scanning app with Dynamsoft Label Recognizer Android SDK.
-
-View the sample:
-
-- HelloWorld (Android)
-
-For more details about how to get started with Dynamsoft Label Recognizer, please view the [user guide](user-guide.md).
diff --git a/programming/android/index.md b/programming/android/index.md
deleted file mode 100644
index 6920f8d..0000000
--- a/programming/android/index.md
+++ /dev/null
@@ -1,30 +0,0 @@
----
-layout: default-layout
-title: Android Main Page - Dynamsoft Label Recognizer
-description: This is the main page of Dynamsoft Label Recognizer for Android Language.
-keywords: android
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /programming/android/index.html
----
-
-# Android Documentation
-
-## Getting Started
-
-- [User Guide](user-guide.md)
-
-## Samples
-
-- Samples
- - [HelloWorld](samples/recognize-from-camera-enhancer.md)
-
-## API Reference
-
-- [API Reference](api-reference/index.md)
-
-## Release Notes
-
-- [Version 3.x](release-notes/android-3.html)
-- [Version 2.x](release-notes/android-2.html)
-- [Version 1.x](release-notes/android-1.html)
diff --git a/programming/android/release-notes/android-3.md b/programming/android/release-notes/android-3.md
deleted file mode 100644
index 6f2bfab..0000000
--- a/programming/android/release-notes/android-3.md
+++ /dev/null
@@ -1,163 +0,0 @@
----
-layout: default-layout
-title: Android SDK Release Notes 3.x - Dynamsoft Label Recognizer
-description: This is the release notes page of Dynamsoft Label Recognizer for Android SDK version 3.x.
-keywords: release notes, android
-needAutoGenerateSidebar: false
-permalink: /programming/android/release-notes/android-3.html
----
-
-# DLR Release Notes - Android 3.x
-
-## 3.2.30 (05/15/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_parameter }}reference/target-roi-def/){:target="_blank"} by implementing an OutputTaskSetting based on the task results of varying products from descendant `TargetROIDef` objects.
-- Enhanced the [`Offset`]({{ site.dcv_parameter }}reference/target-roi-def/location.html#offset){:target="_blank"} 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_parameter }}reference/text-line-specification/){:target="_blank"} 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.
-
-### Changelogs
-
-#### Improved
-
-- Improved the speed of `TextLineGroup` detection by optimizing internal logic.
-- Security update for `DynamsoftLabelRecognizer` library and other corresponding libraries.
-- Supported multiple instances of the class `CaptureVisionRouter`.
-- Supported the filter configuration of the characters that are not recognized by the Deep Neural Network via the Filter.txt file.
-- 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.
-- 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 new APIs for users to obtain the cached character items and the character clusters:
-- A new class [`BufferedCharacterItemSet`]({{ site.dlr_android_api }}buffered-character-item-set.html) to represent a collection of buffered character items and cluster information.
-- 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.
-- 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 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 [`getBufferedItemsManger`]({{ site.dcv_android_api }}capture-vision-router/buffered-items.html#getbuffereditemsmanager) to the `CaptureVisionRouter` class to get an object of `BufferedItemsManager`.
-- 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){:target="_blank"} 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){:target="_blank"} that generated this `RecognizedTextLineElement`.
-- Added new [error codes]({{ site.dcv_enumerations }}core/error-code.html?lang=android):
- - `EC_PDF_LIBRARY_LOAD_FAILED`
- - `EC_RESULT_TYPE_MISMATCH_IRREPLACEABLE`
- - `EC_LICENSE_CACHE_USED`
- - `EC_IMAGE_SIZE_NOT_MATCH`
- - `EC_IMAGE_PIXEL_FORMAT_NOT_MATCH`
- - `EC_SECTION_LEVEL_RESULT_IRREPLACEABLE`
- - `EC_AXIS_DEFINITION_INCORRECT`
- - `EC_TEXT_LINE_GROUP_LAYOUT_CONFLICT`
- - `EC_TEXT_LINE_GROUP_REGEX_CONFLICT`
-- Added a new method [`getRecognizedTextLinesResult`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/captured-result.html#getrecognizedtextlinesresult) to the `CapturedResult` class to get all the result items with the type `CRIT_TEXT_LINE`.
-- Added new virtual destructors to the following interfaces to prevent memory leaks.
- - [`CaptureStateListener`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/capture-state-listener.html)
- - [`ImageSourceStateListener`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/image-source-state-listener.html)
-- The following classes are migrated from `DynamsoftCore.aar` into `DynamsoftCaptureVision.aar`:
- - [`CapturedResult`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/captured-result.html)
- - [`IntermediateResultReceiver`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/intermediate-result-receiver.html)
- - [`CapturedResultReceiver`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html)
- - [`CapturedResultFilter`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/captured-result-filter.html)
- - [`IntermediateResultManager`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/intermediate-result-manager.html)
-- Added a new call back method [`onShortLinesUnitReceived`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/intermediate-result-receiver.html#onshortlinesunitreceived) to the [`IntermediateResultReceiver`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/intermediate-result-receiver.html) class.
-- Added methods [`pauseCapturing`]({{ site.dcv_android_api }}capture-vision-router/multiple-file-processing.html#pausecapturing) and [`resumeCapturing`]({{ site.dcv_android_api }}capture-vision-router/multiple-file-processing.html#resumecapturing). Two new enumeration members, `CapturedStatePaused` and `CapturedStateResumed`, are added to [`CapturedState`]({{ site.dcv_enumerations }}capture-vision-router/capture-state.html?lang=android) as well.
-- Added a new prop the following methods to the [`ObservationParameters`]({{ site.dcv_android_api }}core/intermediate-results/observation-parameters.html) class to specify the `input only` result unit.
- - `setResultUnitTypesOnlyForInput`
- - `getResultUnitTypesOnlyForInput`
-- Added the following methods to the [`RegionObjectElement`]({{ site.dcv_android_api }}core/intermediate-results/region-object-element.html) class to support the intermediate result modification.
- - `setLocation`
- - `clone`
- - `retain`
- - `release`
-- Added a new method `replace` to the [`IntermediateResultUnit`]({{ site.dcv_android_api }}core/intermediate-results/intermediate-result-unit.html) class to support the replacement of intermediate result units.
-- Added `setImageData` methods to the following classes:
- - [`ColourImageUnit`]({{ site.dcv_android_api }}core/intermediate-results/colour-image-unit.html)
- - [`ScaledDownColourImageUnit`]({{ site.dcv_android_api }}core/intermediate-results/scaled-down-colour-image-unit.html)
- - [`GrayscaleImageUnit`]({{ site.dcv_android_api }}core/intermediate-results/grayscale-image-unit.html)
- - [`TransformedGrayscaleImageUnit`]({{ site.dcv_android_api }}core/intermediate-results/transformed-grayscale-image-unit.html)
- - [`EnhancedGrayscaleImageUnit`]({{ site.dcv_android_api }}core/intermediate-results/enhanced-grayscale-image-unit.html)
- - [`BinaryImageUnit`]({{ site.dcv_android_api }}core/intermediate-results/binary-image-unit.html)
- - [`TextureRemovedGrayscaleImageUnit`]({{ site.dcv_android_api }}core/intermediate-results/texture-removed-grayscale-image-unit.html)
- - [`TextureRemovedBinaryImageUnit`]({{ site.dcv_android_api }}core/intermediate-results/texture-removed-binary-image-unit.html)
- - [`TextRemovedBinaryImageUnit`]({{ site.dcv_android_api }}core/intermediate-results/text-removed-binary-image-unit.html)
-- Added new methods to the [`PredetectedRegionsUnit`]({{ site.dcv_android_api }}core/intermediate-results/predetected-regions-unit.html) class to add, remove or set the predetected regions.
-- Added new methods to the [`LineSegmentsUnit`]({{ site.dcv_android_api }}core/intermediate-results/line-segments-unit.html) class to add, remove or set the line segments.
-- Added new methods to the [`TextZonesUnit`]({{ site.dcv_android_api }}core/intermediate-results/text-zones-unit.html) class to add, remove or set the text zones. Added a new class CTextZone to store the information of a single text zone.
-- Added a new method `setContours` to the [`ContourUnit`]({{ site.dcv_android_api }}core/intermediate-results/contours-unit.html) class.
-- Added new methods to the [`TextureDetectionResultUnit`]({{ site.dcv_android_api }}core/intermediate-results/texture-detection-result-unit.html) class to set the X & Y spacing.
-- Added a new intermediate result unit, [`ShortLinesUnit`]({{ site.dcv_android_api }}core/intermediate-results/short-lines-unit.html), to output the detected short lines. The corresponding enumeration member `IntermediateResultUnitTypeShortLines` is added to the [`IntermediateResultUnitType`]({{ site.dcv_enumerations }}core/intermediate-result-unit-type.html?lang=android).
-- Added the following methods to the [`CapturedResultItem`]({{ site.dcv_android_api }}core/basic-structures/captured-result-item.html) class
- - `getTargetROIDefName`
- - `getTaskName`
- - `retain`
- - `release`
-- Added the following methods to the [`CapturedResult`]({{ site.dcv_android_api }}core/basic-structures/captured-result.html) class.
- - `retain`
- - `release`
-- Added a new supported image pixel format, binary 8 inverted. The corresponding enumeration member is added to the [`ImagePixelFormat`]({{ site.dcv_enumerations }}core/image-pixel-format.html?lang=android).
-- Added return value for the `retain` method of the [`IntermediateResultUnit`]({{ site.dcv_android_api }}core/intermediate-results/intermediate-result-unit.html) class. The method will return the pointer of the current `IntermediateResultUnit`.
-- 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/){:target="_blank"} 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/){:target="_blank"} 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.
- - Added `StringLengthRange` for [`TextDetectionMode`]({{ site.dcv_parameter }}reference/image-parameter/text-detection-mode.html){:target="_blank"}.
- - Added `ReferenceTaskNameArray` under [`Location.ReferenceObjectFilter`]({{ site.dcv_parameter }}reference/target-roi-def/location.html#referenceobjectfilter){:target="_blank"} to filter the reference objects generated by the task name.
- - Added the support of the [`OutputTaskSetting`]({{ site.dcv_parameter }}reference/output-task-setting/index.html){:target="_blank"} definition. The following subparameters are available in `OutputTaskSetting` object:
- - [`OutputCondition`]({{ site.dcv_parameter }}reference/output-task-setting/output-condition.html){:target="_blank"}
- - [`TaskResultArray`]({{ site.dcv_parameter }}reference/output-task-setting/output-condition.html#taskresultarray){:target="_blank"}
- - [`TargetROIDefName`]({{ site.dcv_parameter }}reference/target-roi-def/index.html#targetroidefname){:target="_blank"}
- - [`TaskSettingNameArray`]({{ site.dcv_parameter }}reference/output-task-setting/output-condition.html#tasksettingnamearray){:target="_blank"}
- - [`BackwardReferenceOutput`]({{ site.dcv_parameter }}reference/output-task-setting/output-condition.html#backwardreferenceoutput){:target="_blank"}
- - `ReferenceTaskNameArray`
- - `ReferenceResultTypeArray`
- - [`Operator`]({{ site.dcv_parameter }}reference/output-task-setting/output-condition.html){:target="_blank"}
- - [`Name`]({{ site.dcv_parameter }}reference/output-task-setting/name.html){:target="_blank"}
- - [`Offset`]({{ site.dcv_parameter }}reference/target-roi-def/location.html#offset){:target="_blank"} parameter is optimized.
- - Added `ReferenceObjectType` to specify whether the reference object is an atomic object or the whole image.
- - Added `ReferenceXAxis` & `ReferenceYAxis` to define the X & Y axis.
- - Modified `FirstPoint`, `SecondPoint`, `ThirdPoint` & `FourthPoint`. You can specify whether the X or Y coordinate of the point is measured by percentage.
- - Deprecated `ReferenceObjectSize` Type.
-
-#### Changes
-
-- Changed the logic of the [`stopCapturing`]({{ site.dcv_android_api }}capture-vision-router/multiple-file-processing.html#stopCapturing) method.
- - [`CaptureResultReceiver`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html) will not receive results after `stopCapturing` is triggered with `waitForRemainingTasks` false.
- - Support stop capturing after the [`pauseCapturing`]({{ site.dcv_android_api }}capture-vision-router/multiple-file-processing.html#pauseCapturing) method is triggered.
-- Changed the logic of the [`capturedResultItemTypes`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/simplified-capture-vision-settings.html#capturedresultitemtypes) setting of `SimplifiedCaptureVisionSettings`:
- - If the result item types don't match the specified template, the method [`updateSettings`]({{ site.dcv_android_api }}capture-vision-router/settings.html#updatesettings) will return the error code `EC_PARAMETER_VALUE_INVALID` with the message "The captured result item types do not match the task configurations in the template".
- - Based on the `capturedResultItemTypes` setting, the irrelevant tasks will be removed from the template.
- - The `capturedResultItemTypes` should include at least one of the `CRIT_BARCODE`, `CRIT_TEXT_LINE`, `CRIT_DETECTED_QUAD`, `CRIT_NORMALIZED_IMAGE`. Otherwise, the method `updateSettings` will return the error code `EC_PARAMETER_VALUE_INVALID` with the message "The captured result item types should contain at least one task result type".
-- Refactored the [`Contour`]({{ site.dcv_android_api }}core/basic-structures/contour.html) class. Please view API reference - [`Contour`]({{ site.dcv_android_api }}core/basic-structures/contour.html) class for more information.
-- Changed the internal logic of the method [`setResultUnitTypesOnlyForInput`]({{ site.dcv_android_api }}core/intermediate-results/observation-parameters.html#setresultunittypesonlyforinput) of `ObservationParameters`. The method only takes effect when the callback of the specified result unit is implemented.
-
-#### Fixed
-
-- Fixed a crash bug that might happen when triggering the [`setNextImageToReturn`]({{ site.dcv_android_api }}core/basic-structures/image-source-adapter.html#setnextimagetoreturnimageid) method of the `ImageSourceAdapter` class.
-- Fixed a crash bug of the Replace method of the `IntermediateResultUnit` class. The method will return the error code `EC_RESULT_TYPE_MISMATCH_IRREPLACEABLE` when the result type is mismatched.
-- Fixed a bug where error messages are not output when parsing the parameter templates.
-- Fixed a bug where multiple results were output from the same text area.
-- Fixed a bug where the capture might be blocked due to the network latency.
-- Fixed the bugs of usage count. The usage count of text line recognition might be double counted when the intermediate results are output.
-
-## 3.0.20 (12/07/2023)
-
-{%- include release-notes/product-highlight-3.0.0.md -%}
-
-The APIs of Dynamsoft Label Recognizer are comprehensively updated. Please follow the view [upgrade instructions]{{ site.dlr_android }}upgrade.html to update your code.
diff --git a/programming/android/release-notes/index.md b/programming/android/release-notes/index.md
deleted file mode 100644
index a0b8618..0000000
--- a/programming/android/release-notes/index.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-layout: default-layout
-title: Android SDK Release Notes - Dynamsoft Label Recognizer
-description: This is the release notes page of Dynamsoft Label Recognizer for Android SDK.
-keywords: release notes, android
-needAutoGenerateSidebar: false
-permalink: /programming/android/release-notes/index.html
----
-
-# Release Notes - Android
-
-- [3.2.30 (05/15/2024)](android-3.html#3230-05152024)
-- [3.0.20 (12/07/2023)](android-3.html#3020-12072023)
-- [2.2.20 (09/29/2022)](android-2.html#2220-09292022)
-- [2.0 (08/26/2021)](android-2.html#20-08262021)
-- [1.2.1 (06/08/2021)](android-1.html#121-06082021)
-- [1.2 (05/18/2021)](android-1.html#12-05182021)
-- [1.0 (02/24/2021)](android-1.html#10-02242021)
diff --git a/programming/android/samples.md b/programming/android/samples.md
deleted file mode 100644
index 62bb1a2..0000000
--- a/programming/android/samples.md
+++ /dev/null
@@ -1,33 +0,0 @@
----
-layout: default-layout
-title: Android Samples - Dynamsoft Label Recognizer
-description: This is the android samples page of Dynamsoft Label Recognizer.
-keywords: samples, android
-needAutoGenerateSidebar: true
-permalink: /programming/android/samples.html
----
-
-# Demo and Samples
-
-## Samples
-
-| Name | Description |
-| ---- | ----------- |
-| [HelloWorld](hello-world-sample.md) | The simplest video streaming label text scanner. |
-| [MRZScanner](mrz-sample.md) | An example shows how to use Dynamsoft Label Recognizer on scanning MRZ. |
-
-Before you start viewing the samples, the following concepts may help you understand how to get started with Dynamsoft Label Recognizer.
-
-### License
-
-A network connection is required to verify the trial license in the samples. You can request a 30-day trial license via the [Request a Trial License](https://www.dynamsoft.com/customer/license/trialLicense?product=dlr&utm_source=docs&package=android){:target="_blank"} link. If you download the [Installation Package](https://www.dynamsoft.com/label-recognition/downloads/?product=dlr&utm_source=docs&package=android), it comes with a 30-day trial license by default.
-
-### Video Text Line Recognizing
-
-Most of the Dynamsoft Label Recognizer mobile samples are designed for video label text recognizing. Dynamsoft Camera Enhancer (DCE) is applied to the video streaming scanning samples. The following features in the samples are powered by DCE:
-
-- Capture video frames for label text recognition.
-- Specify a scan region.
-- Highlighting the recognized label text areas.
-
-View the [API reference](api-reference/camera-enhancer/index.md) for more details
diff --git a/programming/android/samples/recognize-from-camera-enhancer.md b/programming/android/samples/recognize-from-camera-enhancer.md
deleted file mode 100644
index acc1a31..0000000
--- a/programming/android/samples/recognize-from-camera-enhancer.md
+++ /dev/null
@@ -1,61 +0,0 @@
----
-layout: default-layout
-title: Recognize Text Lines from Camera Enhancer - Dynamsoft Label Recognizer Android edition
-description: This is page introduce RecognizeTextLinesWithCameraEnhancer sample of Dynamsoft Label Recognizer Android edition.
-keywords: HelloWorld, Android
-needAutoGenerateSidebar: true
----
-
-# RecognizeTextLinesWithCameraEnhancer
-
-This sample illustrates how to recognize text lines from the video streaming. In this sample, you can read how to use [`DynamsoftCameraEnhancer`]({{ site.dce_android }}){:target="_blank"} to capture the video streaming.
-
-**View the sample code**
-
-* RecognizeTextLineWithCameraEnahcner Sample (Java)
-* RecognizeTextLineWithCameraEnahcner Sample (Kotlin)
-
-There are some basic concepts that are helpful on understanding the SDK.
-
-## CaptureVisionRouter
-
-[`CaptureVisionRouter`]({{ site.dcv_android_api }}capture-vision-router/capture-vision-router.html) is a router that responsible for retrieving images from the source, coordinating the image processing tasks and dispatching the processing results. To implement a text line recognizing task, what you have to do are:
-
-* Set a standard input for your `CaptureVisionRouter` instance.
-* Set a result receiver via your `CaptureVisionRouter` instance.
-* Tell your `CaptureVisionRouter` instance to start working and specify a text line recognizing template with its name.
-* (Additional) Configure the image processing Parameters to optimize the text line recognizing performance.
-
-## Standard Input
-
-Use the [`setInput`]({{ site.dcv_android_api }}capture-vision-router/multiple-file-processing.html#setinput) method of the `CaptureVisionRouter` to bind an `ImageSourceAdapter` (ISA) instance is the simplest way to access to the standard input. `CameraEnhancer` is one of the official implementation of the ISA for you to quickly set up the mobile camera as the image source.
-
-## Output
-
-To get the output result, you have to implement the `CapturedResultReceiver` and bind it with your `CaptureVisionRouter` instance. You will receive the text line recognizing results in the [`onRecognizedTextLinesReceived`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html#onrecognizedtextlinesreceived) method each time when a image (video frame) is processed.
-
-## Control the Start & Stop of the Capturing
-
-If only one text line recognizing result is required in one scan, you can stop the text line recognizing thread via [`stopCapturing`]({{ site.dcv_android_api }}capture-vision-router/multiple-file-processing.html#stopcapturing) method. You can call the [`startCapturing`]({{ site.dcv_android_api }}capture-vision-router/multiple-file-processing.html#startcapturing) at any time when you want to restart the text line recognizing.
-
-
->- Java
->- Kotlin
->
->1.
-```java
-@Override
-public void onRecognizedTextLinesReceived(RecognizedTextLinesResult result) {
- if (result != null && result.getItems() != null && result.getItems().length > 0){
- runOnUiThread(() -> mRouter.stopCapturing());
- }
-}
-```
-2.
-```kotlin
-override fun onRecognizedTextLinesReceived(result: RecognizedTextLinesResult) {
- if (result?.items != null && result.items.isNotEmpty()) {
- runOnUiThread { mRouter.stopCapturing() }
- }
-}
-```
diff --git a/programming/android/upgrade-v3.0.20.md b/programming/android/upgrade-v3.0.20.md
deleted file mode 100644
index 1442870..0000000
--- a/programming/android/upgrade-v3.0.20.md
+++ /dev/null
@@ -1,171 +0,0 @@
----
-layout: default-layout
-title: How to upgrade - Dynamsoft Label Recognizer for Android
-description: Follow the upgrade instructions to learn to upgrade Label Recognizer SDK Android edition from version 2.x to version 3.x with simple steps.
-keywords: updates guide, android
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /programming/android/upgrade-v3.0.20.html
----
-
-# How to Upgrade
-
-## From Version 2.x to 3.x
-
-Dynamsoft Label Recognizer SDK has been refactored to integrate with [`DynamsoftCaptureVision (DCV)`]({{ site.dcv_introduction }}){:target="_blank"} architecture. To upgrade from version 2.x or earlier to 3.x, we recommend you to follow the [User Guide](user-guide.md) and re-write your codes.
-
-### Update the Libraries to 3.x Version
-
-The Dynamsoft Label Recognizer SDK has been split into multiple libraries from the previous single library, and the dependency configuration in the `app\build.gradle` file needs to be updated accordingly.
-
-- Local Dependency
- Put the following `aar` files into `libs` directory and update `app\build.gradle` file:
-
- - `DynamsoftCaptureVisionRouter.aar`
- - `DynamsoftLabelRecognizer.aar`
- - `DynamsoftImageProcessing.aar`
- - `DynamsoftCore.aar`
- - `DynamsoftLicense.aar`
- - `DynamsoftCameraEnhancer.aar`(optional)
- - `DynamsoftUtility.aar`(optional)
-
- ```groovy
- dependencies {
- implementation fileTree(include: ['*.aar'], dir: 'libs')
- }
- ```
-
-- Remote Dependency(Maven)
- update `app\build.gradle` file:
-
- ```groovy
- dependencies {
- implementation 'com.dynamsoft:dynamsoftcapturevisionrouter:{version-number}'
- implementation 'com.dynamsoft:dynamsoftlabelrecognizer:{version-number}'
- implementation 'com.dynamsoft:dynamsoftcameraenhancer:{version-number}'
- implementation 'com.dynamsoft:dynamsoftimageprocessing:{version-number}'
- implementation 'com.dynamsoft:dynamsoftcore:{version-number}'
- implementation 'com.dynamsoft:dynamsoftlicense:{version-number}'
- implementation 'com.dynamsoft:dynamsoftutility:{version-number}'
- }
- ```
-
- >Note: Please view [user guide](user-guide.md#add-the-libraries-via-maven) for the correct version number.
-
-### Update the License Activation Code
-
-- Java code in 2.x:
-
-```java
-LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", this, new LicenseVerificationListener() {
- @Override
- public void licenseVerificationCallback(boolean isSuccess, CoreException error) {
- if (!isSuccess) {
- error.printStackTrace();
- }
- }
-});
-```
-
-- Java code in 3.x:
-
-```java
-LicenseManager.initLicense("Put your license", this, new LicenseVerificationListener() {
- @Override
- public void onLicenseVerified(boolean isSuccess, Exception error) {
- if(!isSuccess){
- error.printStackTrace();
- }
- }
-});
-```
-
-### Update Single Image Recognizing APIs
-
-The APIs for recognizing text from single image has been adjusted as follows:
-
-| Old APIs | New APIs |
-| :----------- | :------- |
-| `LabelRecognizer.recognizeFile` | `CaptureVisionRouter.capture(String filePath, String templateName)` |
-| `LabelRecognizer.recognizeFileInMemory` | `CaptureVisionRouter.capture(byte[] fileBytes, String templateName)` |
-| `LabelRecognizer.recognizeBuffer` | `CaptureVisionRouter.capture(ImageData imageData, String templateName)` |
-| `LabelRecognizer.recognizeImage` | `CaptureVisionRouter.capture(Bitmap bitmap, String templateName)` |
-| `class DLRResult` | `class CapturedResult/class RecognizedTextLinesResult` |
-
-### Update Video Streaming Recognizing APIs
-
-The APIs for recognizing video frames has been adjusted as follows:
-
-| Old APIs | New APIs |
-| :----------- | :------- |
-| `LabelRecognizer.setImageSource` | `CaptureVisionRouter.setInput` |
-| `LabelRecognizer.startScanning` | `CaptureVisionRouter.startCapturing` |
-| `LabelRecognizer.stopScanning` | `CaptureVisionRouter.stopCapturing` |
-| `LabelRecognizer.setLabelResultListener` | `CaptureVisionRouter.addResultReceiver` |
-| `interface ImageSource` | `interface ImageSourceAdapter` |
-| `interface LabelResultListener` | `interface CapturedResultReceiver` |
-| `class DLRLineResult` | `class TextLineResultItem` |
-
-### Migrate Your Templates
-
-The template system is upgraded. The template you used for the previous version can't be directly recognized by the new version. Please contact us to upgrade your template.
-
-The template-based APIs have been updated as follows:
-
-| Old APIs | New APIs |
-| :----------- | :------- |
-| `LabelRecognizer.initRuntimeSettingsFromFile` | `CaptureVisionRouter.initSettingsFromFile` |
-| `LabelRecognizer.initRuntimeSettings` | `CaptureVisionRouter.initSettings` |
-| `LabelRecognizer.outputRuntimeSettingsToFile` | `CaptureVisionRouter.outputSettingsToFile` |
-| `LabelRecognizer.outputRuntimeSettings` | `CaptureVisionRouter.outputSettings` |
-| `LabelRecognizer.resetRuntimeSettings` | `CaptureVisionRouter.resetSettings` |
-
-### Migrate Your DLRRuntimeSettings
-
-The class `DLRRuntimeSettings` has been refactored. It retains commonly used properties while removing the previously complex property settings, which are now exclusively supported through templates.
-
-The APIs for accessing and updating `DLRRuntimeSettings` has been adjusted as follows:
-
-| Old APIs | New APIs |
-| :----------- | :------- |
-| `LabelRecognizer.getRuntimeSettings` | `CaptureVisionRouter.getSimplifiedSettings` |
-| `LabelRecognizer.updateRuntimeSettings` | `CaptureVisionRouter.updateSettings` |
-
-#### Migrate to SimplifiedCaptureVisionSettings
-
-The following properties are replaced by similar properties under `SimplifiedCaptureVisionSettings`. They can also be set via a template file(String).
-
-| PublicRuntimeSettings Property | SimplifiedCaptureVisionSettings Property | Template File Parameter |
-| ------------------------------- | ----------------------------------------- | ----------------------- |
-| `textArea` | [`roi`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/simplified-capture-vision-settings.html#roi) & [`roiMeasuredInPercentage`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/simplified-capture-vision-settings.html#roimeasuredinpercentage) | [`TargetROIDef.Location.Offset`]({{ site.dcv_parameters_reference }}target-roi-def/location.html?lproduct=dlr&repoType=core){:target="_blank"} |
-| `timeout` | [`timeout`]({{ site.dcv_android_api }}capture-vision-router/auxiliary-classes/simplified-capture-vision-settings.html#timeout) | [`CaptureVisionTemplates.Timeout`]({{ site.dcv_parameters_reference }}capture-vision-template/timeout.html?lproduct=dlr&repoType=core){:target="_blank"} |
-
-#### Migrate to SimplifiedLabelRecognizerSettings
-
-The following properties are replaced by similar properties under `SimplifiedLabelRecognizerSettings`. The majority of them can also be set via a template file(String).
-
-| PublicRuntimeSettings Property | SimplifiedLabelRecognizerSettings Property | Template File Parameter |
-| ------------------------------- | ----------------------------------------- | ----------------------- |
-| `characterModelName` | [`characterModelName`]({{ site.dlr_android_api }}simplified-label-recognizer-settings.html#charactermodelname) | [`LabelRecognizerTaskSetting.CharacterModelName`]({{ site.dcv_parameters_reference }}label-recognizer-task-settings/character-model-name.html?lproduct=dlr&repoType=core){:target="_blank"} |
-| `maxThreadCount` | [`maxThreadsInOneTask`]({{ site.dlr_android_api }}simplified-label-recognizer-settings.html#maxthreadsinonetask) | [`LabelRecognizerTaskSetting.MaxThreadsInOneTask`]({{ site.dcv_parameters_reference }}label-recognizer-task-settings/max-threads-in-one-task.html?lproduct=dlr&repoType=core){:target="_blank"} |
-
-| FurtherModes Property | SimplifiedLabelRecognizerSettings Property | Template File Parameter |
-| ---------------------- | ----------------------------------------- | ----------------------- |
-| `grayscaleTransformationModes` | [`grayscaleTransformationModes`]({{ site.dlr_android_api }}simplified-label-recognizer-settings.html#grayscaletransformationmodes) | [`ImageParameter.GrayscaleTransformationModes`]({{ site.dcv_parameters_reference }}image-parameter/grayscale-enhancement-modes.html?lproduct=dlr&repoType=core){:target="_blank"} |
-| `grayscaleEnhancementModes` | [`grayscaleEnhancementModes`]({{ site.dlr_android_api }}simplified-label-recognizer-settings.html#grayscaleenhancementmodes) | [`ImageParameter.GrayscaleEnhancementModes`]({{ site.dcv_parameters_reference }}image-parameter/grayscale-transformation-modes.html?lproduct=dlr&repoType=core){:target="_blank"} |
-
-#### Migrate to Template File
-
-The following properties can only be set via a template file. Please [contact us](https://www.dynamsoft.com/company/customer-service/#contact){:target="_blank"} so that we can help you to transform your current settings to a new template file.
-
-| PublicRuntimeSettings Property | Template File Parameter |
-| ------------------------------- | ----------------------- |
-| `binarizationModes` | [`ImageParameter.BinarizationModes`]({{ site.dcv_parameters_reference }}image-parameter/binarization-modes.html?lproduct=dlr&repoType=core){:target="_blank"} |
-| `dictionaryPath` | [`LabelRecognizerTaskSettings.DictionaryPath`]({{ site.dcv_parameters_reference }}label-recognizer-task-settings/dictionary-path.html?lproduct=dlr&repoType=core){:target="_blank"} |
-| `dictionaryCorrectionThreshold` | [`LabelRecognizerTaskSettings.DictionaryCorrectionThreshold`]({{ site.dcv_parameters_reference }}label-recognizer-task-settings/dictionary-correction-thresholds.html?lproduct=dlr&repoType=core){:target="_blank"} |
-
-| PublicRuntimeSettings.furtherModes Property | Template File Parameter |
-| ---------------------- | ----------------------- |
-| `colourConversionModes` | [`ImageParameter.ColourConversionModes`]({{ site.dcv_parameters_reference }}image-parameter/colour-conversion-modes.html?lproduct=dlr&repoType=core){:target="_blank"} |
-| `regionPredetectionModes` | [`ImageParameter.RegionPredetectionModes`]({{ site.dcv_parameters_reference }}image-parameter/region-predetection-modes.html?lproduct=dlr&repoType=core){:target="_blank"} |
-| `textureDetectionModes` | [`ImageParameter.TextureDetectionModes`]({{ site.dcv_parameters_reference }}image-parameter/texture-detection-modes.html?lproduct=dlr&repoType=core){:target="_blank"} |
diff --git a/programming/android/user-guide-v3.0.20.md b/programming/android/user-guide-v3.0.20.md
deleted file mode 100644
index 63a5570..0000000
--- a/programming/android/user-guide-v3.0.20.md
+++ /dev/null
@@ -1,525 +0,0 @@
----
-layout: default-layout
-title: Android User Guide - Dynamsoft Label Recognizer
-description: This is the user guide page of Dynamsoft Label Recognizer for Android Language.
-keywords: a, user guide
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
----
-
-# Dynamsoft Label Recognizer - Android User Guide
-
-- [Dynamsoft Label Recognizer - Android User Guide](#dynamsoft-label-recognizer---android-user-guide)
- - [Requirements](#requirements)
- - [Add the Libraries](#add-the-libraries)
- - [Add the Libraries Manually](#add-the-libraries-manually)
- - [Add the Libraries via Maven](#add-the-libraries-via-maven)
- - [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 Capture Vision Router](#initialize-capture-vision-router)
- - [Display Recognized Textline Results](#display-recognized-textline-results)
- - [Build and Run the Project](#build-and-run-the-project)
-
-## 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 3.4+ (Android Studio 4.2+ recommended).
-
-## Add the Libraries
-
-The Dynamsoft Label Recognizer (DLR) Android SDK comes with seven libraries:
-
- | File | Description | Mandatory/Optional |
- |:-----|:------------|:-------------------|
- | `DynamsoftLabelRecognizer.aar` | The Dynamsoft Label Recognizer module identifies and recognizes text labels such as passport MRZs, ID cards, and VIN numbers. | Mandatory |
- | `DynamsoftCore.aar` | 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. | Mandatory |
- | `DynamsoftCaptureVisionRouter.aar` | 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. | Mandatory |
- | `DynamsoftImageProcessing.aar` | The Dynamsoft Image Processing module facilitates digital image processing and supports operations for other modules, including the Barcode Reader, Label Recognizer, and Document Normalizer. | Mandatory |
- | `DynamsoftLicense.aar` | The Dynamsoft License module manages the licensing aspects of Dynamsoft SDKs based on the DCV (Dynamsoft Capture Vision) architecture. | Mandatory |
- | `DynamsoftCameraEnhancer.aar` | The [Dynamsoft Camera Enhancer]({{ site.dce_android }}){:target="_blank"} 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. | Optional |
- | `DynamsoftUtility.aar` | 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. | Optional |
-
-There are two ways to add the libraries into your project - **Manually** or via **Maven**.
-
-### Add the Libraries Manually
-
-1. Download the SDK package from the Dynamsoft Website. After unzipping, seven **aar** files can be found in the **Dynamsoft\Libs** directory:
-
- - **DynamsoftCaptureVisionRouter.aar**
- - **DynamsoftLabelRecognizer.aar**
- - **DynamsoftCore.aar**
- - **DynamsoftImageProcessing.aar**
- - **DynamsoftLicense.aar**
- - **DynamsoftUtility.aar**
- - **DynamsoftCameraEnhancer.aar**
-
-2. Copy the above seven **aar** files to the target directory such as *[App Project Root Path]\app\libs*
-
-3. Open the file *[App Project Root Path]\app\build.gradle* and add the reference in the dependencies:
-
- ```groovy
- dependencies {
- implementation fileTree(dir: 'libs', include: ['*.aar'])
-
- def camerax_version = '1.1.0'
- implementation "androidx.camera:camera-core:$camerax_version"
- implementation "androidx.camera:camera-camera2:$camerax_version"
- implementation "androidx.camera:camera-lifecycle:$camerax_version"
- implementation "androidx.camera:camera-view:$camerax_version"
- }
- ```
-
- > Note:
- >
- > DCE 4.x is based on Android CameraX, so you need to add the CameraX dependency manually.
-
-4. Click **Sync Now**. After the synchronization is complete, the SDK is added to the project.
-
-### Add the Libraries via Maven
-
-1. Open the file *[App Project Root Path]\app\build.gradle* and add the Maven repository:
-
- ```groovy
- repositories {
- maven {
- url "https://download2.dynamsoft.com/maven/aar"
- }
- }
- ```
-
-2. Add the references in the dependencies:
-
- ```groovy
- dependencies {
- implementation 'com.dynamsoft:dynamsoftcapturevisionrouter:2.0.21'
- implementation 'com.dynamsoft:dynamsoftlabelrecognizer:3.0.20'
- implementation 'com.dynamsoft:dynamsoftimageprocessing:2.0.21'
- implementation 'com.dynamsoft:dynamsoftcore:3.0.20'
- implementation 'com.dynamsoft:dynamsoftlicense:3.0.30'
- implementation 'com.dynamsoft:dynamsoftcameraenhancer:4.0.2'
- implementation 'com.dynamsoft:dynamsoftutility:1.0.21'
- }
- ```
-
-3. Click **Sync Now**. After the synchronization is complete, the SDK is added to the project.
-
-## Build Your First Application
-
-In this section, we are going to explain how to create a Hello World implementation similar to our simple `ReadTextLinesWithCameraEnhancer` app for recognizing text from camera video input.
-
->Note:
->
->- Android Studio 2022.3.1 is used here in this guide.
->- You can get similar source code from
-> - ReadTextLinesWithCameraEnhancer Sample (Java)
-> - ReadTextLinesWithCameraEnhancer Sample (Kotlin)
-
-### Create a New Project
-
-1. Open Android Studio and select New Project… in the File > New > New Project… menu to create a new project.
-
-2. Choose the correct template for your project. In this sample, we'll use `Empty Activity`.
-
-3. When prompted, choose your app name (`ReadTextLinesWithCameraEnhancer`) and set the Save location, Language, and Minimum SDK (21)
- >Note: With minSdkVersion set to 21, your app is available on more than 94.1% of devices on the Google Play Store (last update: March 2021).
-
-### Include the Library
-
-To add the SDK to your new project, please read [add the libraries](#add-the-libraries) section for more details.
-
-### Initialize the License
-
-1. Initialize the license in the file `MainActivity.java`.
-
-
- >- Java
- >- Kotlin
- >
- >1.
- ```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);
- LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", this, (isSuccess, error) -> {
- if (!isSuccess) {
- error.printStackTrace();
- runOnUiThread(new Runnable() {
- @Override
- public void run() {
- Toast ts = Toast.makeText(getBaseContext(), "error: " + error.getMessage(), Toast.LENGTH_LONG);
- ts.show();
- }
- });
- }
- });
- }
- }
- ```
- 2.
- ```kotlin
- import com.dynamsoft.license.LicenseManager;
- class MainActivityKt : AppCompatActivity() {
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_main_kt)
- LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", this) { isSuccess, error ->
- if (!isSuccess) {
- error.printStackTrace()
- runOnUiThread {
- val ts = Toast.makeText(
- baseContext,
- "error: " + error.message,
- Toast.LENGTH_LONG
- )
- ts.show()
- }
- }
- }
- }
- }
- ```
-
- >Note:
- >
- >- Network connection is required for the license to work.
- >- The license string here will grant you a 24 hour trial license.
- >- You can request a 30-day trial license via the [Request a Trial License](https://www.dynamsoft.com/customer/license/trialLicense?product=dlr&utm_source=guide&package=android){:target="_blank"} 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 module, initialize the `CameraView` and bind to the created `CameraEnhancer` instance in the file `MainActivity.java`.
-
-
- >- Java
- >- Kotlin
- >
- >1.
- ```java
- import com.dynamsoft.dce.CameraView;
- import com.dynamsoft.dce.CameraEnhancer;
- import com.dynamsoft.dce.utils.PermissionUtil;
- public class MainActivity extends AppCompatActivity {
- private CameraEnhancer mCamera;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- // Add camera view for previewing video.
- PermissionUtil.requestCameraPermission(this);
- CameraView cameraView = findViewById(R.id.dce_camera_view);
- mCamera = new CameraEnhancer(cameraView, this);
- }
- }
- ```
- 2.
- ```kotlin
- import com.dynamsoft.dce.CameraView
- import com.dynamsoft.dce.CameraEnhancer
- import com.dynamsoft.dce.utils.PermissionUtil
- class MainActivityKt : AppCompatActivity() {
- private lateinit var mCamera: CameraEnhancer
- override fun onCreate(savedInstanceState: Bundle?) {
- ...
- PermissionUtil.requestCameraPermission(this)
- val cameraView: CameraView = findViewById(R.id.dce_camera_view)
- mCamera = CameraEnhancer(cameraView, this)
- }
- }
- ```
-
-3. Define a scan region for recognition.
-
-
- >- Java
- >- Kotlin
- >
- >1.
- ```java
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- DSRect region = new DSRect(0.1f, 0.4f, 0.9f, 0.6f, true);
- try {
- mCamera.setScanRegion(region);
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- }
- }
- ```
- 2.
- ```kotlin
- class MainActivityKt : AppCompatActivity() {
- override fun onCreate(savedInstanceState: Bundle?) {
- ...
- val region = DSRect(0.1f, 0.4f, 0.9f, 0.6f, true)
- try {
- mCamera.scanRegion = region
- } catch (e: CameraEnhancerException) {
- e.printStackTrace()
- }
- }
- }
- ```
-
-### Initialize Capture Vision Router
-
-1. Import and initialize the `CaptureVisionRouter` and set the previously created `CameraEnhancer` instance as its input.
-
-
- >- Java
- >- Kotlin
- >
- >1.
- ```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.
- ```kotlin
- import com.dynamsoft.cvr.CaptureVisionRouter
- import com.dynamsoft.cvr.CaptureVisionRouterException
- class MainActivityKt : AppCompatActivity() {
- private lateinit var mRouter: CaptureVisionRouter
- override fun onCreate(savedInstanceState: Bundle?) {
- ...
- mRouter = CaptureVisionRouter(this)
- try {
- mRouter.setInput(mCamera)
- } catch (e: CaptureVisionRouterException) {
- throw RuntimeException(e)
- }
- }
- }
- ```
-
-2. Create a `CapturedResultReceiver` and register with the `CaptureVisionRouter` instance to get recognized textline results.
-
-
- >- Java
- >- Kotlin
- >
- >1.
- ```java
- import com.dynamsoft.core.basic_structures.CapturedResultReceiver;
- import com.dynamsoft.dlr.RecognizedTextLinesResult;
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- mRouter.addResultReceiver(new CapturedResultReceiver() {
- @Override
- public void onRecognizedTextLinesReceived(RecognizedTextLinesResult result) {
- runOnUiThread(() -> showResults(result.getItems()));
- }
- });
- }
- }
- ```
- 2.
- ```kotlin
- import com.dynamsoft.core.basic_structures.CapturedResultReceiver
- import com.dynamsoft.dlr.RecognizedTextLinesResult
- class MainActivityKt : AppCompatActivity() {
- override fun onCreate(savedInstanceState: Bundle?) {
- ...
- mRouter.addResultReceiver(object : CapturedResultReceiver {
- override fun onRecognizedTextLinesReceived(result: RecognizedTextLinesResult) {
- showResults(result.items)
- }
- })
- }
- }
- ```
-
-3. Override the `MainActivity.onResume` and `MainActivity.onPause` functions to start and stop video text recognition, respectively. After starting recognition, the library will automatically recognize text in video frames from the Camera Enhancer, then send the recognized text line results to the callback.
-
-
- >- Java
- >- Kotlin
- >
- >1.
- ```java
- import com.dynamsoft.cvr.EnumPresetTemplate;
- import com.dynamsoft.dce.CameraEnhancerException;
- public class MainActivity extends AppCompatActivity {
- ...
- @Override
- public void onResume() {
- try {
- mCamera.open();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- mRouter.startCapturing(EnumPresetTemplate.PT_RECOGNIZE_TEXT_LINES, new CompletionListener() {
- @Override
- public void onSuccess() {
- }
- @Override
- public void onFailure(int errorCode, String errorString) {
- runOnUiThread(() -> Toast.makeText(MainActivity.this, errorString, Toast.LENGTH_SHORT).show());
- }
- });
- super.onResume();
- }
- @Override
- public void onPause() {
- try {
- mCamera.close();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- mRouter.stopCapturing();
- super.onPause();
- }
- }
- ```
- 2.
- ```kotlin
- import com.dynamsoft.cvr.EnumPresetTemplate
- import com.dynamsoft.dce.CameraEnhancerException
- public class MainActivity extends AppCompatActivity {
- ...
- public override fun onResume() {
- try {
- mCamera.open()
- } catch (e: CameraEnhancerException) {
- e.printStackTrace()
- }
- mRouter.startCapturing(
- EnumPresetTemplate.PT_RECOGNIZE_TEXT_LINES,
- object : CompletionListener {
- override fun onSuccess() {}
- override fun onFailure(errorCode: Int, errorString: String) {
- runOnUiThread {
- Toast.makeText(
- this@MainActivity,
- errorString,
- Toast.LENGTH_SHORT
- ).show()
- }
- }
- })
- super.onResume()
- }
- public override fun onPause() {
- try {
- mCamera.close()
- } catch (e: CameraEnhancerException) {
- e.printStackTrace()
- }
- mRouter.stopCapturing()
- super.onPause()
- }
- }
- ```
-
-### Display Recognized Textline Results
-
-1. In the Project window, open **app > res > layout > `activity_main.xml`**, create a text view control under the root node.
-
- ```xml
- ...
-
- ```
-
-2. Display the text result(s) in the text view.
-
-
- >- Java
- >- Kotlin
- >
- >1.
- ```java
- ...
- public class MainActivity extends AppCompatActivity {
- ...
- private TextView tvRes;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- tvRes = findViewById(R.id.tv_res);
- }
- private void showResults(TextLineResultItem[] results) {
- StringBuilder resultBuilder = new StringBuilder();
- if (results != null) {
- for (TextLineResultItem result : results) {
- resultBuilder.append(result.getText()).append("\n\n");
- }
- }
- runOnUiThread(() -> tvRes.setText(resultBuilder.toString()));
- }
- }
- ```
- 2.
- ```kotlin
- ...
- class MainActivityKt : AppCompatActivity() {
- ...
- private lateinit var tvRes: TextView
- override fun onCreate(savedInstanceState: Bundle?) {
- ...
- tvRes = findViewById(R.id.tv_res)
- }
- private fun showResults(results: Array?) {
- val resultBuilder = StringBuilder()
- if (results != null) {
- for (result in results) {
- resultBuilder.append(result.text).append("\n\n")
- }
- }
- runOnUiThread { tvRes.text = resultBuilder.toString() }
- }
- }
- ```
-
-### 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 full source code of all the steps above:
-
-- ReadTextLinesWithCameraEnhancer Sample (Java)
-- ReadTextLinesWithCameraEnhancer Sample (Kotlin)
diff --git a/programming/android/user-guide.md b/programming/android/user-guide.md
deleted file mode 100644
index 6f458e2..0000000
--- a/programming/android/user-guide.md
+++ /dev/null
@@ -1,532 +0,0 @@
----
-layout: default-layout
-title: Android User Guide - Dynamsoft Label Recognizer
-description: This is the user guide page of Dynamsoft Label Recognizer for Android Language.
-keywords: a, user guide
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
----
-
-# Dynamsoft Label Recognizer - Android User Guide
-
-- [Dynamsoft Label Recognizer - Android User Guide](#dynamsoft-label-recognizer---android-user-guide)
- - [Requirements](#requirements)
- - [Add the Libraries](#add-the-libraries)
- - [Add the Libraries Manually](#add-the-libraries-manually)
- - [Add the Libraries via Maven](#add-the-libraries-via-maven)
- - [Build Your First Application](#build-your-first-application)
- - [Create a New Project](#create-a-new-project)
- - [Include the Library](#include-the-library)
- - [Deploy the CharacterModels](#deploy-the-charactermodels)
- - [Initialize the License](#initialize-the-license)
- - [Initialize the Camera Module](#initialize-the-camera-module)
- - [Initialize Capture Vision Router](#initialize-capture-vision-router)
- - [Display Recognized Textline Results](#display-recognized-textline-results)
- - [Build and Run the Project](#build-and-run-the-project)
-
-## 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 3.4+ (Android Studio 4.2+ recommended).
-
-## Add the Libraries
-
-The Dynamsoft Label Recognizer (DLR) Android SDK comes with seven libraries:
-
- | File | Description | Mandatory/Optional |
- |:-----|:------------|:-------------------|
- | `DynamsoftLabelRecognizer.aar` | The Dynamsoft Label Recognizer module identifies and recognizes text labels such as passport MRZs, ID cards, and VIN numbers. | Mandatory |
- | `DynamsoftCore.aar` | 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. | Mandatory |
- | `DynamsoftCaptureVisionRouter.aar` | 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. | Mandatory |
- | `DynamsoftImageProcessing.aar` | The Dynamsoft Image Processing module facilitates digital image processing and supports operations for other modules, including the Barcode Reader, Label Recognizer, and Document Normalizer. | Mandatory |
- | `DynamsoftNeuralNetwork.aar` | 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. | Mandatory |
- | `DynamsoftLicense.aar` | The Dynamsoft License module manages the licensing aspects of Dynamsoft SDKs based on the DCV (Dynamsoft Capture Vision) architecture. | Mandatory |
- | `DynamsoftCameraEnhancer.aar` | The [Dynamsoft Camera Enhancer]({{ site.dce_android }}){:target="_blank"} 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. | Optional |
- | `DynamsoftUtility.aar` | 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. | Optional |
-
-There are two ways to add the libraries into your project - **Manually** or via **Maven**.
-
-### Add the Libraries Manually
-
-1. Download the SDK package from the Dynamsoft Website. After unzipping, seven **aar** files can be found in the **Dynamsoft\Libs** directory:
-
- - **DynamsoftCaptureVisionRouter.aar**
- - **DynamsoftLabelRecognizer.aar**
- - **DynamsoftCore.aar**
- - **DynamsoftImageProcessing.aar**
- - **DynamsoftNeuralNetwork.aar**
- - **DynamsoftLicense.aar**
- - **DynamsoftUtility.aar**
- - **DynamsoftCameraEnhancer.aar**
-
-2. Copy the above seven **aar** files to the target directory such as *[App Project Root Path]\app\libs*
-
-3. Open the file *[App Project Root Path]\app\build.gradle* and add the reference in the dependencies:
-
- ```groovy
- dependencies {
- implementation fileTree(dir: 'libs', include: ['*.aar'])
-
- def camerax_version = '1.1.0'
- implementation "androidx.camera:camera-core:$camerax_version"
- implementation "androidx.camera:camera-camera2:$camerax_version"
- implementation "androidx.camera:camera-lifecycle:$camerax_version"
- implementation "androidx.camera:camera-view:$camerax_version"
- }
- ```
-
- > Note:
- >
- > DCE 4.x is based on Android CameraX, so you need to add the CameraX dependency manually.
-
-4. Click **Sync Now**. After the synchronization is complete, the SDK is added to the project.
-
-### Add the Libraries via Maven
-
-1. Open the file *[App Project Root Path]\app\build.gradle* and add the Maven repository:
-
- ```groovy
- repositories {
- maven {
- url "https://download2.dynamsoft.com/maven/aar"
- }
- }
- ```
-
-2. Add the references in the dependencies:
-
- ```groovy
- dependencies {
- implementation 'com.dynamsoft:dynamsoftlabelrecognizerbundle:3.2.3000'
- }
- ```
-
-3. Click **Sync Now**. After the synchronization is complete, the SDK is added to the project.
-
-## Build Your First Application
-
-In this section, we are going to explain how to create a Hello World implementation similar to our simple `ReadTextLinesWithCameraEnhancer` app for recognizing text from camera video input.
-
->Note:
->
->- Android Studio 2022.3.1 is used here in this guide.
->- You can get similar source code from
-> - ReadTextLinesWithCameraEnhancer Sample (Java)
-> - ReadTextLinesWithCameraEnhancer Sample (Kotlin)
-
-### Create a New Project
-
-1. Open Android Studio and select New Project… in the File > New > New Project… menu to create a new project.
-
-2. Choose the correct template for your project. In this sample, we'll use `Empty Activity`.
-
-3. When prompted, choose your app name (`ReadTextLinesWithCameraEnhancer`) and set the Save location, Language, and Minimum SDK (21)
- >Note: With minSdkVersion set to 21, your app is available on more than 94.1% of devices on the Google Play Store (last update: March 2021).
-
-### Include the Library
-
-To add the SDK to your new project, please read [add the libraries](#add-the-libraries) section for more details.
-
-### Deploy the CharacterModels
-
-A `CharacterModel` is a file that trained to support the text line recognition. Before implementing the label recognizing tasks, you have to include the required `CharacterModels` 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.
-
-2. Under the assets folder, create a folder named **CharacterModel**
-
-3. Copy your `CharacterModel` file(s) to the assets folder. In this guide we put the **NumberLetter.data** to the `CharacterModel` folder.
-
-### Initialize the License
-
-1. Initialize the license in the file `MainActivity.java`.
-
-
- >- Java
- >- Kotlin
- >
- >1.
- ```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);
- LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", this, (isSuccess, error) -> {
- if (!isSuccess) {
- error.printStackTrace();
- runOnUiThread(new Runnable() {
- @Override
- public void run() {
- Toast ts = Toast.makeText(getBaseContext(), "error: " + error.getMessage(), Toast.LENGTH_LONG);
- ts.show();
- }
- });
- }
- });
- }
- }
- ```
- 2.
- ```kotlin
- import com.dynamsoft.license.LicenseManager;
- class MainActivityKt : AppCompatActivity() {
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_main_kt)
- LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", this) { isSuccess, error ->
- if (!isSuccess) {
- error.printStackTrace()
- runOnUiThread {
- val ts = Toast.makeText(
- baseContext,
- "error: " + error.message,
- Toast.LENGTH_LONG
- )
- ts.show()
- }
- }
- }
- }
- }
- ```
-
- >Note:
- >
- >- Network connection is required for the license to work.
- >- The license string here will grant you a 24 hour trial license.
- >- You can request a 30-day trial license via the [Request a Trial License](https://www.dynamsoft.com/customer/license/trialLicense?product=dlr&utm_source=guide&package=android){:target="_blank"} 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 module, initialize the `CameraView` and bind to the created `CameraEnhancer` instance in the file `MainActivity.java`.
-
-
- >- Java
- >- Kotlin
- >
- >1.
- ```java
- import com.dynamsoft.dce.CameraView;
- import com.dynamsoft.dce.CameraEnhancer;
- import com.dynamsoft.dce.utils.PermissionUtil;
- public class MainActivity extends AppCompatActivity {
- private CameraEnhancer mCamera;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- // Add camera view for previewing video.
- PermissionUtil.requestCameraPermission(this);
- CameraView cameraView = findViewById(R.id.dce_camera_view);
- mCamera = new CameraEnhancer(cameraView, this);
- }
- }
- ```
- 2.
- ```kotlin
- import com.dynamsoft.dce.CameraView
- import com.dynamsoft.dce.CameraEnhancer
- import com.dynamsoft.dce.utils.PermissionUtil
- class MainActivityKt : AppCompatActivity() {
- private lateinit var mCamera: CameraEnhancer
- override fun onCreate(savedInstanceState: Bundle?) {
- ...
- PermissionUtil.requestCameraPermission(this)
- val cameraView: CameraView = findViewById(R.id.dce_camera_view)
- mCamera = CameraEnhancer(cameraView, this)
- }
- }
- ```
-
-3. Define a scan region for recognition.
-
-
- >- Java
- >- Kotlin
- >
- >1.
- ```java
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- DSRect region = new DSRect(0.1f, 0.4f, 0.9f, 0.6f, true);
- try {
- mCamera.setScanRegion(region);
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- }
- }
- ```
- 2.
- ```kotlin
- class MainActivityKt : AppCompatActivity() {
- override fun onCreate(savedInstanceState: Bundle?) {
- ...
- val region = DSRect(0.1f, 0.4f, 0.9f, 0.6f, true)
- try {
- mCamera.scanRegion = region
- } catch (e: CameraEnhancerException) {
- e.printStackTrace()
- }
- }
- }
- ```
-
-### Initialize Capture Vision Router
-
-1. Import and initialize the `CaptureVisionRouter` and set the previously created `CameraEnhancer` instance as its input.
-
-
- >- Java
- >- Kotlin
- >
- >1.
- ```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.
- ```kotlin
- import com.dynamsoft.cvr.CaptureVisionRouter
- import com.dynamsoft.cvr.CaptureVisionRouterException
- class MainActivityKt : AppCompatActivity() {
- private lateinit var mRouter: CaptureVisionRouter
- override fun onCreate(savedInstanceState: Bundle?) {
- ...
- mRouter = CaptureVisionRouter(this)
- try {
- mRouter.setInput(mCamera)
- } catch (e: CaptureVisionRouterException) {
- throw RuntimeException(e)
- }
- }
- }
- ```
-
-2. Create a `CapturedResultReceiver` and register with the `CaptureVisionRouter` instance to get recognized textline results.
-
-
- >- Java
- >- Kotlin
- >
- >1.
- ```java
- import com.dynamsoft.core.basic_structures.CapturedResultReceiver;
- import com.dynamsoft.dlr.RecognizedTextLinesResult;
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- mRouter.addResultReceiver(new CapturedResultReceiver() {
- @Override
- public void onRecognizedTextLinesReceived(RecognizedTextLinesResult result) {
- runOnUiThread(() -> showResults(result.getItems()));
- }
- });
- }
- }
- ```
- 2.
- ```kotlin
- import com.dynamsoft.core.basic_structures.CapturedResultReceiver
- import com.dynamsoft.dlr.RecognizedTextLinesResult
- class MainActivityKt : AppCompatActivity() {
- override fun onCreate(savedInstanceState: Bundle?) {
- ...
- mRouter.addResultReceiver(object : CapturedResultReceiver {
- override fun onRecognizedTextLinesReceived(result: RecognizedTextLinesResult) {
- showResults(result.items)
- }
- })
- }
- }
- ```
-
-3. Override the `MainActivity.onResume` and `MainActivity.onPause` functions to start and stop video text recognition, respectively. After starting recognition, the library will automatically recognize text in video frames from the Camera Enhancer, then send the recognized text line results to the callback.
-
-
- >- Java
- >- Kotlin
- >
- >1.
- ```java
- import com.dynamsoft.cvr.EnumPresetTemplate;
- import com.dynamsoft.dce.CameraEnhancerException;
- public class MainActivity extends AppCompatActivity {
- ...
- @Override
- public void onResume() {
- try {
- mCamera.open();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- mRouter.startCapturing(EnumPresetTemplate.PT_RECOGNIZE_TEXT_LINES, new CompletionListener() {
- @Override
- public void onSuccess() {
- }
- @Override
- public void onFailure(int errorCode, String errorString) {
- runOnUiThread(() -> Toast.makeText(MainActivity.this, errorString, Toast.LENGTH_SHORT).show());
- }
- });
- super.onResume();
- }
- @Override
- public void onPause() {
- try {
- mCamera.close();
- } catch (CameraEnhancerException e) {
- e.printStackTrace();
- }
- mRouter.stopCapturing();
- super.onPause();
- }
- }
- ```
- 2.
- ```kotlin
- import com.dynamsoft.cvr.EnumPresetTemplate
- import com.dynamsoft.dce.CameraEnhancerException
- public class MainActivity extends AppCompatActivity {
- ...
- public override fun onResume() {
- try {
- mCamera.open()
- } catch (e: CameraEnhancerException) {
- e.printStackTrace()
- }
- mRouter.startCapturing(
- EnumPresetTemplate.PT_RECOGNIZE_TEXT_LINES,
- object : CompletionListener {
- override fun onSuccess() {}
- override fun onFailure(errorCode: Int, errorString: String) {
- runOnUiThread {
- Toast.makeText(
- this@MainActivity,
- errorString,
- Toast.LENGTH_SHORT
- ).show()
- }
- }
- })
- super.onResume()
- }
- public override fun onPause() {
- try {
- mCamera.close()
- } catch (e: CameraEnhancerException) {
- e.printStackTrace()
- }
- mRouter.stopCapturing()
- super.onPause()
- }
- }
- ```
-
-### Display Recognized Textline Results
-
-1. In the Project window, open **app > res > layout > `activity_main.xml`**, create a text view control under the root node.
-
- ```xml
- ...
-
- ```
-
-2. Display the text result(s) in the text view.
-
-
- >- Java
- >- Kotlin
- >
- >1.
- ```java
- ...
- public class MainActivity extends AppCompatActivity {
- ...
- private TextView tvRes;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- ...
- tvRes = findViewById(R.id.tv_res);
- }
- private void showResults(TextLineResultItem[] results) {
- StringBuilder resultBuilder = new StringBuilder();
- if (results != null) {
- for (TextLineResultItem result : results) {
- resultBuilder.append(result.getText()).append("\n\n");
- }
- }
- runOnUiThread(() -> tvRes.setText(resultBuilder.toString()));
- }
- }
- ```
- 2.
- ```kotlin
- ...
- class MainActivityKt : AppCompatActivity() {
- ...
- private lateinit var tvRes: TextView
- override fun onCreate(savedInstanceState: Bundle?) {
- ...
- tvRes = findViewById(R.id.tv_res)
- }
- private fun showResults(results: Array?) {
- val resultBuilder = StringBuilder()
- if (results != null) {
- for (result in results) {
- resultBuilder.append(result.text).append("\n\n")
- }
- }
- runOnUiThread { tvRes.text = resultBuilder.toString() }
- }
- }
- ```
-
-### 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 full source code of all the steps above:
-
-- ReadTextLinesWithCameraEnhancer Sample (Java)
-- ReadTextLinesWithCameraEnhancer Sample (Kotlin)
diff --git a/programming/assets/dcv-dlr-dependency.png b/programming/assets/dcv-dlr-dependency.png
deleted file mode 100644
index 4815559..0000000
Binary files a/programming/assets/dcv-dlr-dependency.png and /dev/null differ
diff --git a/programming/assets/dlr_result2.png b/programming/assets/dlr_result2.png
deleted file mode 100644
index cb8a6fb..0000000
Binary files a/programming/assets/dlr_result2.png and /dev/null differ
diff --git a/programming/objectivec-swift/api-reference/index-v3.0.20.md b/programming/objectivec-swift/api-reference/index-v3.0.20.md
deleted file mode 100644
index 2d6f8f0..0000000
--- a/programming/objectivec-swift/api-reference/index-v3.0.20.md
+++ /dev/null
@@ -1,110 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Label Recognizer iOS API Reference
-description: This is the index of Dynamsoft Label Recognizer iOS API Reference.
-keywords: label recognizer, api reference, iOS
-permalink: /programming/objectivec-swift/api-reference/index-v3.0.20.html
----
-
-# API Reference - iOS
-
-## Primary Class
-
-- [`DSCaptureVisionRouter`]({{ site.dcv_ios_api }}capture-vision-router/capture-vision-router.html)
-
-## Input
-
-- [`DSDirectoryFetcher`]({{ site.dcv_ios_api }}utility/directory-fetcher.html)
-- [`DSFileFetcher`]({{ site.dcv_ios_api }}utility/file-fetcher.html)
-- [`DSImageSourceAdapter`]({{ site.dcv_ios_api }}core/basic-structures/image-source-adapter.html)
-
-## Final Results
-
-- [`DSCapturedResultReceiver`]({{ site.dcv_ios_api }}core/basic-structures/captured-result-receiver.html)
-- [`DSCapturedResultItem`]({{ site.dcv_ios_api }}core/basic-structures/captured-result-item.html)
-- [`DSCapturedResult`]({{ site.dcv_ios_api }}core/basic-structures/captured-result.html)
-- [`DSTextLineResultItem`]({{ site.dlr_ios_api }}text-line-result-item.html)
-- [`DSCharacterResult`]({{ site.dlr_ios_api }}character-result.html)
-- [`DSRecognizedTextLinesResult`]({{ site.dlr_ios_api }}recognized-text-lines-result.html)
-- [`DSOriginalImageResultItem`]({{ site.dcv_ios_api }}core/basic-structures/original-image-result-item.html)
-
-## Final Results Filters
-
-- [`DSCapturedResultFilter`]({{ site.dcv_ios_api }}core/basic-structures/captured-result-filter.html)
-- [`DSMultiFrameResultCrossFilter`]({{ site.dcv_ios_api }}utility/multi-frame-result-cross-filter.html)
-
-## Intermediate Results
-
-- [`DSIntermediateResultManager`]({{ site.dcv_ios_api }}core/intermediate-results/intermediate-result-manager.html)
-- [`DSIntermediateResultReceiver`]({{ site.dcv_ios_api }}core/intermediate-results/intermediate-result-receiver.html)
-- [`DSObservationParameters`]({{ site.dcv_ios_api }}core/intermediate-results/observation-parameters.html)
-- [`DSIntermediateResultExtraInfo`]({{ site.dcv_ios_api }}core/intermediate-results/intermediate-result-extra-info.html)
-- [`DSIntermediateResult`]({{ site.dcv_ios_api }}core/intermediate-results/intermediate-result.html)
-- [`DSIntermediateResultUnit`]({{ site.dcv_ios_api }}core/intermediate-results/intermediate-result-unit.html)
-- [`DSPredetectedRegionsUnit`]({{ site.dcv_ios_api }}core/intermediate-results/predetected-regions-unit.html)
-- [`DSLocalizedTextLinesUnit`]({{ site.dlr_ios_api }}localized-text-lines-unit.html)
-- [`DSRecognizedTextLinesUnit`]({{ site.dlr_ios_api }}recognized-text-lines-unit.html)
-- [`DSRegionObjectElement`]({{ site.dcv_ios_api }}core/intermediate-results/region-object-element.html)
-- [`DSPredetectedRegionElement`]({{ site.dcv_ios_api }}core/intermediate-results/predetected-region-element.html)
-- [`DSLocalizedTextLineElement`]({{ site.dlr_ios_api }}localized-text-line-element.html)
-- [`DSRecognizedTextLineElement`]({{ site.dlr_ios_api }}recognized-text-line-element.html)
-- [`DSBinaryImageUnit`]({{ site.dcv_ios_api }}core/intermediate-results/binary-image-unit.html)
-- [`DSColourImageUnit`]({{ site.dcv_ios_api }}core/intermediate-results/colour-image-unit.html)
-- [`DSEnhancedGrayscaleImageUnit`]({{ site.dcv_ios_api }}core/intermediate-results/enhanced-grayscale-image-unit.html)
-- [`DSGrayscaleImageUnit`]({{ site.dcv_ios_api }}core/intermediate-results/grayscale-image-unit.html)
-- [`DSScaledDownColourImageUnit`]({{ site.dcv_ios_api }}core/intermediate-results/scaled-down-colour-image-unit.html)
-- [`DSTextZonesUnit`]({{ site.dcv_ios_api }}core/intermediate-results/text-zones-unit.html)
-- [`DSTextureDetectionResultUnit`]({{ site.dcv_ios_api }}core/intermediate-results/texture-detection-result-unit.html)
-- [`DSTextureRemovedBinaryImageUnit`]({{ site.dcv_ios_api }}core/intermediate-results/texture-removed-binary-image-unit.html)
-- [`DSTextureRemovedGrayscaleImageUnit`]({{ site.dcv_ios_api }}core/intermediate-results/texture-removed-grayscale-image-unit.html)
-- [`DSTransformedGrayscaleImageUnit`]({{ site.dcv_ios_api }}core/intermediate-results/transformed-grayscale-image-unit.html)
-
-## Settings
-
-- [`DSSimplifiedCaptureVisionSettings`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/simplified-capture-vision-settings.html)
-- [`DSSimplifiedLabelRecognizerSettings`]({{ site.dlr_ios_api }}simplified-label-recognizer-settings.html)
-
-## State Listener
-
-- [`DSCaptureStateListener`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/capture-state-listener.html)
-- [`DSImageSourceStateListener`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/image-source-state-listener.html)
-
-## License
-
-- [`DSLicenseManager`]({{ site.dcv_ios_api }}license/license-manager.html)
-
-## Basic Structure
-
-- [`DSRect`]({{ site.dcv_ios_api }}core/basic-structures/rect.html)
-- [`DSQuadrilateral`]({{ site.dcv_ios_api }}core/basic-structures/quadrilateral.html)
-- [`DSImageData`]({{ site.dcv_ios_api }}core/basic-structures/image-data.html)
-- [`DSImageTag`]({{ site.dcv_ios_api }}core/basic-structures/image-tag.html)
-- [`DSFileImageTag`]({{ site.dcv_ios_api }}core/basic-structures/file-image-tag.html)
-
-## Modules
-
-- [`DSCaptureVisionRouterModule`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/capture-vision-router-module.html)
-- [`DSLabelRecognizerModule`]({{ site.dlr_ios_api }}label-recognizer-module.html)
-- [`DSCoreModule`]({{ site.dcv_ios_api }}core/basic-structures/core-module.html)
-- [`DSLicenseModule`]({{ site.dcv_ios_api }}license/license-module.html)
-- [`DSUtilityModule`]({{ site.dcv_ios_api }}utility/utility-module.html)
-- [`DSImageProcessingModule`]({{ site.dcv_ios_api }}image-processing/image-processing-module.html)
-
-## Enumerations
-
-- [`DSBufferOverflowProtectionMode`]({{ site.dcv_enumerations}}core/buffer-overflow-protection-mode.html?src=objc,swift&&lang=objc,swift)
-- [`DSCapturedResultItemType`]({{ site.dcv_enumerations}}core/captured-result-item-type.html?src=objc,swift&&lang=objc,swift)
-- [`DSErrorCode`]({{ site.dcv_enumerations}}core/error-code.html?src=objc,swift&&lang=objc,swift)
-- [`DSGrayscaleTransformationMode`]({{ site.dcv_enumerations}}core/grayscale-transformation-mode.html?src=objc,swift&&lang=objc,swift)
-- [`DSImageCaptureDistanceMode`]({{ site.dcv_enumerations}}core/image-capture-distance-mode.html?src=objc,swift&&lang=objc,swift)
-- [`DSImagePixelFormat`]({{ site.dcv_enumerations}}core/image-pixel-format.html?src=objc,swift&&lang=objc,swift)
-- [`DSImageSourceState`]({{ site.dcv_enumerations}}core/image-source-state.html?src=objc,swift&&lang=objc,swift)
-- [`DSImageTagType`]({{ site.dcv_enumerations}}core/image-tag-type.html?src=objc,swift&&lang=objc,swift)
-- [`DSIntermediateResultUnitType`]({{ site.dcv_enumerations}}core/intermediate-result-unit-type.html?src=objc,swift&&lang=objc,swift)
-- [`DSDSPresetTemplate`]({{ site.dcv_enumerations }}capture-vision-router/preset-template.html?src=objc,swift&&lang=objc,swift)
-- [`DSRegionObjectElementType`]({{ site.dcv_enumerations}}core/region-object-element-type.html?src=objc,swift&&lang=objc,swift)
-- [`DSSectionType`]({{ site.dcv_enumerations}}core/section-type.html?src=objc,swift&&lang=objc,swift)
-- [`DSVideoFrameQuality`]({{ site.dcv_enumerations }}core/video-frame-quality.html?src=objc,swift&&lang=objc,swift)
-- [`DSColourChannelUsageType`]({{ site.dcv_enumerations}}core/colour-channel-usage-type.html?src=objc,swift&&lang=objc,swift)
-- [`DSRasterDataSource`]({{ site.dcv_enumerations}}core/raster-data-source.html?src=objc,swift&&lang=objc,swift)
-- [`DSTransformMatrixType`]({{ site.dcv_enumerations}}core/transform-matrix-type.html?src=objc,swift&&lang=objc,swift)
diff --git a/programming/objectivec-swift/api-reference/index.md b/programming/objectivec-swift/api-reference/index.md
deleted file mode 100644
index c361b6a..0000000
--- a/programming/objectivec-swift/api-reference/index.md
+++ /dev/null
@@ -1,61 +0,0 @@
----
-layout: default-layout
-title: Dynamsoft Label Recognizer iOS API Reference - Main Page
-description: This is the main page of Dynamsoft Label Recognizer SDK API Reference for iOS Language.
-keywords: Label Recognizer, api reference, iOS
----
-
-# 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 Label Recognizer SDK.
-
-## Modules Summary
-
-The Dynamsoft Label Recognizer (DLR) SDK is built on the Dynamsoft Capture Vision (DCV) framework, which includes multiple modules working together to achieve text line recognition. The hierarchical structure diagram below illustrates the various modules of the DLR SDK (with modules at the top depending on those below).
-
-
-
-
Modules hierarchical of the DLR SDK
-
-
-The table below describes details the functionalities of these modules:
-
-| Module | Description | Mandatory/Optional |
-|:-----|:------------|:-------------------|
-| `DynamsoftLabelRecognizer.xcframework`(DLR) | The Dynamsoft Label Recognizer module identifies and recognizes text labels such as passport MRZs, ID cards, and VIN numbers. | Mandatory |
-| `DynamsoftCore.xcframework`(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. | Mandatory |
-| `DynamsoftCaptureVisionRouter.xcframework`(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. | Mandatory |
-| `DynamsoftImageProcessing.xcframework`(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. | Mandatory |
-| `DynamsoftNeuralNetwork.xcframework`(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. | Mandatory |
-| `DynamsoftLicense.xcframework`(License) | The Dynamsoft License module manages the licensing aspects of Dynamsoft SDKs based on the DCV (Dynamsoft Capture Vision) architecture. | Mandatory |
-| `DynamsoftCameraEnhancer.xcframework`(DCE) | The [Dynamsoft Camera Enhancer]({{ site.dce_android }}){:target="_blank"} 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. | Optional |
-| `DynamsoftUtility.xcframework`(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. | Optional |
-
-## 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 Label Recognizer 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 video stream text recognizing]({{ 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 }}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
-
-To receive the results of video streaming text recognizing, you need to implement the [`CapturedResultReceiver`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html) with the callback method [`onRecognizedTextlinesReceived`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html#onrecognizedtextlinesreceived). The result you received in the callback method is a [`RecognizedTextlinesResult`](recognized-text-lines-result.md) object, which contains all the recognized text lines from the processed video frame.
-
-- [`onRecognizedTextlinesReceived`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html#onrecognizedtextlinesreceived): The callback method for you to receive the text recognizing results with a [`RecognizedTextlinesResult`](recognized-text-lines-result.md) object.
-- [`RecognizedTextlinesResult`](recognized-text-lines-result.md): An object that contains all the [`TextLineResultItem`](text-line-result-item.md) that obtained from a video frame.
-- [`TextLineResultItem`](text-line-result-item.md): The basic item that represents a single text line with the decoded text and other information.
-
-### Camera View
-
-[`CameraView`]({{ site.dce_ios }}auxiliary-api/dcecameraview.html) is a view class that design for visualizing the real time video streaming and the text recognizing result. If the [`CameraEnhancer`]({{ site.dce_ios }}primary-api/camera-enhancer.html) is set as the input of your CVR, the recognized text lines will be highlighted automatically on the [`CameraView`]({{ site.dce_ios }}auxiliary-api/dcecameraview.html).
diff --git a/programming/objectivec-swift/api-reference/localized-text-lines-unit-v3.0.20.md b/programming/objectivec-swift/api-reference/localized-text-lines-unit-v3.0.20.md
deleted file mode 100644
index cb6b588..0000000
--- a/programming/objectivec-swift/api-reference/localized-text-lines-unit-v3.0.20.md
+++ /dev/null
@@ -1,57 +0,0 @@
----
-layout: default-layout
-title: DSLocalizedTextLinesUnit - Dynamsoft Label Recognizer iOS Edition
-description: The class DSLocalizedTextLinesUnit of Dynamsoft Label Recognizer iOS edition represents a unit that contains localized text lines.
-keywords: Localized text lines unit
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
-breadcrumbText: DSLocalizedTextLinesUnit
-permalink: /programming/objectivec-swift/api-reference/localized-text-lines-unit-v3.0.20.html
----
-
-# DSLocalizedTextLinesUnit
-
-The `DSLocalizedTextLinesUnit` class represents a unit that contains localized text lines. It inherits from the [DSIntermediateResultUnit]({{ site.dcv_ios_api }}core/intermediate-results/intermediate-result-unit.html) class.
-
-## Definition
-
-*Assembly:* DynamsoftLabelRecognizer.xcframework
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@interface DSLocalizedTextLinesUnit: DSIntermediateResultUnit
-```
-2.
-```swift
-class LocalizedTextLinesUnit: IntermediateResultUnit
-```
-
-*Inheritance:* [DSIntermediateResultUnit]({{ site.dcv_ios_api }}core/intermediate-results/intermediate-result-unit.html) -> DSLocalizedTextLinesUnit
-
-## Properties
-
-| Property | Type | Description |
-| -------- | ---- | ----------- |
-| [`localizedTextLine`](#localizedtextlines) | *NSArray<*DSLocalizedTextLineElement*>* | All the text lines in an array of [`DSLocalizedTextLineElement`](localized-text-line-element.md), which is the basic unit of the localized text line result. |
-
-### localizedTextLines
-
-All the text lines in an array of [`DSLocalizedTextLineElement`](localized-text-line-element.md), which is the basic unit of the localized text line result.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, nullable, copy) NSArray* localizedTextLines;
-```
-2.
-```swift
-var localizedTextLines: [DSLocalizedTextLineElement]? { get }
-```
diff --git a/programming/objectivec-swift/api-reference/raw-text-line.md b/programming/objectivec-swift/api-reference/raw-text-line.md
new file mode 100644
index 0000000..8f77044
--- /dev/null
+++ b/programming/objectivec-swift/api-reference/raw-text-line.md
@@ -0,0 +1,297 @@
+---
+layout: default-layout
+title: DSRawTextLine - Dynamsoft Label Recognizer iOS Edition
+description: The class DSRawTextLine of Dynamsoft Label Recognizer iOS edition represents a unit which holds the raw text lines.
+keywords: raw text lines unit, intermediate result unit
+needGenerateH3Content: true
+needAutoGenerateSidebar: true
+noTitleIndex: true
+breadcrumbText: DSRawTextLine
+---
+
+# DSRawTextLine
+
+The `DSRawTextLine` class represents a text line in an image. It can be in one of the following states:
+
+- `TLS_LOCALIZED`: Localized but recognition not performed.
+- `TLS_RECOGNITION_FAILED`: Recognition failed.
+- `TLS_RECOGNIZED_SUCCESSFULLY`: Successfully recognized.
+
+## Definition
+
+*Assembly:* DynamsoftLabelRecognizer.xcframework
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+@interface DSRawTextLine: NSObject
+```
+2.
+```swift
+class RawTextLine: NSObject
+```
+
+## Methods
+
+| Methods | Description |
+| ------- | ----------- |
+| [`getText`](#gettext) | Returns the recognized text. |
+| [`setText`](#settext) | Sets the recognized text. |
+| [`getConfidence`](#getconfidence) | Returns the confidence level of the recognized text. |
+| [`getCharacterResults`](#getcharacterresults) | Returns all the characters contained by the textline. |
+| [`getRowNumber`](#getrownumber) | Returns the row number of the text line within the image. |
+| [`setRowNumber`](#setrownumber) | Sets the row number of the text line within the image. |
+| [`getSpecificationName`](#getspecificationname) | Get the name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`. |
+| [`setSpecificationName`](#setspecificationname) | Sets the name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`. |
+| [`getLocation`](#getlocation) | Returns the location of the text line. |
+| [`setLocation`](#setlocation) | Sets the location of the text line. |
+
+### getText
+
+Returns the recognized text.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+-(NSString*)getText;
+```
+2.
+```swift
+func getText() -> String
+```
+
+**Return value**
+
+Returns the text of the text line.
+
+### setText
+
+Returns the recognized text.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+-(NSInteger)setText:(NSString *)text;
+```
+2.
+```swift
+func setText(_ text: String) -> Int
+```
+
+**Parameter**
+
+`text`: The text.
+
+**Return value**
+
+Returns the `ErrorCode` if failed. Otherwise, returns 0.
+
+### getConfidence
+
+Returns the confidence level of the recognized text.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+-(NSInteger)getConfidence;
+```
+2.
+```swift
+func getConfidence() -> Int
+```
+
+**Return value**
+
+Returns the confidence level of the text line.
+
+### getCharacterResults
+
+Returns all the characters contained by the textline in an array of [`DSCharacterResult`](character-result.md).
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+-(nullable NSArray*)getCharacterResults;
+```
+2.
+```swift
+func getCharacterResults() -> [CharacterResult]
+```
+
+**Return value**
+
+Returns all the characters contained by the textline in an array of [`DSCharacterResult`](character-result.md).
+
+### getRowNumber
+
+Returns the row number of the text line within the image.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+-(NSInteger)getRowNumber;
+```
+2.
+```swift
+func getRowNumber() -> Int
+```
+
+**Return value**
+
+Returns the row number of the text line within the image.
+
+### setRowNumber
+
+Sets the row number of the text line within the image.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+-(NSInteger)setRowNumber:(NSInteger)rowNumber;
+```
+2.
+```swift
+func setRowNumber(_ rowNumber: Int) -> Int
+```
+
+**Parameter**
+
+`rowNumber`: The row number of the text line within the image.
+
+**Return value**
+
+Returns 0 if success, otherwise an error code.
+
+### getSpecificationName
+
+Returns the name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+-(NSString *)getSpecificationName;
+```
+2.
+```swift
+func getSpecificationName() -> String
+```
+
+**Return value**
+
+The name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`.
+
+### setSpecificationName
+
+Sets the name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+-(NSInteger)setSpecificationName:(NSString *)specificationName;
+```
+2.
+```swift
+func setSpecificationName(_ specificationName: String) -> Int
+```
+
+**Parameter**
+
+`specificationName`: The name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`.
+
+**Return value**
+
+Returns 0 if success, otherwise an error code.
+
+### getLocation
+
+Returns a `Quadrilateral` object which represents the location of the text line.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+-(DSQuadrilateral *)getLocation;
+```
+2.
+```swift
+func getLocation() -> Quadrilateral
+```
+
+**Return value**
+
+A `Quadrilateral` object which represents the location of the text line.
+
+### setLocation
+
+Set the location of the text line.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+-(NSInteger)setLocation:(DSQuadrilateral *)location;
+```
+2.
+```swift
+func setLocation(_ location: Quadrilateral) -> Int
+```
+
+**Parameter**
+
+`location`: The location of the text line.
+
+**Return value**
+
+Returns 0 if success, otherwise an error code.
+
+### getStatus
+
+Returns the status of the text line.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+-(DSRawTextLineStatus)getStatus;
+```
+2.
+```swift
+func getStatus() -> RawTextLineStatus
+```
+
+**Return value**
+
+The status of the text line.
diff --git a/programming/objectivec-swift/api-reference/raw-text-lines-unit.md b/programming/objectivec-swift/api-reference/raw-text-lines-unit.md
new file mode 100644
index 0000000..b683887
--- /dev/null
+++ b/programming/objectivec-swift/api-reference/raw-text-lines-unit.md
@@ -0,0 +1,213 @@
+---
+layout: default-layout
+title: DSRawTextLinesUnit - Dynamsoft Label Recognizer iOS Edition
+description: The class DSRawTextLinesUnit of Dynamsoft Label Recognizer iOS edition represents a unit which holds the raw text lines.
+keywords: raw text lines unit, intermediate result unit
+needGenerateH3Content: true
+needAutoGenerateSidebar: true
+noTitleIndex: true
+breadcrumbText: DSRawTextLinesUnit
+---
+
+# DSRawTextLinesUnit
+
+The `DSRawTextLinesUnit` class represents a unit which holds the raw text lines.
+
+## Definition
+
+*Assembly:* DynamsoftLabelRecognizer.xcframework
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+@interface DSLocalizedTextLinesUnit: DSIntermediateResultUnit
+```
+2.
+```swift
+class LocalizedTextLinesUnit: IntermediateResultUnit
+```
+
+*Inheritance:* [DSIntermediateResultUnit]({{ site.dcv_ios_api }}core/intermediate-results/intermediate-result-unit.html) -> DSLocalizedTextLinesUnit
+
+## Methods
+
+| Method | Description |
+| --- | --- |
+| [`getCount`](#getcount) | Gets the number of raw text lines in the unit. |
+| [`getRawTextLine`](#getrawtextline) | Gets a raw text line at the specified index. |
+| [`getRawTextLines`](#getrawtextlines) | Gets all raw text lines of the unit. |
+| [`removeAllRawTextLines`](#removeallrawtextlines) | Removes all raw text lines. |
+| [`removeRawTextLine`](#removerawtextline) | Removes the raw text line at the specified index. |
+| [`addRawTextLine`](#addrawtextline) | Adds a raw text line. |
+| [`setRawTextLine`](#setrawtextline) | Sets the raw text line at the specified index. |
+
+### getCount
+
+Returns the number of raw text lines in the unit.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+-(NSInteger)getCount;
+```
+2.
+```swift
+func getCount() -> Int
+```
+
+**Return value**
+
+Returns the number of raw text lines in the unit.
+
+### getRawTextLine
+
+Gets a raw text line at the specified index.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+-(nullable DSRawTextLine)getRawTextLine:(NSInteger)index;
+```
+2.
+```swift
+func getRawTextLine(_ index: Int) -> DSRawTextLine?
+```
+
+**Parameters**
+
+`index`: The index of the raw text line.
+
+**Return value**
+
+Returns a pointer to the [`RawTextLine`](raw-text-line.md) object at the specified index.
+
+### getRawTextLines
+
+Gets all raw text lines of the unit.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+-(nullable NSArray *)getRawTextLines;
+```
+2.
+```swift
+func getRawTextLines() -> [DSRawTextLine]?
+```
+
+**Return value**
+
+Returns all the [`RawTextLine`](raw-text-line.md) objects of the unit in an array.
+
+### removeAllRawTextLines
+
+Removes all raw text lines.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+-(void)removeAllRawTextLines;
+```
+2.
+```swift
+func removeAllRawTextLines()
+```
+
+### removeRawTextLine
+
+Removes the raw text line at the specified index.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+-(NSInteger)removeRawTextLine:(NSInteger)index;
+```
+2.
+```swift
+func removeRawTextLine(_ index: Int) -> Int
+```
+
+**Parameters**
+
+`index`: The index of the raw text line to be removed.
+
+**Return value**
+
+Returns the `ErrorCode` if failed. Otherwise, returns 0.
+
+### addRawTextLine
+
+Adds a raw text line to the unit.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+-(NSInteger)addRawTextLine:(DSRawTextLine *)textline
+ matrixToOriginalImage:(CGAffineTransform)matrixToOriginalImage;
+```
+2.
+```swift
+func addRawTextLine(_ textline: DSRawTextLine, matrixToOriginalImage: CGAffineTransform) -> Int
+```
+
+**Parameters**
+
+`textline`: A [`RawTextLine`](raw-text-line.md) object as the raw text line to be added to the unit.
+
+`matrixToOriginalImage`: The matrix to the original image.
+
+**Return value**
+
+Returns the `ErrorCode` if failed. Otherwise, returns 0.
+
+### setRawTextLine
+
+Sets the raw text line at the specified index.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+-(NSInteger)setRawTextLine:(NSInteger)index
+ element:(DSRawTextLine *)textline
+ matrixToOriginalImage:(CGAffineTransform)matrixToOriginalImage;
+```
+2.
+```swift
+func setRawTextLine(_ index: Int, textline: DSRawTextLine, matrixToOriginalImage: CGAffineTransform) -> Int
+```
+
+**Parameters**
+
+`index`: The index of the raw text line to be set.
+
+`textline`: A [`RawTextLine`](raw-text-line.md) object as the raw text line to be set.
+
+`matrixToOriginalImage`: The matrix to the original image.
+
+**Return value**
+
+Returns the `ErrorCode` if failed. Otherwise, returns 0.
diff --git a/programming/objectivec-swift/api-reference/recognized-text-line-element-v2.2.3000.md b/programming/objectivec-swift/api-reference/recognized-text-line-element-v2.2.3000.md
new file mode 100644
index 0000000..20a7c75
--- /dev/null
+++ b/programming/objectivec-swift/api-reference/recognized-text-line-element-v2.2.3000.md
@@ -0,0 +1,174 @@
+---
+layout: default-layout
+title: DSRecognizedTextLineElement - Dynamsoft Label Recognizer iOS Edition
+description: The class DSRecognizedTextLineElement of Dynamsoft Label Recognizer iOS edition represents a line of recognized text in an image.
+keywords: Recognized text line element
+needGenerateH3Content: true
+needAutoGenerateSidebar: true
+noTitleIndex: true
+breadcrumbText: DSRecognizedTextLineElement
+---
+
+# DSRecognizedTextLineElement
+
+The `DSRecognizedTextLineElement` class represents a line of recognized text in an image. It inherits from the [DSRegionObjectElement]({{ site.dcv_ios_api }}core/intermediate-results/region-object-element.html) class.
+
+## Definition
+
+*Assembly:* DynamsoftLabelRecognizer.xcframework
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+@interface DSRecognizedTextLineElement: DSRegionObjectElement
+```
+2.
+```swift
+class RecognizedTextLineElement: RegionObjectElement
+```
+
+*Inheritance:* [DSRegionObjectElement]({{ site.dcv_ios_api }}core/intermediate-results/region-object-element.html) -> DSRecognizedTextLineElement
+
+## Methods
+
+| Methods | Description |
+| ------- | ----------- |
+| [`getText`](#gettext) | Returns the recognized text. |
+| [`setText`](#settext) | Sets the recognized text. |
+| [`getConfidence`](#getconfidence) | Returns the confidence level of the recognized text. |
+| [`getCharacterResults`](#getcharacterresults) | Returns all the characters contained by the textline. |
+| [`getRowNumber`](#getrownumber) | Returns the row number of the text line within the image. |
+| [`getSpecificationName`](#getspecificationname) | Returns the name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`. |
+
+### getText
+
+Returns the recognized text.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+-(NSString*)getText;
+```
+2.
+```swift
+func getText() -> String
+```
+
+**Return value**
+
+Returns the text of the text line.
+
+### setText
+
+Sets the recognized text.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+-(NSInteger)setText:(NSString *)text;
+```
+2.
+```swift
+func setText(_ text: String) -> Int
+```
+
+**Parameter**
+
+`text`: The text.
+
+**Return value**
+
+Returns the `ErrorCode` if failed. Otherwise, returns 0.
+
+### getConfidence
+
+Returns the confidence level of the recognized text.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+-(NSInteger)getConfidence;
+```
+2.
+```swift
+func getConfidence() -> Int
+```
+
+**Return value**
+
+Returns the confidence level of the text line.
+
+### getCharacterResults
+
+Returns all the characters contained by the textline in an array of [`DSCharacterResult`](character-result.md).
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+-(nullable NSArray*)getCharacterResults;
+```
+2.
+```swift
+func getCharacterResults() -> [CharacterResult]
+```
+
+**Return value**
+
+Returns all the characters contained by the textline in an array of [`DSCharacterResult`](character-result.md).
+
+### getRowNumber
+
+Returns the row number of the text line within the image.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+-(NSInteger)getRowNumber;
+```
+2.
+```swift
+func getRowNumber() -> Int
+```
+
+**Return value**
+
+Returns the row number of the text line within the image.
+
+### getSpecificationName
+
+Get the name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+-(NSString *)getSpecificationName;
+```
+2.
+```swift
+func getSpecificationName() -> String
+```
+
+**Return value**
+
+The name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`.
diff --git a/programming/objectivec-swift/api-reference/recognized-text-line-element-v3.0.20.md b/programming/objectivec-swift/api-reference/recognized-text-line-element-v3.0.20.md
deleted file mode 100644
index 36a2318..0000000
--- a/programming/objectivec-swift/api-reference/recognized-text-line-element-v3.0.20.md
+++ /dev/null
@@ -1,111 +0,0 @@
----
-layout: default-layout
-title: DSRecognizedTextLineElement - Dynamsoft Label Recognizer iOS Edition
-description: The class DSRecognizedTextLineElement of Dynamsoft Label Recognizer iOS edition represents a line of recognized text in an image.
-keywords: Recognized text line element
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
-breadcrumbText: DSRecognizedTextLineElement
-permalink: /programming/objectivec-swift/api-reference/recognized-text-line-element-v3.0.20.html
----
-
-# DSRecognizedTextLineElement
-
-The `DSRecognizedTextLineElement` class represents a line of recognized text in an image. It inherits from the [DSRegionObjectElement]({{ site.dcv_ios_api }}core/intermediate-results/region-object-element.html) class.
-
-## Definition
-
-*Assembly:* DynamsoftLabelRecognizer.xcframework
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@interface DSRecognizedTextLineElement: DSRegionObjectElement
-```
-2.
-```swift
-class RecognizedTextLineElement: RegionObjectElement
-```
-
-*Inheritance:* [DSRegionObjectElement]({{ site.dcv_ios_api }}core/intermediate-results/region-object-element.html) -> DSRecognizedTextLineElement
-
-## Properties
-
-| Property | Type | Description |
-| -------- | ---- | ----------- |
-| [`text`](#text) | *NSString* | The recognized text. |
-| [`confidence`](#confidence) | *NSInteger* | The confidence level of the recognized text. |
-| [`characterResults`](#characterresults) | *NSArray<*DSCharacterResult*>* | All the characters contained by the textline. |
-| [`rowNumber`](#rownumber) | *NSInteger* | The row number of the text line within the image. |
-
-### text
-
-The recognized text.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, nullable, readonly) NSString* text;
-```
-2.
-```swift
-var text: String? { get }
-```
-
-### confidence
-
-The confidence level of the recognized text.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, assign, readonly) NSInteger confidence;
-```
-2.
-```swift
-var confidence: String? { get }
-```
-
-### characterResults
-
-All the characters contained by the textline in an array of [`DSCharacterResult`](character-result.md).
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, nullable, readonly) NSArray* characterResults;
-```
-2.
-```swift
-var text: [CharacterResult]? { get }
-```
-
-### rowNumber
-
-The row number of the text line within the image.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, assign, readonly) NSInteger rowNumber;
-```
-2.
-```swift
-var rowNumber: Int { get }
-```
diff --git a/programming/objectivec-swift/api-reference/recognized-text-line-element.md b/programming/objectivec-swift/api-reference/recognized-text-line-element.md
index 85f900b..1b75986 100644
--- a/programming/objectivec-swift/api-reference/recognized-text-line-element.md
+++ b/programming/objectivec-swift/api-reference/recognized-text-line-element.md
@@ -36,16 +36,17 @@ class RecognizedTextLineElement: RegionObjectElement
| Methods | Description |
| ------- | ----------- |
-| [`getText`](#gettext) | Gets the recognized text. |
+| [`getText`](#gettext) | Returns the recognized text. |
| [`setText`](#settext) | Sets the recognized text. |
-| [`getConfidence`](#getconfidence) | Gets the confidence level of the recognized text. |
-| [`getCharacterResults`](#getcharacterresults) | Gets all the characters contained by the textline. |
-| [`getRowNumber`](#getrownumber) | Gets the row number of the text line within the image. |
-| [`getSpecificationName`](#getspecificationname) | Get the name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`. |
+| [`getRawText`](#getrawtext) | Returns the recognized raw text, excluding any concatenation separators. |
+| [`getConfidence`](#getconfidence) | Returns the confidence level of the recognized text. |
+| [`getCharacterResults`](#getcharacterresults) | Returns all the characters contained by the textline. |
+| [`getRowNumber`](#getrownumber) | Returns the row number of the text line within the image. |
+| [`getSpecificationName`](#getspecificationname) | Returns the name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`. |
### getText
-Gets the recognized text.
+Returns the recognized text.
>- Objective-C
@@ -89,9 +90,30 @@ func setText(_ text: String) -> Int
Returns the `ErrorCode` if failed. Otherwise, returns 0.
+### getRawText
+
+Returns the recognized raw text, excluding any concatenation separators.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+-(NSString*)getRawText;
+```
+2.
+```swift
+func getRawText() -> String
+```
+
+**Return value**
+
+The recognized raw text, excluding any concatenation separators.
+
### getConfidence
-Gets the confidence level of the recognized text.
+Returns the confidence level of the recognized text.
>- Objective-C
@@ -112,7 +134,7 @@ Returns the confidence level of the text line.
### getCharacterResults
-Gets all the characters contained by the textline in an array of [`DSCharacterResult`](character-result.md).
+Returns all the characters contained by the textline in an array of [`DSCharacterResult`](character-result.md).
>- Objective-C
@@ -120,7 +142,7 @@ Gets all the characters contained by the textline in an array of [`DSCharacterRe
>
>1.
```objc
--(NSArray*)getCharacterResults;
+-(nullable NSArray*)getCharacterResults;
```
2.
```swift
@@ -133,7 +155,7 @@ Returns all the characters contained by the textline in an array of [`DSCharacte
### getRowNumber
-Gets the row number of the text line within the image.
+Returns the row number of the text line within the image.
>- Objective-C
diff --git a/programming/objectivec-swift/api-reference/recognized-text-lines-unit-v2.2.3000.md b/programming/objectivec-swift/api-reference/recognized-text-lines-unit-v2.2.3000.md
new file mode 100644
index 0000000..ce3ebde
--- /dev/null
+++ b/programming/objectivec-swift/api-reference/recognized-text-lines-unit-v2.2.3000.md
@@ -0,0 +1,172 @@
+---
+layout: default-layout
+title: DSRecognizedTextLinesUnit - Dynamsoft Label Recognizer iOS Edition
+description: The class DSRecognizedTextLinesUnit of Dynamsoft Label Recognizer iOS edition represents an intermediate result unit containing recognized text lines.
+keywords: Recognized text lines unit
+needGenerateH3Content: true
+needAutoGenerateSidebar: true
+noTitleIndex: true
+breadcrumbText: DSRecognizedTextLinesUnit
+---
+
+# DSRecognizedTextLinesUnit
+
+The `DSRecognizedTextLinesUnit` class represents an intermediate result unit containing recognized text lines. It inherits from the [DSIntermediateResultUnit]({{ site.dcv_ios_api }}core/intermediate-results/intermediate-result-unit.html) class.
+
+## Definition
+
+*Assembly:* DynamsoftLabelRecognizer.xcframework
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+@interface DSRecognizedTextLinesUnit: DSIntermediateResultUnit
+```
+2.
+```swift
+class RecognizedTextLinesUnit: IntermediateResultUnit
+```
+
+*Inheritance:* [DSIntermediateResultUnit]({{ site.dcv_ios_api }}core/intermediate-results/intermediate-result-unit.html) -> DSRecognizedTextLinesUnit
+
+## Methods
+
+| Method | Description |
+| ------ | ----------- |
+| [`getRecognizedTextLines`](#getrecognizedtextlines) | Get all the recognized text lines in an array of [`DSRecognizedTextLineElement`](recognized-text-line-element.md). |
+| [`getCount`](#getcount) | Returns the number of text lines in this unit. |
+| [`getRecognizedTextLine`](#getrecognizedtextline) | Returns the text line at the specified index in a [`DSRecognizedTextLineElement`](recognized-text-line-element.md) object. |
+| [`removeAllRecognizedTextLines`](#removeallrecognizedtextlines) | Removes all the recognized text lines from this unit. |
+| [`setRecognizedTextLine`](#setrecognizedtextline) | Sets the text line at the specified index. |
+
+### recognizedTextLines
+
+All the recognized text lines of this unit in an array of [`DSRecognizedTextLineElement`](recognized-text-line-element.md).
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+@property (nonatomic, nullable, copy) NSArray* recognizedTextLines;
+```
+2.
+```swift
+var recognizedTextLines: [RecognizedTextLineElement]? { get }
+```
+
+### getRecognizedTextLines
+
+Gets all the recognized text lines in an array of [`DSRecognizedTextLineElement`](recognized-text-line-element.md).
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+- (NSArray*)getRecognizedTextLines;
+```
+2.
+```swift
+func getRecognizedTextLines() -> [RecognizedTextLineElement]?
+```
+
+**Return value**
+
+All the recognized text lines in an array of [`DSRecognizedTextLineElement`](recognized-text-line-element.md).
+
+### getCount
+
+Returns the number of text lines in this unit.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+- (NSInteger)getCount;
+```
+2.
+```swift
+func getCount() -> Int
+```
+
+**Return value**
+
+The number of text lines in this unit.
+
+### getRecognizedTextLine
+
+Returns the text line at the specified index in a [`DSRecognizedTextLineElement`](recognized-text-line-element.md) object.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+- (nullable DSRecognizedTextLineElement*)getRecognizedTextLine:(NSInteger)index;
+```
+2.
+```swift
+func getRecognizedTextLine(_ index: Int) -> RecognizedTextLineElement?
+```
+
+**Parameters**
+
+`index`: The index of the text line in this unit.
+
+**Return value**
+
+The text line at the specified index in a [`DSRecognizedTextLineElement`](recognized-text-line-element.md) object.
+
+### removeAllRecognizedTextLines
+
+Removes all the recognized text lines from this unit.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+- (void)removeAllRecognizedTextLines;
+```
+2.
+```swift
+func removeAllRecognizedTextLines()
+```
+
+### setRecognizedTextLine
+
+Sets the text line at the specified index in a [`DSRecognizedTextLineElement`](recognized-text-line-element.md) object.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+- (NSInteger)setRecognizedTextLine:(DSRecognizedTextLineElement*)element
+ matrixToOriginalImage:(CGAffineTransform)matrixToOriginalImage;
+```
+2.
+```swift
+func setRecognizedTextLine(_ element: RecognizedTextLineElement, matrixToOriginalImage: CGAffineTransform) -> Int
+```
+
+**Parameters**
+
+`element`: The [`DSRecognizedTextLineElement`](recognized-text-line-element.md) object to be set.
+
+`matrixToOriginalImage`: The matrix to transform the original image.
+
+**Return value**
+
+Returns the `ErrorCode` if failed. Otherwise, returns 0.
diff --git a/programming/objectivec-swift/api-reference/recognized-text-lines-unit-v3.0.20.md b/programming/objectivec-swift/api-reference/recognized-text-lines-unit-v3.0.20.md
deleted file mode 100644
index c76b6d4..0000000
--- a/programming/objectivec-swift/api-reference/recognized-text-lines-unit-v3.0.20.md
+++ /dev/null
@@ -1,57 +0,0 @@
----
-layout: default-layout
-title: DSRecognizedTextLinesUnit - Dynamsoft Label Recognizer iOS Edition
-description: The class DSRecognizedTextLinesUnit of Dynamsoft Label Recognizer iOS edition represents an intermediate result unit containing recognized text lines.
-keywords: Recognized text lines unit
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
-breadcrumbText: DSRecognizedTextLinesUnit
-permalink: /programming/objectivec-swift/api-reference/recognized-text-lines-unit-v3.0.20.html
----
-
-# DSRecognizedTextLinesUnit
-
-The `DSRecognizedTextLinesUnit` class represents an intermediate result unit containing recognized text lines. It inherits from the [DSIntermediateResultUnit]({{ site.dcv_ios_api }}core/intermediate-results/intermediate-result-unit.html) class.
-
-## Definition
-
-*Assembly:* DynamsoftLabelRecognizer.xcframework
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@interface DSRecognizedTextLinesUnit: DSIntermediateResultUnit
-```
-2.
-```swift
-class RecognizedTextLinesUnit: IntermediateResultUnit
-```
-
-*Inheritance:* [DSIntermediateResultUnit]({{ site.dcv_ios_api }}core/intermediate-results/intermediate-result-unit.html) -> DSRecognizedTextLinesUnit
-
-## Properties
-
-| Property | Type | Description |
-| -------- | ---- | ----------- |
-| [`recognizedTextLines`](#recognizedtextlines) | *NSArray<*DSRecognizedTextLineElement*>* | A pointer to the [`DSRecognizedTextLineElement`](recognized-text-line-element.md) object at the specified index. |
-
-### recognizedTextLines
-
-All the recognized text lines of this unit in an array of [`DSRecognizedTextLineElement`](recognized-text-line-element.md).
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, nullable, copy) NSArray* recognizedTextLines;
-```
-2.
-```swift
-var recognizedTextLines: [RecognizedTextLineElement]? { get }
-```
diff --git a/programming/objectivec-swift/api-reference/recognized-text-lines-unit.md b/programming/objectivec-swift/api-reference/recognized-text-lines-unit.md
index ce3ebde..fc77d0a 100644
--- a/programming/objectivec-swift/api-reference/recognized-text-lines-unit.md
+++ b/programming/objectivec-swift/api-reference/recognized-text-lines-unit.md
@@ -36,11 +36,42 @@ class RecognizedTextLinesUnit: IntermediateResultUnit
| Method | Description |
| ------ | ----------- |
+| [`addRecognizedTextLine`](#addrecognizedtextline) | Adds a recognized text line. |
| [`getRecognizedTextLines`](#getrecognizedtextlines) | Get all the recognized text lines in an array of [`DSRecognizedTextLineElement`](recognized-text-line-element.md). |
| [`getCount`](#getcount) | Returns the number of text lines in this unit. |
| [`getRecognizedTextLine`](#getrecognizedtextline) | Returns the text line at the specified index in a [`DSRecognizedTextLineElement`](recognized-text-line-element.md) object. |
| [`removeAllRecognizedTextLines`](#removeallrecognizedtextlines) | Removes all the recognized text lines from this unit. |
-| [`setRecognizedTextLine`](#setrecognizedtextline) | Sets the text line at the specified index. |
+| [`removeRecognizedTextLine`](#removerecognizedtextline) | Removes the recognized text line at the specified index. |
+| [`setRecognizedTextLine(index, element, matrixToOriginalImage)`](#setrecognizedtextlineindex-element-matrixtooriginalimage) | Sets the recognized text line at the specified index. |
+| [`setRecognizedTextLine(element, matrixToOriginalImage)`](#setrecognizedtextlineelement-matrixtooriginalimage) | Sets the recognized text line at the specified index. |
+
+### AddRecognizedTextLine
+
+Adds a recognized text line.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+-(NSInteger)addRecognizedTextLine:(DSRecognizedTextLineElement*)element
+ matrixToOriginalImage:(CGAffineTransform)matrixToOriginalImage;
+```
+2.
+```swift
+func addRecognizedTextLine(_ element: RecognizedTextLineElement, matrixToOriginalImage: CGAffineTransform) -> Int
+```
+
+**Parameters**
+
+`element`: The [`DSRecognizedTextLineElement`](recognized-text-line-element.md) object to be added.
+
+`matrixToOriginalImage`: The matrix to transform the original image.
+
+**Return value**
+
+Returns the `ErrorCode` if failed. Otherwise, returns 0.
### recognizedTextLines
@@ -143,7 +174,65 @@ Removes all the recognized text lines from this unit.
func removeAllRecognizedTextLines()
```
-### setRecognizedTextLine
+### removeRecognizedTextLine
+
+Removes the [`RecognizedTextLineElement`](recognized-text-line-element.md) at the specified index.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+-(NSInteger)removeRecognizedTextLine:(NSInteger)index;
+```
+2.
+```swift
+func removeRecognizedTextLine(_ index: Int) -> Int
+```
+
+**Parameters**
+
+`index`: The index of the recognized text line to remove.
+
+**Return value**
+
+Returns the `ErrorCode` if failed. Otherwise, returns 0.
+
+### setRecognizedTextLine(index, element, matrixToOriginalImage)
+
+Sets the text line at the specified index in a [`DSRecognizedTextLineElement`](recognized-text-line-element.md) object.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+-(NSInteger)setRecognizedTextLine:(NSInteger)index
+ element:(DSRecognizedTextLineElement*)element
+ matrixToOriginalImage:(CGAffineTransform)matrixToOriginalImage;
+```
+2.
+```swift
+func setRecognizedTextLine(_ index: Int, element: RecognizedTextLineElement, matrixToOriginalImage: CGAffineTransform) -> Int
+```
+
+**Parameters**
+
+`index`: The index of the recognized text line to set.
+
+`element`: The [`DSRecognizedTextLineElement`](recognized-text-line-element.md) object to be set.
+
+`matrixToOriginalImage`: The matrix to transform the original image.
+
+**Return value**
+
+Returns the `ErrorCode` if failed. Otherwise, returns 0.
+
+### setRecognizedTextLine(element, matrixToOriginalImage)
+
+> This method is deprecated.
Sets the text line at the specified index in a [`DSRecognizedTextLineElement`](recognized-text-line-element.md) object.
diff --git a/programming/objectivec-swift/api-reference/text-line-result-item-v3.0.20.md b/programming/objectivec-swift/api-reference/text-line-result-item-v2.2.3000.md
similarity index 71%
rename from programming/objectivec-swift/api-reference/text-line-result-item-v3.0.20.md
rename to programming/objectivec-swift/api-reference/text-line-result-item-v2.2.3000.md
index 931ad68..ced5435 100644
--- a/programming/objectivec-swift/api-reference/text-line-result-item-v3.0.20.md
+++ b/programming/objectivec-swift/api-reference/text-line-result-item-v2.2.3000.md
@@ -7,7 +7,6 @@ needGenerateH3Content: true
needAutoGenerateSidebar: true
noTitleIndex: true
breadcrumbText: DSTextLineResultItem
-permalink: /programming/objectivec-swift/api-reference/text-line-result-item-v3.0.20.html
---
# DSTextLineResultItem
@@ -37,10 +36,11 @@ class TextLineResultItem: CapturedResultItem
| Property | Type | Description |
| -------- | ---- | ----------- |
-| [`text`](#text) | *NSString* | The text content of the text line. |
-| [`location`](#location) | *DSQuadrilateral* | The location of the text line in the form of a quadrilateral. |
+| [`text`](#text) | *NSString \** | The text content of the text line. |
+| [`location`](#location) | *DSQuadrilateral \** | The location of the text line in the form of a quadrilateral. |
| [`confidence`](#confidence) | *NSInteger* | The confidence of the text line recognition result. |
-| [`characterResults`](#characterresults) | *NSArray<*DSCharacterResult*>* | All the characters in the text line. Each character is represented by a [`CharacterResult`](character-result.md) object. |
+| [`characterResults`](#characterresults) | *NSArray \** | All the characters in the text line. Each character is represented by a [`CharacterResult`](character-result.md) object. |
+| [`specificationName`](#specificationname) | *NSString \** | the name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`. |
### text
@@ -109,3 +109,20 @@ Returns all the characters in the text line. Each character is represented by a
```swift
var charResult: [CharacterResult]? { get }
```
+
+### specificationName
+
+The name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+@property (nonatomic, readonly, assign) NSString* specificationName;
+```
+2.
+```swift
+var specificationName: String { get }
+```
diff --git a/programming/objectivec-swift/api-reference/text-line-result-item.md b/programming/objectivec-swift/api-reference/text-line-result-item.md
index ced5435..cfda277 100644
--- a/programming/objectivec-swift/api-reference/text-line-result-item.md
+++ b/programming/objectivec-swift/api-reference/text-line-result-item.md
@@ -41,6 +41,7 @@ class TextLineResultItem: CapturedResultItem
| [`confidence`](#confidence) | *NSInteger* | The confidence of the text line recognition result. |
| [`characterResults`](#characterresults) | *NSArray \** | All the characters in the text line. Each character is represented by a [`CharacterResult`](character-result.md) object. |
| [`specificationName`](#specificationname) | *NSString \** | the name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-line-specification/) object that generated this `TextLineResultItem`. |
+| [`rawText`](#rawtext) | *NSString \** | The recognized raw text, excluding any concatenation separators. |
### text
@@ -126,3 +127,20 @@ The name of the [`TextLineSpecification`]({{site.dcv_parameter_reference}}text-l
```swift
var specificationName: String { get }
```
+
+### rawText
+
+The recognized raw text, excluding any concatenation separators.
+
+
+>- Objective-C
+>- Swift
+>
+>1.
+```objc
+@property (nonatomic, assign, readonly) NSString* rawText;
+```
+2.
+```swift
+var rawText: String? { get }
+```
diff --git a/programming/objectivec-swift/hello-world-sample.md b/programming/objectivec-swift/hello-world-sample.md
deleted file mode 100644
index 05236fd..0000000
--- a/programming/objectivec-swift/hello-world-sample.md
+++ /dev/null
@@ -1,19 +0,0 @@
----
-layout: default-layout
-title: HelloWorld (iOS) Dynamsoft Label Recognizer
-description: This is the page of Dynamsoft Label Recognizer iOS HelloWorld sample.
-keywords: HelloWorld, iOS
-needAutoGenerateSidebar: true
-permalink: /programming/objectivec-swift/hello-world-sample.html
----
-
-# HelloWorld Sample
-
-The iOS Helloworld sample shows how to create the simplest video streaming text scanning app with Dynamsoft Label Recognizer iOS SDK.
-
-View the sample:
-
-- HelloWorld (Objective-C)
-- HelloWorld (Swift)
-
-For more details about how to get started with Dynamsoft Label Recognizer, please view the [user guide](user-guide.md).
diff --git a/programming/objectivec-swift/index.md b/programming/objectivec-swift/index.md
deleted file mode 100644
index 69ac153..0000000
--- a/programming/objectivec-swift/index.md
+++ /dev/null
@@ -1,30 +0,0 @@
----
-layout: default-layout
-title: Main Page - Dynamsoft Label Recognizer for iOS
-description: This is the main page of Dynamsoft Label Recognizer for iOS SDK.
-keywords: objective-c, oc, swift
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /programming/objectivec-swift/index.html
----
-
-# iOS Documentation
-
-## Getting Started
-
-- [User Guide](user-guide.html)
-
-## Samples
-
-- Samples
- - [HelloWorld](samples/recognize-from-camera-enhancer.html)
-
-## API Reference
-
-- [API Reference](api-reference/index.html)
-
-## Release Notes
-
-- [Version 3.x](release-notes/ios-3.html)
-- [Version 2.x](release-notes/ios-2.html)
-- [Version 1.x](release-notes/ios-1.html)
diff --git a/programming/objectivec-swift/release-notes/index.md b/programming/objectivec-swift/release-notes/index.md
deleted file mode 100644
index 7aa0b61..0000000
--- a/programming/objectivec-swift/release-notes/index.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-layout: default-layout
-title: iOS SDK Release Notes - Dynamsoft Label Recognizer
-description: This is the release notes page of Dynamsoft Label Recognizer for iOS SDK.
-keywords: release notes, objective-c, oc, swift
-needAutoGenerateSidebar: false
-permalink: /programming/objectivec-swift/release-notes/index.html
----
-
-# Release Notes - iOS
-
-- [3.2.30 (05/15/2024)](ios-3.html#3230-05152024)
-- [3.0.20 (12/07/2023)](ios-3.html#3020-12072023)
-- [2.2.20 (09/29/2022)](ios-2.html#2220-09292022)
-- [2.0 (08/26/2021)](ios-2.html#20-08262021)
-- [1.2.1 (06/08/2021)](ios-1.html#121-06082021)
-- [1.2 (05/18/2021)](ios-1.html#12-05182021)
-- [1.0 (02/24/2021)](ios-1.html#10-02242021)
diff --git a/programming/objectivec-swift/release-notes/ios-3.md b/programming/objectivec-swift/release-notes/ios-3.md
deleted file mode 100644
index 28b0065..0000000
--- a/programming/objectivec-swift/release-notes/ios-3.md
+++ /dev/null
@@ -1,164 +0,0 @@
----
-layout: default-layout
-title: iOS SDK Release Notes 3.x - Dynamsoft Label Recognizer
-description: This is the release notes page of Dynamsoft Label Recognizer for iOS SDK version 3.x.
-keywords: release notes, ios
-needAutoGenerateSidebar: false
-permalink: /programming/objectivec-swift/release-notes/ios-3.html
----
-
-# DLR Release Notes - iOS 3.x
-
-
-
-## 3.2.30 (05/15/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 function 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_parameter }}reference/target-roi-def/){:target="_blank"} by implementing an OutputTaskSetting based on the task results of varying products from descendant `TargetROIDef` objects.
-- Enhanced the [`Offset`]({{ site.dcv_parameter }}reference/target-roi-def/location.html#offset){:target="_blank"} 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_parameter }}reference/text-line-specification/){:target="_blank"} 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.
-
-### Changelogs
-
-#### Improved
-
-- Improved the speed of `TextLineGroup` detection by optimizing internal logic.
-- Security update for `DynamsoftLabelRecognizer` library and other corresponding libraries.
-- Supported multiple instances of the class `CaptureVisionRouter`.
-- Supported the filter configuration of the characters that are not recognized by the Deep Neural Network via the Filter.txt file.
-- 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.
-- Improved the `CharacterModel` loading mechanism. If a model file is available under the `DynamsoftResources.bundle` file, the `CharacterModel` will be loaded autometically. Otherwise, it will be downloaded from the server.
-
-### New
-
-- Added new APIs for users to obtain the cached character items and the character clusters:
-- A new class [`DSBufferedCharacterItemSet`]({{ site.dlr_ios_api }}buffered-character-item-set.html) to represent a collection of buffered character items and cluster information.
-- A new class [`DSBufferedCharacterItem`]({{ site.dlr_ios_api }}buffered-character-item.html) to represent a basic item of the buffered characters with its image and features information.
-- A new class [`DSCharacterCluster`]({{ site.dlr_ios_api }}character-cluster.html) to represent a character cluster generated from the collected buffered character items.
-- Added a new class [`DSBufferedItemsManager`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/buffered-items-manager.html) to manage the buffered character items.
-- Added a new method [`getBufferedItemsManger`]({{ site.dcv_ios_api }}capture-vision-router/buffered-items.html#getbuffereditemsmanager) to the `CaptureVisionRouter` class to get an object of `DSBufferedItemsManager`.
-- Added a new property [`specificationName`]({{ site.dlr_ios_api }}text-line-result-item.html#specificationname) to the `TextLineResultItem` class to get the name of the [`TextLineSpecificationObject`]({{ site.dcv_parameter }}file/auxiliary/textline-specification.html){:target="_blank"} that generated this `TextLineResultItem`.
-- Added a new method [`getSpecificationName`]({{ site.dlr_ios_api }}recognized-text-line-element.html#getspecificationname) to the `DSRecognizedTextLineElement` class to get the name of the [`TextLineSpecificationObject`]({{ site.dcv_parameter }}file/auxiliary/textline-specification.html){:target="_blank"} that generated this `DSRecognizedTextLineElement`.
-- Added new [error codes]({{ site.dcv_enumerations }}core/error-code.html?lang=objc,swift):
- - `DSErrorResultTypeMismatchIrreplaceable`
- - `DSErrorLicenseCacheUsed`
- - `DSErrorImageSizeNotMatch`
- - `DSErrorImagePixelFormatNotMatch`
- - `DSErrorSectionLevelResultIrreplaceable`
- - `DSErrorAxisDefinitionIncorrect`
- - `DSErrorTextLineGroupLayoutConflict`
- - `DSErrorTextLineGroupRegexConflict`
-- Added a new method [`getRecognizedTextLinesResult`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/captured-result.html#getrecognizedtextlinesresult) to the `DSCapturedResult` class to get all the result items with the type `CRIT_TEXT_LINE`.
-- Added new virtual destructors to the following interfaces to prevent memory leaks.
- - [`DSCaptureStateListener`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/capture-state-listener.html)
- - [`DSImageSourceStateListener`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/image-source-state-listener.html)
-- The following classes are migrated from `DynamsoftCore.framework` into `DynamsoftCaptureVision.framework`:
- - [`DSCapturedResult`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/captured-result.html)
- - [`DSIntermediateResultReceiver`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/intermediate-result-receiver.html)
- - [`DSCapturedResultReceiver`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html)
- - [`DSCapturedResultFilter`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/captured-result-filter.html)
- - [`DSIntermediateResultManager`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/intermediate-result-manager.html)
-- Added a new call back method [`onShortLinesUnitReceived`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/intermediate-result-receiver.html#onshortlinesunitreceived) to the [`DSIntermediateResultReceiver`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/intermediate-result-receiver.html) class.
-- Added methods [`pauseCapturing`]({{ site.dcv_ios_api }}capture-vision-router/multiple-file-processing.html#pausecapturing) and [`resumeCapturing`]({{ site.dcv_ios_api }}capture-vision-router/multiple-file-processing.html#resumecapturing). Two new enumeration members, `CapturedStatePaused` and `CapturedStateResumed`, are added to [`DSCapturedState`]({{ site.dcv_enumerations }}capture-vision-router/capture-state.html?lang=objc,swift) as well.
-- Added a new property [`resultUnitTypesOnlyForInput`]({{ site.dcv_ios_api }}core/intermediate-results/observation-parameters.html#resultunittypesonlyforinput) to the `ObservationParameters` class to specify the `input only` result unit.
-- Added the following methods to the [`RegionObjectElement`]({{ site.dcv_ios_api }}core/intermediate-results/region-object-element.html) class to support the intermediate result modification.
- - `setLocation`
- - `clone`
- - `retain`
- - `release`
-- Added a new method `replace` to the [`DSIntermediateResultUnit`]({{ site.dcv_ios_api }}core/intermediate-results/intermediate-result-unit.html) class to support the replacement of intermediate result units.
-- Added `setImageData` methods to the following classes:
- - [`DSColourImageUnit`]({{ site.dcv_ios_api }}core/intermediate-results/colour-image-unit.html)
- - [`DSScaledDownColourImageUnit`]({{ site.dcv_ios_api }}core/intermediate-results/scaled-down-colour-image-unit.html)
- - [`DSGrayscaleImageUnit`]({{ site.dcv_ios_api }}core/intermediate-results/grayscale-image-unit.html)
- - [`DSTransformedGrayscaleImageUnit`]({{ site.dcv_ios_api }}core/intermediate-results/transformed-grayscale-image-unit.html)
- - [`DSEnhancedGrayscaleImageUnit`]({{ site.dcv_ios_api }}core/intermediate-results/enhanced-grayscale-image-unit.html)
- - [`DSBinaryImageUnit`]({{ site.dcv_ios_api }}core/intermediate-results/binary-image-unit.html)
- - [`DSTextureRemovedGrayscaleImageUnit`]({{ site.dcv_ios_api }}core/intermediate-results/texture-removed-grayscale-image-unit.html)
- - [`DSTextureRemovedBinaryImageUnit`]({{ site.dcv_ios_api }}core/intermediate-results/texture-removed-binary-image-unit.html)
- - [`DSTextRemovedBinaryImageUnit`]({{ site.dcv_ios_api }}core/intermediate-results/text-removed-binary-image-unit.html)
-- Added new methods to the [`DSPredetectedRegionsUnit`]({{ site.dcv_ios_api }}core/intermediate-results/predetected-regions-unit.html) class to add, remove or set the predetected regions.
-- Added new methods to the [`DSLineSegmentsUnit`]({{ site.dcv_ios_api }}core/intermediate-results/line-segments-unit.html) class to add, remove or set the line segments.
-- Added new methods to the [`DSTextZonesUnit`]({{ site.dcv_ios_api }}core/intermediate-results/text-zones-unit.html) class to add, remove or set the text zones. Added a new class CTextZone to store the information of a single text zone.
-- Added a new method `setContours` to the [`DSContourUnit`]({{ site.dcv_ios_api }}core/intermediate-results/contours-unit.html) class.
-- Added new methods to the [`DSTextureDetectionResultUnit`]({{ site.dcv_ios_api }}core/intermediate-results/texture-detection-result-unit.html) class to set the X & Y spacing.
-- Added a new intermediate result unit, [`DSShortLinesUnit`]({{ site.dcv_ios_api }}core/intermediate-results/short-lines-unit.html), to output the detected short lines. The corresponding enumeration member `DSIntermediateResultUnitTypeShortLines` is added to the [`DSIntermediateResultUnitType`]({{ site.dcv_enumerations }}core/intermediate-result-unit-type.html?lang=objc,swift).
-- Added the following methods to the [`DSCapturedResultItem`]({{ site.dcv_ios_api }}core/basic-structures/captured-result-item.html) class
- - `getTargetROIDefName`
- - `getTaskName`
- - `retain`
- - `release`
-- Added the following methods to the [`DSCapturedResult`]({{ site.dcv_ios_api }}core/basic-structures/captured-result.html) class.
- - `retain`
- - `release`
-- Added a new supported image pixel format, binary 8 inverted. The corresponding enumeration member is added to the [`DSImagePixelFormat`]({{ site.dcv_enumerations }}core/image-pixel-format.html?lang=objc,swift).
-- Added return value for the `retain` method of the [`DSIntermediateResultUnit`]({{ site.dcv_ios_api }}core/intermediate-results/intermediate-result-unit.html) class. The method will return the pointer of the current `DSIntermediateResultUnit`.
-- Added new methods to the [`DSLocalizedTextLinesUnit`]({{ site.dlr_ios_api }}localized-text-lines-unit.html) class to add, set or remove the localized text line elements.
-- Added new methods to the [`DSRecognizedTextLinesUnit`]({{ site.dlr_ios_api }}recognized-text-lines-unit.html) class to add, set or remove the recognized text line elements.
-- Added a new method `setText` to the [`DSRecognizedTextLineElement`]({{ site.dlr_ios_api }}recognized-text-line-element.html) class.
-- Added the following methods to the [`DSRecognizedTextLinesResult`]({{ site.dlr_ios_api }}recognized-text-lines-result.html) class.
- - `retain`
- - `release`
-- Added new constructors to the following classes.
- - [`DSRecognizedTextLineElement`]({{ site.dlr_ios_api }}recognized-text-line-element.html)
- - [`DSLocalizedTextLineElement`]({{ site.dlr_ios_api }}localized-text-line-element.html)
-- Updated the template system
- - Added new [`LabelRecognizerTaskSettings`]({{ site.dcv_parameter }}reference/label-recognizer-task-settings/){:target="_blank"} 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/){:target="_blank"} 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.
- - Added `StringLengthRange` for [`TextDetectionMode`]({{ site.dcv_parameter }}reference/image-parameter/text-detection-mode.html){:target="_blank"}.
- - Added `ReferenceTaskNameArray` under [`Location.ReferenceObjectFilter`]({{ site.dcv_parameter }}reference/target-roi-def/location.html){:target="_blank"} to filter the reference objects generated by the task name.
- - Added the support of the [`OutputTaskSetting`]({{ site.dcv_parameter }}reference/output-task-setting/index.html){:target="_blank"} definition. The following subparameters are available in `OutputTaskSetting` object:
- - [`OutputCondition`]({{ site.dcv_parameter }}reference/output-task-setting/output-condition.html){:target="_blank"}
- - [`TaskResultArray`]({{ site.dcv_parameter }}reference/output-task-setting/output-condition.html#taskresultarray){:target="_blank"}
- - [`TargetROIDefName`]({{ site.dcv_parameter }}reference/target-roi-def/index.html#targetroidefname){:target="_blank"}
- - [`TaskSettingNameArray`]({{ site.dcv_parameter }}reference/output-task-setting/output-condition.html#tasksettingnamearray){:target="_blank"}
- - [`BackwardReferenceOutput`]({{ site.dcv_parameter }}reference/output-task-setting/output-condition.html#backwardreferenceoutput){:target="_blank"}
- - `ReferenceTaskNameArray`
- - `ReferenceResultTypeArray`
- - [`Operator`]({{ site.dcv_parameter }}reference/output-task-setting/output-condition.html){:target="_blank"}
- - [`Name`]({{ site.dcv_parameter }}reference/output-task-setting/name.html){:target="_blank"}
- - [`Offset`]({{ site.dcv_parameter }}reference/target-roi-def/location.html#offset){:target="_blank"} parameter is optimized.
- - Added `ReferenceObjectType` to specify whether the reference object is an atomic object or the whole image.
- - Added `ReferenceXAxis` & `ReferenceYAxis` to define the X & Y axis.
- - Modified `FirstPoint`, `SecondPoint`, `ThirdPoint` & `FourthPoint`. You can specify whether the X or Y coordinate of the point is measured by percentage.
- - Deprecated `ReferenceObjectSize` Type.
-
-### Changes
-
-- Changed the logic of the [`stopCapturing`]({{ site.dcv_ios_api }}capture-vision-router/multiple-file-processing.html#stopCapturing) method.
- - [`DSCaptureResultReceiver`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html) will not receive results after `stopCapturing` is triggered with `waitForRemainingTasks` false.
- - Support stop capturing after the [`pauseCapturing`]({{ site.dcv_ios_api }}capture-vision-router/multiple-file-processing.html#pauseCapturing) method is triggered.
-- Changed the logic of the [`capturedResultItemTypes`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/simplified-capture-vision-settings.html#capturedresultitemtypes) setting of `DSSimplifiedCaptureVisionSettings`:
- - If the result item types don't match the specified template, the method [`updateSettings`]({{ site.dcv_ios_api }}capture-vision-router/settings.html#updatesettings) will return the error code `DSErrorParameterValueInvalid` with the message "The captured result item types do not match the task configurations in the template".
- - Based on the `capturedResultItemTypes` setting, the irrelevant tasks will be removed from the template.
- - The `capturedResultItemTypes` should include at least one of the `DSCapturedResultItemTypeBarcode`, `DSCapturedResultItemTypeTextLine`, `DSCapturedResultItemTypeDetectedQuad`, `DSCapturedResultItemTypeNormalizedImage`. Otherwise, the method `updateSettings` will return the error code `DSErrorParameterValueInvalid` with the message "The captured result item types should contain at least one task result type".
-- Refactored the [`DSContour`]({{ site.dcv_ios_api }}core/basic-structures/contour.html) class. Please view API reference - [`DSContour`]({{ site.dcv_ios_api }}core/basic-structures/contour.html) class for more information.
-- Changed the internal logic of the property [`resultUnitTypesOnlyForInput`]({{ site.dcv_ios_api }}core/intermediate-results/observation-parameters.html#resultunittypesonlyforinput) of `DSObservationParameters`. The method only takes effect when the callback of the specified result unit is implemented.
-
-### Fixed
-
-- Fixed a crash bug that might happen when triggering the [`setNextImageToReturn`]({{ site.dcv_ios_api }}core/basic-structures/image-source-adapter.html#setnextimagetoreturn) method of the `DSImageSourceAdapter` class.
-- Fixed a crash bug of the Replace method of the `IntermediateResultUnit` class. The method will return the error code `EC_RESULT_TYPE_MISMATCH_IRREPLACEABLE` when the result type is mismatched.
-- Fixed a bug where error messages are not output when parsing the parameter templates.
-- Fixed a bug where multiple results were output from the same text area.
-- Fixed a bug where the capture might be blocked due to the network latency.
-- Fixed the bugs of usage count. The usage count of text line recognition might be double counted when the intermediate results are output.
-
-## 3.0.20 (12/07/2023)
-
-{%- include release-notes/product-highlight-3.0.0.md -%}
-
-The APIs of Dynamsoft Label Recognizer are comprehensively updated. Please follow the view [upgrade instructions]{{ site.dlr_ios }}upgrade.html to update your code.
diff --git a/programming/objectivec-swift/samples.md b/programming/objectivec-swift/samples.md
deleted file mode 100644
index b311c15..0000000
--- a/programming/objectivec-swift/samples.md
+++ /dev/null
@@ -1,33 +0,0 @@
----
-layout: default-layout
-title: iOS Samples - Dynamsoft Label Recognizer
-description: This is the iOS samples page of Dynamsoft Label Recognizer.
-keywords: samples, iOS
-needAutoGenerateSidebar: true
-permalink: /programming/objectivec-swift/samples.html
----
-
-# Demo and Samples
-
-## Samples
-
-| Name | Description |
-| ---- | ----------- |
-| [HelloWorld](hello-world-sample.md) | The simplest video streaming text scanner. |
-| [MRZScanner](mrz-sample.md) | An example shows how to use Dynamsoft Label Recognizer on scanning MRZ. |
-
-Before you start viewing the samples, the following concepts may help you understand how to get started with Dynamsoft Label Recognizer.
-
-### License
-
-A network connection is required to verify the trial license in the samples. You can request a 30-day trial license via the [Request a Trial License](https://www.dynamsoft.com/customer/license/trialLicense?product=dlr&utm_source=docs&package=ios){:target="_blank"} link. If you download the [Installation Package](https://www.dynamsoft.com/label-recognition/downloads/?product=dlr&utm_source=docs&package=ios), it comes with a 30-day trial license by default.
-
-### Video Text Line Recognizing
-
-Most of the Dynamsoft Label Recognizer mobile samples are designed for video text recognizing. Dynamsoft Camera Enhancer (DCE) is applied to the video streaming scanning samples. The following features in the samples are powered by DCE:
-
-- Capture video frames for text recognition.
-- Specify a scan region.
-- Highlighting the recognized text areas.
-
-View the [API reference](api-reference/camera-enhancer/index.md) for more details
diff --git a/programming/objectivec-swift/samples/recognize-from-camera-enhancer.md b/programming/objectivec-swift/samples/recognize-from-camera-enhancer.md
deleted file mode 100644
index c69453f..0000000
--- a/programming/objectivec-swift/samples/recognize-from-camera-enhancer.md
+++ /dev/null
@@ -1,71 +0,0 @@
----
-layout: default-layout
-title: Recognize Text Lines from Camera Enhancer - Dynamsoft Label Recognizer iOS edition
-description: This is page introduce RecognizeTextLinesWithCameraEnhancer sample of Dynamsoft Label Recognizer iOS edition.
-keywords: HelloWorld, iOS
-needAutoGenerateSidebar: true
----
-
-# RecognizeTextLinesWithCameraEnhancer
-
-This sample illustrates how to recognize text lines from the video streaming. In this sample, you can read how to use [`DynamsoftCameraEnhancer`]({{ site.dce_ios }}){:target="_blank"} to capture the video streaming.
-
-**View the sample code**
-
-* RecognizeTextLineWithCameraEnahcner Sample (Swift)
-* RecognizeTextLineWithCameraEnahcner Sample (Objective-C)
-
-There are some basic concepts that are helpful on understanding the SDK.
-
-## CaptureVisionRouter
-
-[`CaptureVisionRouter`]({{ site.dcv_ios_api }}capture-vision-router/capture-vision-router.html) is a router that responsible for retrieving images from the source, coordinating the image processing tasks and dispatching the processing results. To implement a text line recognizing task, what you have to do are:
-
-* Set a standard input for your `CaptureVisionRouter` instance.
-* Set a result receiver via your `CaptureVisionRouter` instance.
-* Tell your `CaptureVisionRouter` instance to start working and specify a text line recognizing template with its name.
-* (Additional) Configure the image processing Parameters to optimize the text line recognizing performance.
-
-## Standard Input
-
-Use the [`setInput`]({{ site.dcv_ios_api }}capture-vision-router/multiple-file-processing.html#setinput) method of the `CaptureVisionRouter` to bind an `ImageSourceAdapter` (ISA) instance is the simplest way to access to the standard input. `CameraEnhancer` is one of the official implementation of the ISA for you to quickly set up the mobile camera as the image source.
-
-## Output
-
-To get the output result, you have to implement the `CapturedResultReceiver` and bind it with your `CaptureVisionRouter` instance. You will receive the text line recognizing results in the [`onRecognizedTextLinesReceived`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html#onrecognizedtextlinesreceived) method each time when a image (video frame) is processed.
-
-## Control the Start & Stop of the Capturing
-
-If only one text line recognizing result is required in one scan, you can stop the text line recognizing thread via [`stopCapturing`]({{ site.dcv_ios_api }}capture-vision-router/multiple-file-processing.html#stopcapturing) method. You can call the [`startCapturing`]({{ site.dcv_ios_api }}capture-vision-router/multiple-file-processing.html#startcapturing) at any time when you want to restart the text line recognizing.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (void)onRecognizedTextLinesReceived:(DSRecognizedTextLinesResult *)result {
- if (result.items.count > 0) {
- // Stop capturing if barcode result is no empty.
- dispatch_async(dispatch_get_main_queue(), ^{
- [self.cvr stopCapturing];
- });
- for (DSBarcodeResultItem *item in result.items) {
- // Deal with the result you get.
- }
- }
-}
-```
-2.
-```swift
-func onRecognizedTextLinesReceived(_ result: RecognizedTextLinesResult) {
- if let items = result.items, items.count > 0 {
- DispatchQueue.main.async {
- self.cvr.stopCapturing()
- }
- for item in items {
- // Deal with the result you get.
- }
- }
-}
-```
diff --git a/programming/objectivec-swift/upgrade-v3.0.20.md b/programming/objectivec-swift/upgrade-v3.0.20.md
deleted file mode 100644
index d8916a9..0000000
--- a/programming/objectivec-swift/upgrade-v3.0.20.md
+++ /dev/null
@@ -1,207 +0,0 @@
----
-layout: default-layout
-title: How to upgrade - Dynamsoft Label Recognizer for iOS
-description: Follow the upgrade instructions to learn to upgrade Label Recognizer SDK iOS edition from version 2.x to version 3.x with simple steps.
-keywords: updates guide, iOS
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /programming/objectivec-swift/upgrade-v3.0.20.html
----
-
-# How to Upgrade
-
-## From Version 2.x to 3.x
-
-Dynamsoft Label Recognizer SDK has been refactored to integrate with [`DynamsoftCaptureVision (DCV)`]({{ site.dcv_introduction }}){:target="_blank"} architecture. To upgrade from version 2.x or earlier to 3.x, we recommend you to follow the [User Guide](user-guide.md) and re-write your codes.
-
-### Update the Libraries to 3.x Version
-
-The Dynamsoft Label Recognizer SDK has been split into multiple libraries from the previous single library.
-
-- Local Dependency
- You have to drag and drop the following xcframeworks into your Xcode project to use Dynamsoft Label Recognizer.
-
- - `DynamsoftCaptureVisionRouter.xcframework`
- - `DynamsoftLabelRecognizer.xcframework`
- - `DynamsoftImageProcessing.xcframework`
- - `DynamsoftCore.xcframework`
- - `DynamsoftLicense.xcframework`
- - `DynamsoftCameraEnhancer.xcframework`(optional)
- - `DynamsoftUtility.xcframework`(optional)
-
-- Remote Dependency(CocoaPods)
- update **Podfile**:
-
- ```pod
- target '{Your project name}' do
- use_frameworks!
-
- pod 'DynamsoftLabelRecognizer','3.0.20'
- pod 'DynamsoftCaptureVisionRouter','2.0.21'
- pod 'DynamsoftCore','3.0.20'
- pod 'DynamsoftImageProcessing','2.0.21'
- pod 'DynamsoftLicense','3.0.30'
- pod 'DynamsoftCameraEnhancer','4.0.2'
- pod 'DynamsoftUtility','1.0.21'
-
- end
- ```
-
- >Note: Please view [user guide](user-guide.md#add-the-xcframeworks-via-cocoapods) for the correct version number.
-
-### Update the License Activation Code
-
-- License activation code in 2.x:
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@interface AppDelegate ()
-...
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
- ...
- [DynamsoftLicenseManager initLicense:@"Put Your License Here" verificationDelegate:self];
-}
-- (void)licenseVerificationCallback:(bool)isSuccess error:(NSError *)error {
- // Add code to execute when license verification is approved or failed.
-}
-```
-2.
-```swift
-class AppDelegate: UIResponder, UIApplicationDelegate, LicenseVerificationListener {
- func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
- DynamsoftLicenseManager.initLicense("Put Your License Here",verificationDelegate:self)
- }
- func licenseVerificationCallback(_ isSuccess: Bool, error: Error?) {
- // Add code to execute when license verification is approved or failed.
- }
-}
-```
-
-- License activation code in 3.x:
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
- [DSLicenseManager initLicense:@"DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9" verificationDelegate:self];
- return YES;
-}
-- (void)onLicenseVerified:(BOOL)isSuccess error:(NSError *)error {
- if (error != nil) {
- NSString *msg = error.localizedDescription;
- NSLog(@"erver license verify failed, error:%@", msg);
- }
-}
-```
-2.
-```swift
-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)")
- }
- }
-}
-```
-
-### Update Single Image Recognizing APIs
-
-The APIs for recognizing text from single image has been adjusted as follows:
-
-| Old APIs | New APIs |
-| :------- | :------- |
-| `DynamsoftLabelRecognizer.recognizeFile` | `DSCaptureVisionRouter.captureFromFile` |
-| `DynamsoftLabelRecognizer.recognizeFileInMemory` | `DSCaptureVisionRouter.captureFromFileBytes` |
-| `DynamsoftLabelRecognizer.recognizeBuffer` | `DSCaptureVisionRouter.captureFromBuffer` |
-| `DynamsoftLabelRecognizer.recognizeImage` | `DSCaptureVisionRouter.captureFromImage` |
-| `class iDLRResult` | `class DSCapturedResult/class DSRecognizedTextLinesResult` |
-
-### Update Video Streaming Recognizing APIs
-
-The APIs for recognizing video frames has been adjusted as follows:
-
-| Old APIs | New APIs |
-| :------- | :------- |
-| `DynamsoftLabelRecognizer.setImageSource` | `DSCaptureVisionRouter.setInput` |
-| `DynamsoftLabelRecognizer.startScanning` | `DSCaptureVisionRouter.startCapturing` |
-| `DynamsoftLabelRecognizer.stopScanning` | `DSCaptureVisionRouter.stopCapturing` |
-| `DynamsoftLabelRecognizer.setLabelResultListener` | `DSCaptureVisionRouter.addResultReceiver` |
-| `protocol ImageSource` | `protocol DSImageSourceAdapter` |
-| `protocol LabelResultListener` | `protocol DSCapturedResultReceiver` |
-| `class iDLRLineResult` | `class DSTextLineResultItem` |
-
-### Migrate Your Templates
-
-The template system is upgraded. The template you used for the previous version can't be directly recognized by the new version. Please contact us to upgrade your template.
-
-The template-based APIs have been updated as follows:
-
-| Old APIs | New APIs |
-| :------- | :------- |
-| `DynamsoftLabelRecognizer.initRuntimeSettingsFromFile` | `DSCaptureVisionRouter.initSettingsFromFile` |
-| `DynamsoftLabelRecognizer.initRuntimeSettings` | `DSCaptureVisionRouter.initSettings` |
-| `DynamsoftLabelRecognizer.outputRuntimeSettingsToFile` | `DSCaptureVisionRouter.outputSettingsToFile` |
-| `DynamsoftLabelRecognizer.outputRuntimeSettings` | `DSCaptureVisionRouter.outputSettings` |
-| `DynamsoftLabelRecognizer.resetRuntimeSettings` | `DSCaptureVisionRouter.resetSettings` |
-
-### Migrate Your DLRRuntimeSettings
-
-The class `DLRRuntimeSettings` has been refactored. It retains commonly used properties while removing the previously complex property settings, which are now exclusively supported through templates.
-
-The APIs for accessing and updating `DLRRuntimeSettings` has been adjusted as follows:
-
-| Old APIs | New APIs |
-| :----------- | :------- |
-| `DynamsoftLabelRecognizer.getRuntimeSettings` | `DSCaptureVisionRouter.getSimplifiedSettings` |
-| `DynamsoftLabelRecognizer.updateRuntimeSettings` | `DSCaptureVisionRouter.updateSettings` |
-
-#### Migrate to DSSimplifiedCaptureVisionSettings
-
-The following properties are replaced by similar properties under `DSSimplifiedCaptureVisionSettings`. They can also be set via a template file(String).
-
-| PublicRuntimeSettings Property | DSSimplifiedCaptureVisionSettings Property | Template File Parameter |
-| ------------------------------- | ----------------------------------------- | ----------------------- |
-| `textArea` | [`roi`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/simplified-capture-vision-settings.html#roi) & [`roiMeasuredInPercentage`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/simplified-capture-vision-settings.html#roimeasuredinpercentage) | [`TargetROIDef.Location.Offset`]({{ site.dcv_parameters_reference }}target-roi-def/location.html?lproduct=dlr&repoType=core){:target="_blank"} |
-| `timeout` | [`timeout`]({{ site.dcv_ios_api }}capture-vision-router/auxiliary-classes/simplified-capture-vision-settings.html#timeout) | [`CaptureVisionTemplates.Timeout`]({{ site.dcv_parameters_reference }}capture-vision-template/timeout.html?lproduct=dlr&repoType=core){:target="_blank"} |
-
-#### Migrate to DSSimplifiedLabelRecognizerSettings
-
-The following properties are replaced by similar properties under `DSSimplifiedLabelRecognizerSettings`. The majority of them can also be set via a template file(String).
-
-| PublicRuntimeSettings Property | DSSimplifiedLabelRecognizerSettings Property | Template File Parameter |
-| ------------------------------- | ----------------------------------------- | ----------------------- |
-| `characterModelName` | [`characterModelName`]({{ site.dlr_ios_api }}simplified-label-recognizer-settings.html#charactermodelname) | [`DynamsoftLabelRecognizerTaskSetting.CharacterModelName`]({{ site.dcv_parameters_reference }}label-recognizer-task-settings/character-model-name.html?lproduct=dlr&repoType=core){:target="_blank"} |
-| `maxThreadCount` | [`maxThreadsInOneTask`]({{ site.dlr_ios_api }}simplified-label-recognizer-settings.html#maxthreadsinonetask) | [`DynamsoftLabelRecognizerTaskSetting.MaxThreadsInOneTask`]({{ site.dcv_parameters_reference }}label-recognizer-task-settings/max-threads-in-one-task.html?lproduct=dlr&repoType=core){:target="_blank"} |
-
-| FurtherModes Property | DSSimplifiedLabelRecognizerSettings Property | Template File Parameter |
-| ---------------------- | ----------------------------------------- | ----------------------- |
-| `grayscaleTransformationModes` | [`grayscaleTransformationModes`]({{ site.dlr_ios_api }}simplified-label-recognizer-settings.html#grayscaletransformationmodes) | [`ImageParameter.GrayscaleTransformationModes`]({{ site.dcv_parameters_reference }}image-parameter/grayscale-enhancement-modes.html?lproduct=dlr&repoType=core){:target="_blank"} |
-| `grayscaleEnhancementModes` | [`grayscaleEnhancementModes`]({{ site.dlr_ios_api }}simplified-label-recognizer-settings.html#grayscaleenhancementmodes) | [`ImageParameter.GrayscaleEnhancementModes`]({{ site.dcv_parameters_reference }}image-parameter/grayscale-transformation-modes.html?lproduct=dlr&repoType=core){:target="_blank"} |
-
-#### Migrate to Template File
-
-The following properties can only be set via a template file. Please [contact us](https://www.dynamsoft.com/company/customer-service/#contact){:target="_blank"} so that we can help you to transform your current settings to a new template file.
-
-| PublicRuntimeSettings Property | Template File Parameter |
-| ------------------------------- | ----------------------- |
-| `binarizationModes` | [`ImageParameter.BinarizationModes`]({{ site.dcv_parameters_reference }}image-parameter/binarization-modes.html?lproduct=dlr&repoType=core){:target="_blank"} |
-| `dictionaryPath` | [`DynamsoftLabelRecognizerTaskSettings.DictionaryPath`]({{ site.dcv_parameters_reference }}label-recognizer-task-settings/dictionary-path.html?lproduct=dlr&repoType=core){:target="_blank"} |
-| `dictionaryCorrectionThreshold` | [`DynamsoftLabelRecognizerTaskSettings.DictionaryCorrectionThreshold`]({{ site.dcv_parameters_reference }}label-recognizer-task-settings/dictionary-correction-thresholds.html?lproduct=dlr&repoType=core){:target="_blank"} |
-
-| PublicRuntimeSettings.furtherModes Property | Template File Parameter |
-| ---------------------- | ----------------------- |
-| `colourConversionModes` | [`ImageParameter.ColourConversionModes`]({{ site.dcv_parameters_reference }}image-parameter/colour-conversion-modes.html?lproduct=dlr&repoType=core){:target="_blank"} |
-| `regionPredetectionModes` | [`ImageParameter.RegionPredetectionModes`]({{ site.dcv_parameters_reference }}image-parameter/region-predetection-modes.html?lproduct=dlr&repoType=core){:target="_blank"} |
-| `textureDetectionModes` | [`ImageParameter.TextureDetectionModes`]({{ site.dcv_parameters_reference }}image-parameter/texture-detection-modes.html?lproduct=dlr&repoType=core){:target="_blank"} |
diff --git a/programming/objectivec-swift/user-guide-v3.0.20.md b/programming/objectivec-swift/user-guide-v3.0.20.md
deleted file mode 100644
index 554cf83..0000000
--- a/programming/objectivec-swift/user-guide-v3.0.20.md
+++ /dev/null
@@ -1,436 +0,0 @@
----
-layout: default-layout
-title: iOS User Guide - Dynamsoft Label Recognizer
-description: This is the user guide page of Dynamsoft Label Recognizer for iOS SDK.
-keywords: iOS, swift, objective-c, user guide
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
----
-
-# Dynamsoft Label Recognizer - iOS User Guide
-
-- [Dynamsoft Label Recognizer - iOS User Guide](#dynamsoft-label-recognizer---ios-user-guide)
- - [Requirements](#requirements)
- - [Add the xcframeworks](#add-the-xcframeworks)
- - [Add the xcframeworks Manually](#add-the-xcframeworks-manually)
- - [Add the xcframeworks via CocoaPods](#add-the-xcframeworks-via-cocoapods)
- - [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)
- - [Receive the Text Line Recognition Results](#receive-the-text-line-recognition-results)
- - [Display the Recognized Textline Results](#display-the-recognized-textline-results)
- - [Configure viewWillAppear, viewDidLoad](#configure-viewwillappear-viewdidload)
- - [Build and Run the Project](#build-and-run-the-project)
-
-## Requirements
-
-- Supported OS: iOS 11+ (iOS 13+ recommended).
-- Supported ABI: arm64 and x86_64.
-- Development Environment: Xcode 13+ (Xcode 14.1+ recommended).
-
-## Add the xcframeworks
-
-The Dynamsoft Label Recognizer (DLR) iOS SDK comes with seven libraries:
-
- | File | Description | Mandatory/Optional |
- |:-----|:------------|:-------------------|
- | `DynamsoftLabelRecognizer.xcframework` | The Dynamsoft Label Recognizer module identifies and recognizes text labels such as passport MRZs, ID cards, and VIN numbers. | Mandatory |
- | `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. | Mandatory |
- | `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. | Mandatory |
- | `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. | Mandatory |
- | `DynamsoftLicense.xcframework` | The Dynamsoft License module manages the licensing aspects of Dynamsoft SDKs based on the DCV (Dynamsoft Capture Vision) architecture. | Mandatory |
- | `DynamsoftCameraEnhancer.xcframework` | The [Dynamsoft Camera Enhancer]({{ site.dce_android }}){:target="_blank"} 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. | Optional |
- | `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. | Optional |
-
-There are two ways to add the libraries into your project - **Manually** or via **CocaPods**.
-
-### Add the xcframeworks Manually
-
-1. Download the SDK package from the Dynamsoft website. After unzipping, seven **xcframework** files can be found in the **Dynamsoft/Frameworks** directory:
-
- - **DynamsoftCaptureVisionRouter.xcframework**
- - **DynamsoftLabelRecognizer.xcframework**
- - **DynamsoftCore.xcframework**
- - **DynamsoftImageProcessing.xcframework**
- - **DynamsoftLicense.xcframework**
- - **DynamsoftUtility.xcframework**
- - **DynamsoftCameraEnhancer.xcframework**
-
-2. Drag and drop the above **xcframeworks** into your Xcode project. Make sure to check Copy items if needed and create groups to copy the **xcframeworks** into your project's folder.
-3. Click on the project settings then go to **General –> Frameworks, Libraries, and Embedded Content**. Set the **Embed** field to **Embed & Sign** for all the **xcframeworks**.
-
-### 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 'DynamsoftLabelRecognizer','3.0.20'
- pod 'DynamsoftCaptureVisionRouter','2.0.21'
- pod 'DynamsoftCore','3.0.20'
- pod 'DynamsoftImageProcessing','2.0.21'
- pod 'DynamsoftLicense','3.0.30'
- pod 'DynamsoftCameraEnhancer','4.0.2'
- pod 'DynamsoftUtility','1.0.21'
-
- end
- ```
-
-2. Execute the pod command to install the frameworks and generate workspace(**{Your project name}.xcworkspace**):
-
- ```bash
- pod install
- ```
-
-## Build Your First Application
-
-The following sample will demonstrate how to create a HelloWorld app for recognizing text from camera video input.
-
->Note:
->
->- The following steps are completed in XCode 14.2
->- View the entire Objective-C source code from [ReadTextLinesWithCameraEnhancerObjc sample](https://github.com/Dynamsoft/label-recognizer-mobile-samples/blob/master/ios/HelloWorld/ReadTextLinesWithCameraEnhancerObjc/)
->- View the entire Swift source code from [ReadTextLinesWithCameraEnhancer sample](https://github.com/Dynamsoft/label-recognizer-mobile-samples/blob/master/ios/HelloWorld/ReadTextLinesWithCameraEnhancer/)
-
-### 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 (Objective-C/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 xcframeworks](#add-the-xcframeworks) section for more details.
-
-### Initialize the License
-
-1. Use the `LicenseManager` class and initialize the license in **AppDelegate**.
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
- [DSLicenseManager initLicense:@"DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9" verificationDelegate:self];
- return YES;
- }
- - (void)onLicenseVerified:(BOOL)isSuccess error:(NSError *)error {
- if (error != nil) {
- NSString *msg = error.localizedDescription;
- NSLog(@"erver license verify failed, error:%@", msg);
- }
- }
- ```
- 2.
- ```swift
- 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:
- >
- >- Network connection is required for the license to work.
- >- The license string here will grant you a time-limited trial license.
- >- You can request a 30-day trial license via the [Request a Trial License](https://www.dynamsoft.com/customer/license/trialLicense?product=dlr&utm_source=guide&package=ios){:target="_blank"} link
-
-### Initialize the Camera Module
-
-1. Create the instances of `CameraEnhancer` and `CameraView` in **ViewController**.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, strong) DSCameraEnhancer *dce;
-@property (nonatomic, strong) DSCameraView *dceView;
-- (void)configureDCE {
- _dceView = [[DSCameraView alloc] initWithFrame:self.view.bounds];
- _dceView.scanLaserVisible = YES;
- [self.view addSubview:_dceView];
- DSDrawingLayer *dlrDrawingLayer = [_dceView getDrawingLayer:DSDrawingLayerIdDLR];
- dlrDrawingLayer.visible = YES;
- _dce = [[DSCameraEnhancer alloc] initWithView:_dceView];
- [_dce open];
- // Set a scan region to restrict the scan area.
- DSRect *region = [[DSRect alloc] init];
- region.top = 0.4;
- region.bottom = 0.6;
- region.left = 0.1;
- region.right = 0.9;
- region.measuredInPercentage = YES;
- [_dce setScanRegion:region error:nil];
-}
-```
-2.
-```swift
-class ViewController: BaseViewController{
- private var dce: CameraEnhancer!
- private var dceView: CameraView!
- private func configureDCE() -> Void {
- dceView = CameraView(frame: self.view.bounds)
- dceView.scanLaserVisible = true
- self.view.addSubview(dceView)
- let dlrDrawingLayer = dceView.getDrawingLayer(DrawingLayerId.DLR.rawValue)
- dlrDrawingLayer?.visible = true
- dce = CameraEnhancer(view: dceView)
- dce.open()
- // Set a scan region to restrict the scan area.
- let region = Rect()
- region.top = 0.4
- region.bottom = 0.6
- region.left = 0.1
- region.right = 0.9
- region.measuredInPercentage = true
- try? dce.setScanRegion(region)
- }
-}
-```
-
-### Initialize the Capture Vision Router
-
-Create an instance of `CaptureVisionRouter` and bind it with the already created instance of `DynamsoftCameraEnhancer`.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, strong) DSCaptureVisionRouter *cvr;
-...
-- (void)configureCVR {
- _cvr = [[DSCaptureVisionRouter alloc] init];
- // Set DCE as the input.
- [_cvr setInput:_dce error:nil];
-}
-```
-2.
-```swift
-class ViewController: BaseViewController{
- private var cvr: CaptureVisionRouter!
- ...
- private func configureCVR() -> Void {
- cvr = CaptureVisionRouter()
- // Set DCE as the input.
- try? cvr.setInput(dce)
- }
-}
-```
-
-### Receive the Text Line Recognition Results
-
-Set up result callback in order to receive the text line recognition results after the camera is opened and the scanning starts.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-// Add DSCapturedResultReceiver to the class.
-@interface ViewController ()
-- (void)configureCVR {
- ...
- [_cvr addResultReceiver:self];
-}
-- (void)onRecognizedTextLinesReceived:(DSRecognizedTextLinesResult *)result {
- if (result.items != nil) {
- // Parse results.
- int index = 0;
- NSMutableString *resultText = [NSMutableString string];
- for (DSTextLineResultItem *dlrLineResults in result.items) {
- index++;
- [resultText appendString:[NSString stringWithFormat:@"Result %d:%@\n", index, dlrLineResults.text != nil ? dlrLineResults.text : @""]];
- }
- dispatch_async(dispatch_get_main_queue(), ^{
- self.resultView.text = [NSString stringWithFormat:@"Results(%d)\n%@", (int)result.items.count, resultText];
- });
- }
-}
-```
-2.
-```swift
-// Add CapturedResultReceiver to the class.
-class ViewController: UIViewController, CapturedResultReceiver {
- ...
- private func configureCVR() -> Void {
- ...
- // Add a CaptureResultReceiver to receive results.
- cvr.addResultReceiver(self)
- }
- func onRecognizedTextLinesReceived(_ result: RecognizedTextLinesResult) {
- guard let items = result.items else { return }
- // Parse Results.
- var resultText = ""
- var index = 0
- for dlrLineResults in items {
- index+=1
- resultText += String(format: "Result %d:%@\n", index, dlrLineResults.text ?? "")
- }
- DispatchQueue.main.async {
- self.resultView.text = String(format: "Results(%d)\n", items.count) + resultText
- }
- }
-}
-```
-
-### Display the Recognized Textline Results
-
-Now that we created the result receiver, let's now create a text view to display the text line recognition results that's referenced in the result callback.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, strong) UITextView *resultView;
-...
-- (UITextView *)resultView {
- if (!_resultView) {
- CGFloat left = 0.0;
- CGFloat width = self.view.bounds.size.width;
- CGFloat height = self.view.bounds.size.height / 2.5;
- CGFloat top = self.view.bounds.size.height - height;
- _resultView = [[UITextView alloc] initWithFrame:CGRectMake(left, top, width, height)];
- _resultView.layer.backgroundColor = [UIColor clearColor].CGColor;
- _resultView.layoutManager.allowsNonContiguousLayout = NO;
- _resultView.font = [UIFont systemFontOfSize:14.0 weight:UIFontWeightMedium];
- _resultView.textColor = [UIColor whiteColor];
- _resultView.textAlignment = NSTextAlignmentCenter;
- }
- return _resultView;
-}
-- (void)setupUI {
- [self.view addSubview:self.resultView];
-}
-```
-2.
-```swift
-class ViewController: UIViewController, CapturedResultReceiver {
- ...
- lazy var resultView: UITextView = {
- let left = 0.0
- let width = self.view.bounds.size.width
- let height = self.view.bounds.size.height / 2.5
- let top = self.view.bounds.size.height - height
- resultView = UITextView(frame: CGRect(x: left, y: top , width: width, height: height))
- resultView.layer.backgroundColor = UIColor.clear.cgColor
- resultView.layoutManager.allowsNonContiguousLayout = false
- resultView.isEditable = false
- resultView.isSelectable = false
- resultView.font = UIFont.systemFont(ofSize: 14.0, weight: .medium)
- resultView.textColor = UIColor.white
- resultView.textAlignment = .center
- return resultView
- }()
- private func setupUI() -> Void {
- self.view.addSubview(resultView)
- }
-}
-```
-
-### Configure viewWillAppear, 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 scanning.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (void)viewWillAppear:(BOOL)animated {
- [super viewWillAppear:animated];
- weakSelfs(self)
- // Start capturing when the view appear.
- [self.cvr startCapturing:DSPresetTemplateRecognizeTextLines completionHandler:^(BOOL isSuccess, NSError * _Nullable error) {
- if (error != nil) {
- [weakSelf displayError:error.localizedDescription completion:nil];
- }
- }];
-}
-- (void)viewDidLoad {
- [super viewDidLoad];
- self.view.backgroundColor = [UIColor whiteColor];
- // Initialize CaptureVisionRouter, CameraEnhancer and the text view you created.
- [self configureCVR];
- [self configureDCE];
- [self setupUI];
-}
-- (void)displayError:(NSString *)msg completion:(nullable ConfirmCompletion)completion {
- dispatch_async(dispatch_get_main_queue(), ^{
- UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"" message:msg preferredStyle: UIAlertControllerStyleAlert];
- UIAlertAction *action = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
- if (completion) completion();
- }];
- [alert addAction:action];
- [self presentViewController:alert animated:YES completion:nil];
- });
-}
-```
-2.
-```swift
-class ViewController: UIViewController, CapturedResultReceiver {
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- cvr.startCapturing(PresetTemplate.recognizeTextLines.rawValue) {
- [unowned self] isSuccess, error in
- if let error = error {
- self.displayError(msg: error.localizedDescription)
- }
- }
- }
- override func viewDidLoad() {
- super.viewDidLoad()
- self.view.backgroundColor = .white
- // Initialize CaptureVisionRouter, CameraEnhancer and the text view you created.
- configureCVR()
- configureDCE()
- setupUI()
- }
- private func displayError(_ title: String = "", msg: String, _ acTitle: String = "OK", completion: ConfirmCompletion? = nil) {
- DispatchQueue.main.async {
- let alert = UIAlertController(title: title, message: msg, preferredStyle: .alert)
- alert.addAction(UIAlertAction(title: acTitle, style: .default, handler: { _ in completion?() }))
- self.present(alert, animated: true, completion: nil)
- }
- }
-}
-```
-
-### 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:
->
->- You can get the source code of the HelloWord app from the following link
->- View the entire Objective-C source code from [ReadTextLinesWithCameraEnhancerObjc sample](https://github.com/Dynamsoft/label-recognizer-mobile-samples/blob/master/ios/HelloWorld/ReadTextLinesWithCameraEnhancerObjc/)
->- View the entire Swift source code from [ReadTextLinesWithCameraEnhancer sample](https://github.com/Dynamsoft/label-recognizer-mobile-samples/blob/master/ios/HelloWorld/ReadTextLinesWithCameraEnhancer/)
diff --git a/programming/objectivec-swift/user-guide.md b/programming/objectivec-swift/user-guide.md
deleted file mode 100644
index d88f2b8..0000000
--- a/programming/objectivec-swift/user-guide.md
+++ /dev/null
@@ -1,446 +0,0 @@
----
-layout: default-layout
-title: iOS User Guide - Dynamsoft Label Recognizer
-description: This is the user guide page of Dynamsoft Label Recognizer for iOS SDK.
-keywords: iOS, swift, objective-c, user guide
-needAutoGenerateSidebar: true
-needGenerateH3Content: true
-permalink: /programming/objectivec-swift/user-guide.html
----
-
-# Dynamsoft Label Recognizer - iOS User Guide
-
-- [Dynamsoft Label Recognizer - iOS User Guide](#dynamsoft-label-recognizer---ios-user-guide)
- - [Requirements](#requirements)
- - [Add the xcframeworks](#add-the-xcframeworks)
- - [Add the xcframeworks Manually](#add-the-xcframeworks-manually)
- - [Add the xcframeworks via CocoaPods](#add-the-xcframeworks-via-cocoapods)
- - [Build Your First Application](#build-your-first-application)
- - [Create a New Project](#create-a-new-project)
- - [Include the Library](#include-the-library)
- - [Deploy the CharacterModels](#deploy-the-charactermodels)
- - [Initialize the License](#initialize-the-license)
- - [Initialize the Camera Module](#initialize-the-camera-module)
- - [Initialize the Capture Vision Router](#initialize-the-capture-vision-router)
- - [Receive the Text Line Recognition Results](#receive-the-text-line-recognition-results)
- - [Display the Recognized Textline Results](#display-the-recognized-textline-results)
- - [Configure viewWillAppear, viewDidLoad](#configure-viewwillappear-viewdidload)
- - [Build and Run the Project](#build-and-run-the-project)
-
-## Requirements
-
-- Supported OS: iOS 11+ (iOS 13+ recommended).
-- Supported ABI: arm64 and x86_64.
-- Development Environment: Xcode 13+ (Xcode 14.1+ recommended).
-
-## Add the xcframeworks
-
-The Dynamsoft Label Recognizer (DLR) iOS SDK comes with seven libraries:
-
- | File | Description | Mandatory/Optional |
- |:-----|:------------|:-------------------|
- | `DynamsoftLabelRecognizer.xcframework` | The Dynamsoft Label Recognizer module identifies and recognizes text labels such as passport MRZs, ID cards, and VIN numbers. | Mandatory |
- | `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. | Mandatory |
- | `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. | Mandatory |
- | `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. | Mandatory |
- | `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. | Mandatory |
- | `DynamsoftLicense.xcframework` | The Dynamsoft License module manages the licensing aspects of Dynamsoft SDKs based on the DCV (Dynamsoft Capture Vision) architecture. | Mandatory |
- | `DynamsoftCameraEnhancer.xcframework` | The [Dynamsoft Camera Enhancer]({{ site.dce_android }}){:target="_blank"} 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. | Optional |
- | `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. | Optional |
-
-There are two ways to add the libraries into your project - **Manually** or via **CocaPods**.
-
-### Add the xcframeworks Manually
-
-1. Download the SDK package from the Dynamsoft website. After unzipping, seven **xcframework** files can be found in the **Dynamsoft/Frameworks** directory:
-
- - **DynamsoftCaptureVisionRouter.xcframework**
- - **DynamsoftLabelRecognizer.xcframework**
- - **DynamsoftCore.xcframework**
- - **DynamsoftImageProcessing.xcframework**
- - **DynamsoftNeuralNetwork.xcframework**
- - **DynamsoftLicense.xcframework**
- - **DynamsoftUtility.xcframework**
- - **DynamsoftCameraEnhancer.xcframework**
-
-2. Drag and drop the above **xcframeworks** into your Xcode project. Make sure to check Copy items if needed and create groups to copy the **xcframeworks** into your project's folder.
-3. Click on the project settings then go to **General –> Frameworks, Libraries, and Embedded Content**. Set the **Embed** field to **Embed & Sign** for all the **xcframeworks**.
-
-### 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 'DynamsoftLabelRecognizerBundle','3.2.3001'
-
- end
- ```
-
-2. Execute the pod command to install the frameworks and generate workspace(**{Your project name}.xcworkspace**):
-
- ```bash
- pod install
- ```
-
-## Build Your First Application
-
-The following sample will demonstrate how to create a HelloWorld app for recognizing text from camera video input.
-
->Note:
->
->- The following steps are completed in XCode 14.2
->- View the entire Objective-C source code from [ReadTextLinesWithCameraEnhancerObjc sample](https://github.com/Dynamsoft/label-recognizer-mobile-samples/blob/master/ios/HelloWorld/ReadTextLinesWithCameraEnhancerObjc/)
->- View the entire Swift source code from [ReadTextLinesWithCameraEnhancer sample](https://github.com/Dynamsoft/label-recognizer-mobile-samples/blob/master/ios/HelloWorld/ReadTextLinesWithCameraEnhancer/)
-
-### 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 (Objective-C/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 xcframeworks](#add-the-xcframeworks) section for more details.
-
-### Deploy the CharacterModels
-
-A `CharacterModel` is a file that trained to support the text line recognition. Before implementing the label recognizing tasks, you have to include the required `CharacterModels` in your project first.
-
-1. Create a **DynamsoftResources** folder in the finder. Under the folder create a **CharacterModel** folder.
-
-2. Copy your `CharacterModel` file(s) to the **CharacterModel** folder. In this guide we put the **NumberLetter.data** to the `CharacterModel` folder.
-
-3. Rename the **DynamsoftResources** folder's extension name to **.bundle**.
-
-4. Drag the **DynamsoftResources.bundle** into your project on Xcode.
-
-### Initialize the License
-
-1. Use the `LicenseManager` class and initialize the license in **AppDelegate**.
-
-
- >- Objective-C
- >- Swift
- >
- >1.
- ```objc
- - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
- [DSLicenseManager initLicense:@"DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9" verificationDelegate:self];
- return YES;
- }
- - (void)onLicenseVerified:(BOOL)isSuccess error:(NSError *)error {
- if (error != nil) {
- NSString *msg = error.localizedDescription;
- NSLog(@"erver license verify failed, error:%@", msg);
- }
- }
- ```
- 2.
- ```swift
- 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:
- >
- >- Network connection is required for the license to work.
- >- The license string here will grant you a time-limited trial license.
- >- You can request a 30-day trial license via the [Request a Trial License](https://www.dynamsoft.com/customer/license/trialLicense?product=dlr&utm_source=guide&package=ios){:target="_blank"} link
-
-### Initialize the Camera Module
-
-1. Create the instances of `CameraEnhancer` and `CameraView` in **ViewController**.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, strong) DSCameraEnhancer *dce;
-@property (nonatomic, strong) DSCameraView *dceView;
-- (void)configureDCE {
- _dceView = [[DSCameraView alloc] initWithFrame:self.view.bounds];
- _dceView.scanLaserVisible = YES;
- [self.view addSubview:_dceView];
- DSDrawingLayer *dlrDrawingLayer = [_dceView getDrawingLayer:DSDrawingLayerIdDLR];
- dlrDrawingLayer.visible = YES;
- _dce = [[DSCameraEnhancer alloc] initWithView:_dceView];
- [_dce open];
- // Set a scan region to restrict the scan area.
- DSRect *region = [[DSRect alloc] init];
- region.top = 0.4;
- region.bottom = 0.6;
- region.left = 0.1;
- region.right = 0.9;
- region.measuredInPercentage = YES;
- [_dce setScanRegion:region error:nil];
-}
-```
-2.
-```swift
-class ViewController: BaseViewController{
- private var dce: CameraEnhancer!
- private var dceView: CameraView!
- private func configureDCE() -> Void {
- dceView = CameraView(frame: self.view.bounds)
- dceView.scanLaserVisible = true
- self.view.addSubview(dceView)
- let dlrDrawingLayer = dceView.getDrawingLayer(DrawingLayerId.DLR.rawValue)
- dlrDrawingLayer?.visible = true
- dce = CameraEnhancer(view: dceView)
- dce.open()
- // Set a scan region to restrict the scan area.
- let region = Rect()
- region.top = 0.4
- region.bottom = 0.6
- region.left = 0.1
- region.right = 0.9
- region.measuredInPercentage = true
- try? dce.setScanRegion(region)
- }
-}
-```
-
-### Initialize the Capture Vision Router
-
-Create an instance of `CaptureVisionRouter` and bind it with the already created instance of `DynamsoftCameraEnhancer`.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, strong) DSCaptureVisionRouter *cvr;
-...
-- (void)configureCVR {
- _cvr = [[DSCaptureVisionRouter alloc] init];
- // Set DCE as the input.
- [_cvr setInput:_dce error:nil];
-}
-```
-2.
-```swift
-class ViewController: BaseViewController{
- private var cvr: CaptureVisionRouter!
- ...
- private func configureCVR() -> Void {
- cvr = CaptureVisionRouter()
- // Set DCE as the input.
- try? cvr.setInput(dce)
- }
-}
-```
-
-### Receive the Text Line Recognition Results
-
-Set up result callback in order to receive the text line recognition results after the camera is opened and the scanning starts.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-// Add DSCapturedResultReceiver to the class.
-@interface ViewController ()
-- (void)configureCVR {
- ...
- [_cvr addResultReceiver:self];
-}
-- (void)onRecognizedTextLinesReceived:(DSRecognizedTextLinesResult *)result {
- if (result.items != nil) {
- // Parse results.
- int index = 0;
- NSMutableString *resultText = [NSMutableString string];
- for (DSTextLineResultItem *dlrLineResults in result.items) {
- index++;
- [resultText appendString:[NSString stringWithFormat:@"Result %d:%@\n", index, dlrLineResults.text != nil ? dlrLineResults.text : @""]];
- }
- dispatch_async(dispatch_get_main_queue(), ^{
- self.resultView.text = [NSString stringWithFormat:@"Results(%d)\n%@", (int)result.items.count, resultText];
- });
- }
-}
-```
-2.
-```swift
-// Add CapturedResultReceiver to the class.
-class ViewController: UIViewController, CapturedResultReceiver {
- ...
- private func configureCVR() -> Void {
- ...
- // Add a CaptureResultReceiver to receive results.
- cvr.addResultReceiver(self)
- }
- func onRecognizedTextLinesReceived(_ result: RecognizedTextLinesResult) {
- guard let items = result.items else { return }
- // Parse Results.
- var resultText = ""
- var index = 0
- for dlrLineResults in items {
- index+=1
- resultText += String(format: "Result %d:%@\n", index, dlrLineResults.text ?? "")
- }
- DispatchQueue.main.async {
- self.resultView.text = String(format: "Results(%d)\n", items.count) + resultText
- }
- }
-}
-```
-
-### Display the Recognized Textline Results
-
-Now that we created the result receiver, let's now create a text view to display the text line recognition results that's referenced in the result callback.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-@property (nonatomic, strong) UITextView *resultView;
-...
-- (UITextView *)resultView {
- if (!_resultView) {
- CGFloat left = 0.0;
- CGFloat width = self.view.bounds.size.width;
- CGFloat height = self.view.bounds.size.height / 2.5;
- CGFloat top = self.view.bounds.size.height - height;
- _resultView = [[UITextView alloc] initWithFrame:CGRectMake(left, top, width, height)];
- _resultView.layer.backgroundColor = [UIColor clearColor].CGColor;
- _resultView.layoutManager.allowsNonContiguousLayout = NO;
- _resultView.font = [UIFont systemFontOfSize:14.0 weight:UIFontWeightMedium];
- _resultView.textColor = [UIColor whiteColor];
- _resultView.textAlignment = NSTextAlignmentCenter;
- }
- return _resultView;
-}
-- (void)setupUI {
- [self.view addSubview:self.resultView];
-}
-```
-2.
-```swift
-class ViewController: UIViewController, CapturedResultReceiver {
- ...
- lazy var resultView: UITextView = {
- let left = 0.0
- let width = self.view.bounds.size.width
- let height = self.view.bounds.size.height / 2.5
- let top = self.view.bounds.size.height - height
- resultView = UITextView(frame: CGRect(x: left, y: top , width: width, height: height))
- resultView.layer.backgroundColor = UIColor.clear.cgColor
- resultView.layoutManager.allowsNonContiguousLayout = false
- resultView.isEditable = false
- resultView.isSelectable = false
- resultView.font = UIFont.systemFont(ofSize: 14.0, weight: .medium)
- resultView.textColor = UIColor.white
- resultView.textAlignment = .center
- return resultView
- }()
- private func setupUI() -> Void {
- self.view.addSubview(resultView)
- }
-}
-```
-
-### Configure viewWillAppear, 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 scanning.
-
-
->- Objective-C
->- Swift
->
->1.
-```objc
-- (void)viewWillAppear:(BOOL)animated {
- [super viewWillAppear:animated];
- weakSelfs(self)
- // Start capturing when the view appear.
- [self.cvr startCapturing:DSPresetTemplateRecognizeTextLines completionHandler:^(BOOL isSuccess, NSError * _Nullable error) {
- if (error != nil) {
- [weakSelf displayError:error.localizedDescription completion:nil];
- }
- }];
-}
-- (void)viewDidLoad {
- [super viewDidLoad];
- self.view.backgroundColor = [UIColor whiteColor];
- // Initialize CaptureVisionRouter, CameraEnhancer and the text view you created.
- [self configureCVR];
- [self configureDCE];
- [self setupUI];
-}
-- (void)displayError:(NSString *)msg completion:(nullable ConfirmCompletion)completion {
- dispatch_async(dispatch_get_main_queue(), ^{
- UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"" message:msg preferredStyle: UIAlertControllerStyleAlert];
- UIAlertAction *action = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
- if (completion) completion();
- }];
- [alert addAction:action];
- [self presentViewController:alert animated:YES completion:nil];
- });
-}
-```
-2.
-```swift
-class ViewController: UIViewController, CapturedResultReceiver {
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- cvr.startCapturing(PresetTemplate.recognizeTextLines.rawValue) {
- [unowned self] isSuccess, error in
- if let error = error {
- self.displayError(msg: error.localizedDescription)
- }
- }
- }
- override func viewDidLoad() {
- super.viewDidLoad()
- self.view.backgroundColor = .white
- // Initialize CaptureVisionRouter, CameraEnhancer and the text view you created.
- configureCVR()
- configureDCE()
- setupUI()
- }
- private func displayError(_ title: String = "", msg: String, _ acTitle: String = "OK", completion: ConfirmCompletion? = nil) {
- DispatchQueue.main.async {
- let alert = UIAlertController(title: title, message: msg, preferredStyle: .alert)
- alert.addAction(UIAlertAction(title: acTitle, style: .default, handler: { _ in completion?() }))
- self.present(alert, animated: true, completion: nil)
- }
- }
-}
-```
-
-### 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:
->
->- You can get the source code of the HelloWord app from the following link
->- View the entire Objective-C source code from [ReadTextLinesWithCameraEnhancerObjc sample](https://github.com/Dynamsoft/label-recognizer-mobile-samples/blob/master/ios/HelloWorld/ReadTextLinesWithCameraEnhancerObjc/)
->- View the entire Swift source code from [ReadTextLinesWithCameraEnhancer sample](https://github.com/Dynamsoft/label-recognizer-mobile-samples/blob/master/ios/HelloWorld/ReadTextLinesWithCameraEnhancer/)
diff --git a/search.md b/search.md
index dfbf967..d08597c 100644
--- a/search.md
+++ b/search.md
@@ -4,44 +4,4 @@ title: Dynamsoft Label Recognition SDK Documentation Search
keywords: Dynamsoft Label Recognition SDK Documentation Search
cx: 53a201f66061dfc84
hasFacets: true
----
-
-
\ No newline at end of file
+---
\ No newline at end of file