diff --git a/_includes/sidelist-programming/sidelist-parameters-organization.html b/_includes/sidelist-programming/sidelist-parameters-organization.html
index 50dfde6..ba4bbd6 100644
--- a/_includes/sidelist-programming/sidelist-parameters-organization.html
+++ b/_includes/sidelist-programming/sidelist-parameters-organization.html
@@ -427,6 +427,7 @@
AustralianPostEncodingTable
BarcodeAngleRangeArray
BarcodeBytesLengthRangeArray
+ BarcodeFormatIds
BarcodeHeightRangeArray
BarcodeTextLengthRangeArray
BarcodeTextRegExPattern
@@ -491,10 +492,11 @@
diff --git a/programming/cplusplus/api-reference/capture-vision-router/capture-vision-router.md b/programming/cplusplus/api-reference/capture-vision-router/capture-vision-router.md
index 0d83a13..d259bde 100644
--- a/programming/cplusplus/api-reference/capture-vision-router/capture-vision-router.md
+++ b/programming/cplusplus/api-reference/capture-vision-router/capture-vision-router.md
@@ -54,6 +54,7 @@ class CCaptureVisionRouter
| [`StopCapturing`](multiple-file-processing.md#stopcapturing) | Stops the consecutive process. |
| [`PauseCapturing`](multiple-file-processing.md#pausecapturing) | Pauses the capture process. The current thread will be blocked until the capture process is resumed. |
| [`ResumeCapturing`](multiple-file-processing.md#resumecapturing) | Resumes the capture process. The current thread will be unblocked after the capture process is resumed. |
+| [`SwitchCapturingTemplate`](multiple-file-processing.md#switchcapturingtemplate) | Switches the capturing template during the image processing workflow. |
## Settings
@@ -68,7 +69,6 @@ class CCaptureVisionRouter
| [`ResetSettings`](settings.md#resetsettings) | Resets all templates to factory settings. |
| [`GetParameterTemplateCount`](settings.md#getparametertemplatecount) | Retrieves the total number of available parameter templates. |
| [`GetParameterTemplateName`](settings.md#getparametertemplatename) | Retrieves the name of a specific parameter template by its index. |
-| [`SwitchCapturingTemplate`](settings.md#switchcapturingtemplate) | Switches the capturing template during the image processing workflow. |
## Intermediate Result
diff --git a/programming/cplusplus/api-reference/capture-vision-router/multiple-file-processing.md b/programming/cplusplus/api-reference/capture-vision-router/multiple-file-processing.md
index 564ee36..1181805 100644
--- a/programming/cplusplus/api-reference/capture-vision-router/multiple-file-processing.md
+++ b/programming/cplusplus/api-reference/capture-vision-router/multiple-file-processing.md
@@ -26,6 +26,7 @@ breadcrumbText: CVR C++ Multiple-File Processing
| [`StopCapturing`](#stopcapturing) | Stops the consecutive processing. |
| [`PauseCapturing`](#pausecapturing) | Pauses the capture process. The current thread will be blocked until the capture process is resumed. |
| [`ResumeCapturing`](#resumecapturing) | Resumes the capture process. The current thread will be unblocked after the capture process is resumed. |
+| [`SwitchCapturingTemplate`](#switchcapturingtemplate) | Switches the capturing template during the image processing workflow. |
## SetInput
@@ -363,3 +364,27 @@ else
delete filter, filter = NULL;;
}
```
+
+## SwitchCapturingTemplate
+
+Switches the capturing template during the image processing workflow.
+
+```cpp
+int SwitchCapturingTemplate(const char* templateName, char errorMsgBuffer[] = NULL, const int errorMsgBufferLen = 0);
+```
+
+**Parameters**
+
+`[in] templateName` The name of the new capturing template to apply.
+
+`[in] errorMsgBuffer` A buffer for error messages.
+
+`[in] errorMsgBufferLen` The length of the error message buffer.
+
+**Return value**
+
+Returns an error code. Zero indicates success.
+
+**Remarks**
+
+- Introduced in Dynamsoft Barcode Reader SDK version 11.2.1000 and Dynamsoft Capture Vision version 3.2.1000.
diff --git a/programming/cplusplus/api-reference/capture-vision-router/settings.md b/programming/cplusplus/api-reference/capture-vision-router/settings.md
index b76f86e..08e34a8 100644
--- a/programming/cplusplus/api-reference/capture-vision-router/settings.md
+++ b/programming/cplusplus/api-reference/capture-vision-router/settings.md
@@ -20,7 +20,6 @@ needGenerateH3Content: false
| [`ResetSettings`](#resetsettings) | Resets all templates to factory settings. |
| [`GetParameterTemplateCount`](#getparametertemplatecount) | Retrieves the total number of available parameter templates. |
| [`GetParameterTemplateName`](#getparametertemplatename) | Retrieves the name of a specific parameter template by its index. |
-| [`SwitchCapturingTemplate`](#switchcapturingtemplate) | Switches the capturing template during the image processing workflow. |
## InitSettings
@@ -269,26 +268,3 @@ int GetParameterTemplateName(const int index, char nameBuffer[], int nameBufferL
Returns an error code. Zero indicates success.
-## SwitchCapturingTemplate
-
-Switches the capturing template during the image processing workflow.
-
-```cpp
-int SwitchCapturingTemplate(const char* templateName, char errorMsgBuffer[] = NULL, const int errorMsgBufferLen = 0);
-```
-
-**Parameters**
-
-`[in] templateName` The name of the new capturing template to apply.
-
-`[in] errorMsgBuffer` A buffer for error messages.
-
-`[in] errorMsgBufferLen` The length of the error message buffer.
-
-**Return value**
-
-Returns an error code. Zero indicates success.
-
-**Remarks**
-
-- Introduced in Dynamsoft Barcode Reader SDK version 11.2.1000 and Dynamsoft Capture Vision version 3.2.1000.
diff --git a/programming/cplusplus/index.md b/programming/cplusplus/index.md
index 5acd6fa..5fcbfe8 100644
--- a/programming/cplusplus/index.md
+++ b/programming/cplusplus/index.md
@@ -64,12 +64,12 @@ For an overview of the APIs, see the [API Reference]({{ site.dcvb_cpp_api }}).
For a peek of DCV C++ Edition history, check the [Release Notes]({{ site.dcvb_cpp }}release-notes/index.html).
-### License Subscription
+## License Subscription
To develop and run your application with Dynamsoft Capture Vision SDK, you need an active license key:
* Request a 30-day free trial license
-### Contact Us
+## Contact Us
Feel free to contact us if you have any questions.
diff --git a/programming/cplusplus/release-notes/cpp-3.md b/programming/cplusplus/release-notes/cpp-3.md
index d91f405..d82c2d6 100644
--- a/programming/cplusplus/release-notes/cpp-3.md
+++ b/programming/cplusplus/release-notes/cpp-3.md
@@ -8,6 +8,19 @@ needGenerateH3Content: false
# Release Notes for C++ Edition - 3.x
+## 3.2.5000 (12/16/2025)
+
+This release includes security maintenance updates to ensure continued protection of the product.
+
+### Security Updates
+
+- Updated third-party libraries to incorporate the latest security fixes.
+
+### Bug Fixes
+
+- Fixed memory leak, crash, and hang issues in various scenarios.
+- Improved stability in multi-threading operations.
+
## 3.2.1000 (10/14/2025)
### 🎉Milestone Release
diff --git a/programming/cplusplus/release-notes/index.md b/programming/cplusplus/release-notes/index.md
index f71600d..1582aa3 100644
--- a/programming/cplusplus/release-notes/index.md
+++ b/programming/cplusplus/release-notes/index.md
@@ -9,6 +9,7 @@ noTitleIndex: true
# Release Notes - Dynamsoft Capture Vision CPP
+- [3.2.5000 (12/16/2025)]({{ site.dcvb_cpp_release_notes_v3 }}cpp-3.html#325000-12162025)
- [3.2.1000 (10/14/2025)]({{ site.dcvb_cpp_release_notes_v3 }}cpp-3.html#321000-10142025)
- [3.0.6000 (08/06/2025)]({{ site.dcvb_cpp_release_notes_v3 }}cpp-3.html#306000-08062025)
- [3.0.4000 (07/15/2025)]({{ site.dcvb_cpp_release_notes_v3 }}cpp-3.html#304000-07152025)
diff --git a/programming/cplusplus/user-guide/document-scanner.md b/programming/cplusplus/user-guide/document-scanner.md
index b197f30..465a8fc 100644
--- a/programming/cplusplus/user-guide/document-scanner.md
+++ b/programming/cplusplus/user-guide/document-scanner.md
@@ -33,7 +33,7 @@ To find out whether your environment is supported, please read the [System Requi
## Installation
-If you haven't downloaded the SDK yet, download the `C/C++ Package` now and unpack the package into a directory of your choice.
+If you haven't downloaded the SDK yet, download the `C/C++ Package` now and unpack the package into a directory of your choice.
> [!IMPORTANT]
> For this tutorial, we unpack it to a pseudo directory `[INSTALLATION FOLDER]`, change it to your unpacking path for the following content.
@@ -175,24 +175,24 @@ CCaptureVisionRouter* router = new CCaptureVisionRouter();
cout << "Error: " << result->GetErrorCode() << "," << result->GetErrorString() << endl;
}
CProcessedDocumentResult *processedDocumentResult = result->GetProcessedDocumentResult();
- if (processedDocumentResult == nullptr || processedDocumentResult->GetDeskewedImageResultItemsCount() == 0)
+ if (processedDocumentResult == nullptr || processedDocumentResult->GetEnhancedImageResultItemsCount() == 0)
{
cout << "No document found." << endl;
}
else
{
- int count = processedDocumentResult->GetDeskewedImageResultItemsCount();
- cout << "Deskewed " << count << " documents" << endl;
+ int count = processedDocumentResult->GetEnhancedImageResultItemsCount();
+ cout << "Normalized " << count << " documents" << endl;
for (int i = 0; i < count; i++)
{
- const CDeskewedImageResultItem *deskewedImage = processedDocumentResult->GetDeskewedImageResultItem(i);
- string outPath = "deskewedResult_";
+ const CEnhancedImageResultItem *enhancedImage = processedDocumentResult->GetEnhancedImageResultItem(i);
+ string outPath = "enhancedResult_";
outPath += to_string(i) + ".png";
CImageIO imageIO;
- // 5.Save deskewed image to file.
- errorCode = imageIO.SaveToFile(deskewedImage->GetImageData(), outPath.c_str());
+ // 5.Save normalized image to file.
+ errorCode = imageIO.SaveToFile(enhancedImage->GetImageData(), outPath.c_str());
if (errorCode == 0)
{
cout << "Document " << i << " file: " << outPath << endl;
diff --git a/programming/cplusplus/user-guide/mrz-scanner.md b/programming/cplusplus/user-guide/mrz-scanner.md
index db22135..f844d5d 100644
--- a/programming/cplusplus/user-guide/mrz-scanner.md
+++ b/programming/cplusplus/user-guide/mrz-scanner.md
@@ -39,7 +39,7 @@ To find out whether your environment is supported, please read the [System Requi
## Installation
-If you haven't downloaded the SDK yet, download the `C/C++ Package` now and unpack the package into a directory of your choice.
+If you haven't downloaded the SDK yet, download the `C/C++ Package` now and unpack the package into a directory of your choice.
> [!IMPORTANT]
> For this tutorial, we unpack it to a pseudo directory `[INSTALLATION FOLDER]`, change it to your unpacking path for the following content.
diff --git a/programming/dotnet/api-reference/capture-vision-router/capture-vision-router.md b/programming/dotnet/api-reference/capture-vision-router/capture-vision-router.md
index cf01349..95d8962 100644
--- a/programming/dotnet/api-reference/capture-vision-router/capture-vision-router.md
+++ b/programming/dotnet/api-reference/capture-vision-router/capture-vision-router.md
@@ -53,6 +53,7 @@ public class CaptureVisionRouter : IDisposable
| [`StopCapturing`](multiple-file-processing.md#stopcapturing) | Stops the consecutive process. |
| [`PauseCapturing`](multiple-file-processing.md#pausecapturing) | Pauses the capture process. The current thread will be blocked until the capture process is resumed. |
| [`ResumeCapturing`](multiple-file-processing.md#resumecapturing) | Resumes the capture process. The current thread will be unblocked after the capture process is resumed. |
+| [`SwitchCapturingTemplate`](multiple-file-processing.md#switchcapturingtemplate) | Switches the capturing template during the image processing workflow. |
## Setting Methods
@@ -67,7 +68,6 @@ public class CaptureVisionRouter : IDisposable
| [`ResetSettings`](settings.md#resetsettings) | Resets all templates to factory settings. |
| [`GetParameterTemplateCount`](settings.md#getparametertemplatecount) | Retrieves the total number of available parameter templates. |
| [`GetParameterTemplateName`](settings.md#getparametertemplatename) | Retrieves the name of a specific parameter template by its index. |
-| [`SwitchCapturingTemplate`](settings.md#switchcapturingtemplate) | Switches the capturing template during the image processing workflow. |
## Auxiliary Methods
diff --git a/programming/dotnet/api-reference/capture-vision-router/multiple-file-processing.md b/programming/dotnet/api-reference/capture-vision-router/multiple-file-processing.md
index 2bc0cab..781321b 100644
--- a/programming/dotnet/api-reference/capture-vision-router/multiple-file-processing.md
+++ b/programming/dotnet/api-reference/capture-vision-router/multiple-file-processing.md
@@ -25,6 +25,7 @@ needGenerateH3Content: false
| [`StopCapturing`](#stopcapturing) | Stops the consecutive processing. |
| [`PauseCapturing`](#pausecapturing) | Pauses the capture process. The current thread will be blocked until the capture process is resumed. |
| [`ResumeCapturing`](#resumecapturing) | Resumes the capture process. The current thread will be unblocked after the capture process is resumed. |
+| [`SwitchCapturingTemplate`](#switchcapturingtemplate) | Switches the capturing template during the image processing workflow. |
## SetInput
@@ -297,3 +298,22 @@ Resumes the capture process. The current thread will be unblocked after the capt
void ResumeCapturing()
```
+## SwitchCapturingTemplate
+
+Switches the capturing template during the image processing workflow.
+
+```csharp
+public int SwitchCapturingTemplate(string templateName)
+```
+
+**Parameters**
+
+`[in] templateName` The name of the new capturing template to apply.
+
+**Return value**
+
+Returns an error code. Zero indicates success.
+
+**Remarks**
+
+- Introduced in Dynamsoft Barcode Reader SDK version 11.2.1000 and Dynamsoft Capture Vision version 3.2.1000.
diff --git a/programming/dotnet/api-reference/capture-vision-router/settings.md b/programming/dotnet/api-reference/capture-vision-router/settings.md
index 372c545..710c0aa 100644
--- a/programming/dotnet/api-reference/capture-vision-router/settings.md
+++ b/programming/dotnet/api-reference/capture-vision-router/settings.md
@@ -20,7 +20,6 @@ needGenerateH3Content: false
| [`ResetSettings`](#resetsettings) | Resets all templates to factory settings. |
| [`GetParameterTemplateCount`](#getparametertemplatecount) | Retrieves the total number of available parameter templates. |
| [`GetParameterTemplateName`](#getparametertemplatename) | Retrieves the name of a specific parameter template by its index. |
-| [`SwitchCapturingTemplate`](#switchcapturingtemplate) | Switches the capturing template during the image processing workflow. |
## InitSettings
@@ -259,22 +258,3 @@ public int GetParameterTemplateName(int index, out string nameBuffer)
Returns an error code. Zero indicates success.
-## SwitchCapturingTemplate
-
-Switches the capturing template during the image processing workflow.
-
-```csharp
-public int SwitchCapturingTemplate(string templateName)
-```
-
-**Parameters**
-
-`[in] templateName` The name of the new capturing template to apply.
-
-**Return value**
-
-Returns an error code. Zero indicates success.
-
-**Remarks**
-
-- Introduced in Dynamsoft Barcode Reader SDK version 11.2.1000 and Dynamsoft Capture Vision version 3.2.1000.
diff --git a/programming/dotnet/release-notes/dotnet-3.md b/programming/dotnet/release-notes/dotnet-3.md
index 0146862..fd238cd 100644
--- a/programming/dotnet/release-notes/dotnet-3.md
+++ b/programming/dotnet/release-notes/dotnet-3.md
@@ -8,6 +8,19 @@ needGenerateH3Content: false
# Release Notes for .NET Edition - 3.x
+## 3.2.5000 (12/16/2025)
+
+This release includes security maintenance updates to ensure continued protection of the product.
+
+### Security Updates
+
+- Updated third-party libraries to incorporate the latest security fixes.
+
+### Bug Fixes
+
+- Fixed memory leak, crash, and hang issues in various scenarios.
+- Improved stability in multi-threading operations.
+
## 3.2.1000 (10/14/2025)
### 🎉Milestone Release
diff --git a/programming/dotnet/release-notes/index.md b/programming/dotnet/release-notes/index.md
index 182a426..d76184a 100644
--- a/programming/dotnet/release-notes/index.md
+++ b/programming/dotnet/release-notes/index.md
@@ -9,6 +9,7 @@ noTitleIndex: true
# Module Release Notes - Dynamsoft Capture Vision .NET Edition
+- [3.2.5000 (12/16/2025)]({{ site.dcvb_dotnet_release_notes_v3 }}dotnet-3.html#325000-12162025)
- [3.2.1000 (10/14/2025)]({{ site.dcvb_dotnet_release_notes_v3 }}dotnet-3.html#321000-10142025)
- [3.0.6000 (08/06/2025)]({{ site.dcvb_dotnet_release_notes_v3 }}dotnet-3.html#306000-08062025)
- [3.0.4000 (07/15/2025)]({{ site.dcvb_dotnet_release_notes_v3 }}dotnet-3.html#304000-07152025)
diff --git a/programming/dotnet/user-guide/document-scanner.md b/programming/dotnet/user-guide/document-scanner.md
index fb14ec1..53f2d87 100644
--- a/programming/dotnet/user-guide/document-scanner.md
+++ b/programming/dotnet/user-guide/document-scanner.md
@@ -47,10 +47,11 @@ Search for and install the `Dynamsoft.DotNet.CaptureVision.Bundle` nuget package
Open the `Program.cs` file and add the following namespaces.
```csharp
-using Dynamsoft.Core;
using Dynamsoft.CVR;
using Dynamsoft.License;
-using Dynamsoft.DCP;
+using Dynamsoft.Core;
+using Dynamsoft.Utility;
+using Dynamsoft.DDN;
```
### Initialize the License Key
@@ -84,10 +85,8 @@ using (CaptureVisionRouter cvRouter = new CaptureVisionRouter())
using (CaptureVisionRouter cvRouter = new CaptureVisionRouter())
{
string imageFile = "[PATH-TO-THE-IMAGE-FILE]";
- using (CapturedResult? result = cvRouter.Capture(imageFile, PresetTemplate.PT_DETECT_AND_NORMALIZE_DOCUMENT))
- {
- //code for saving the normalized result as an image file
- }
+ CapturedResult[] results = cvRouter.CaptureMultiPages(imageFile, PresetTemplate.PT_DETECT_AND_NORMALIZE_DOCUMENT)
+ //code for saving the normalized result as an image file
}
```
@@ -96,32 +95,46 @@ using (CaptureVisionRouter cvRouter = new CaptureVisionRouter())
2. Save the normalized result as an image file
```csharp
-if (result == null)
+if (results == null || results.Length == 0)
{
Console.WriteLine("No document detected.");
}
else
{
- if (result.GetErrorCode() != 0)
- {
- Console.WriteLine("Error: " + result.GetErrorCode() + ", " + result.GetErrorString());
- }
- NormalizedImagesResult? normalizedImagesResult = result.GetNormalizedImagesResult();
- if (normalizedImagesResult != null)
+ for (int index = 0; index < results.Length; index++)
{
- NormalizedImageResultItem[] items = normalizedImagesResult.GetItems();
- Console.WriteLine("Normalized " + items.Length + " documents");
- foreach (NormalizedImageResultItem normalizedItem in items)
+ CapturedResult result = results[index];
+ if (result.GetErrorCode() == (int)EnumErrorCode.EC_UNSUPPORTED_JSON_KEY_WARNING)
+ {
+ Console.WriteLine("Warning: " + result.GetErrorCode() + ", " + result.GetErrorString());
+ }
+ else if (result.GetErrorCode() != (int)EnumErrorCode.EC_OK)
+ {
+ Console.WriteLine("Error: " + result.GetErrorCode() + ", " + result.GetErrorString());
+ }
+ FileImageTag tag = result.GetOriginalImageTag() as FileImageTag;
+ int pageNumber = tag != null ? tag.GetPageNumber() : index;
+ ProcessedDocumentResult processedDocumentResult = result.GetProcessedDocumentResult();
+ if (processedDocumentResult == null || processedDocumentResult.GetEnhancedImageResultItems().Length == 0)
+ {
+ Console.WriteLine("Page-" + (pageNumber + 1) + " No document found.");
+ }
+ else
{
- string outPath = "normalizedResult_" + Array.IndexOf(items, normalizedItem) + ".png";
- ImageManager imageManager = new ImageManager();
- var image = normalizedItem.GetImageData();
- if (image != null)
+ EnhancedImageResultItem[] items = processedDocumentResult.GetEnhancedImageResultItems();
+ for (int i = 0; i < items.Length; i++)
{
- errorCode = imageManager.SaveToFile(image, outPath);
- if (errorCode == 0)
+ EnhancedImageResultItem enhancedResult = items[i];
+ string outPath = "Page_" + (pageNumber + 1) + "enhancedResult_" + i + ".png";
+ ImageIO imageIo = new ImageIO();
+ var image = enhancedResult.GetImageData();
+ if (image != null)
{
- Console.WriteLine("Document " + Array.IndexOf(items, normalizedItem) + " file: " + outPath);
+ errorCode = imageIo.SaveToFile(image, outPath);
+ if (errorCode == 0)
+ {
+ Console.WriteLine("Document " + i + " file: " + outPath);
+ }
}
}
}
diff --git a/programming/java/api-reference/capture-vision-router/capture-vision-router.md b/programming/java/api-reference/capture-vision-router/capture-vision-router.md
index 4f71e4c..426fce1 100644
--- a/programming/java/api-reference/capture-vision-router/capture-vision-router.md
+++ b/programming/java/api-reference/capture-vision-router/capture-vision-router.md
@@ -48,6 +48,7 @@ class CaptureVisionRouter
| [`stopCapturing`](multiple-file-processing.md#stopcapturing) | Stops the consecutive process. |
| [`pauseCapturing`](multiple-file-processing.md#pausecapturing) | Pauses the capture process. The current thread will be blocked until the capture process is resumed. |
| [`resumeCapturing`](multiple-file-processing.md#resumecapturing) | Resumes the capture process. The current thread will be unblocked after the capture process is resumed. |
+| [`switchCapturingTemplate`](multiple-file-processing.md#switchcapturingtemplate) | Switches the capturing template during the image processing workflow. |
## Setting Methods
@@ -62,7 +63,6 @@ class CaptureVisionRouter
| [`resetSettings`](settings.md#resetsettings) | Resets all templates to factory settings. |
| [`getParameterTemplateCount`](settings.md#getparametertemplatecount) | Retrieves the total number of available parameter templates. |
| [`getParameterTemplateName`](settings.md#getparametertemplatename) | Retrieves the name of a specific parameter template by its index. |
-| [`switchCapturingTemplate`](settings.md#switchcapturingtemplate) | Switches the capturing template during the image processing workflow. |
## Buffered Items Methods
diff --git a/programming/java/api-reference/capture-vision-router/multiple-file-processing.md b/programming/java/api-reference/capture-vision-router/multiple-file-processing.md
index 7d1c7db..df3a614 100644
--- a/programming/java/api-reference/capture-vision-router/multiple-file-processing.md
+++ b/programming/java/api-reference/capture-vision-router/multiple-file-processing.md
@@ -25,6 +25,7 @@ needGenerateH3Content: false
| [`stopCapturing`](#stopcapturing) | Stops the consecutive processing. |
| [`pauseCapturing`](#pausecapturing) | Pauses the capture process. The current thread will be blocked until the capture process is resumed. |
| [`resumeCapturing`](#resumecapturing) | Resumes the capture process. The current thread will be unblocked after the capture process is resumed. |
+| [`switchCapturingTemplate`](#switchcapturingtemplate) | Switches the capturing template during the image processing workflow. |
## setInput
@@ -290,3 +291,22 @@ Resumes the capture process. The current thread will be unblocked after the capt
public void resumeCapturing()
```
+## switchCapturingTemplate
+
+Switches the capturing template during the image processing workflow.
+
+```java
+public void switchCapturingTemplate(String templateName) throws CaptureVisionException
+```
+
+**Parameters**
+
+`templateName` The name of the new capturing template to apply.
+
+**Exceptions**
+
+[`CaptureVisionException`]({{ site.dcvb_java_api }}capture-vision-router/capture-vision-exception.html)
+
+**Remarks**
+
+- Introduced in Dynamsoft Barcode Reader SDK version 11.2.1000 and Dynamsoft Capture Vision version 3.2.1000.
diff --git a/programming/java/api-reference/capture-vision-router/settings.md b/programming/java/api-reference/capture-vision-router/settings.md
index 6b8400f..4176029 100644
--- a/programming/java/api-reference/capture-vision-router/settings.md
+++ b/programming/java/api-reference/capture-vision-router/settings.md
@@ -20,7 +20,6 @@ needGenerateH3Content: false
| [`resetSettings`](#resetsettings) | Resets all templates to factory settings. |
| [`getParameterTemplateCount`](#getparametertemplatecount) | Gets the total number of available parameter templates. |
| [`getParameterTemplateName`](#getparametertemplatename) | Gets the name of a specific parameter template by its index. |
-| [`switchCapturingTemplate`](#switchcapturingtemplate) | Switches the capturing template during the image processing workflow. |
## initSettings
@@ -230,22 +229,3 @@ public String getParameterTemplateName(int index)
Returns a string containing the name of the parameter template.
-## switchCapturingTemplate
-
-Switches the capturing template during the image processing workflow.
-
-```java
-public void switchCapturingTemplate(String templateName) throws CaptureVisionException
-```
-
-**Parameters**
-
-`templateName` The name of the new capturing template to apply.
-
-**Exceptions**
-
-[`CaptureVisionException`]({{ site.dcvb_java_api }}capture-vision-router/capture-vision-exception.html)
-
-**Remarks**
-
-- Introduced in Dynamsoft Barcode Reader SDK version 11.2.1000 and Dynamsoft Capture Vision version 3.2.1000.
diff --git a/programming/java/index.md b/programming/java/index.md
index 203578b..c439639 100644
--- a/programming/java/index.md
+++ b/programming/java/index.md
@@ -20,7 +20,7 @@ Dynamsoft Capture Vision Bundle is an aggregating SDK of a series of specific fu
- Dynamsoft Code Parser (DCP): extracts meaningful fields from text/bytes into human-readable information, typically used for post-processing results generated by DBR/DLR.
-### System Requirements
+## System Requirements
- Operating systems:
- Windows Windows: Windows 8 and higher, or Windows Server 2012 and higher
diff --git a/programming/java/release-notes/index.md b/programming/java/release-notes/index.md
index fe266a5..99560e2 100644
--- a/programming/java/release-notes/index.md
+++ b/programming/java/release-notes/index.md
@@ -9,6 +9,7 @@ noTitleIndex: true
# Module Release Notes - Dynamsoft Capture Vision Java Edition
+- [3.2.5000 (12/16/2025)]({{ site.dcvb_java_release_notes_v3 }}java-3.html#325000-12162025)
- [3.2.1100 (10/28/2025)]({{ site.dcvb_java_release_notes_v3 }}java-3.html#321100-10282025)
- [3.2.1000 (10/14/2025)]({{ site.dcvb_java_release_notes_v3 }}java-3.html#321000-10142025)
- [3.0.6100 (08/19/2025)]({{ site.dcvb_java_release_notes_v3 }}java-3.html#306100-08192025)
diff --git a/programming/java/release-notes/java-3.md b/programming/java/release-notes/java-3.md
index 6191915..2a0e1cf 100644
--- a/programming/java/release-notes/java-3.md
+++ b/programming/java/release-notes/java-3.md
@@ -8,6 +8,19 @@ needGenerateH3Content: false
# Release Notes for Java Edition - 3.x
+## 3.2.5000 (12/16/2025)
+
+This release includes security maintenance updates to ensure continued protection of the product.
+
+### Security Updates
+
+- Updated third-party libraries to incorporate the latest security fixes.
+
+### Bug Fixes
+
+- Fixed memory leak, crash, and hang issues in various scenarios.
+- Improved stability in multi-threading operations.
+
## 3.2.1100 (10/28/2025)
### Fixed
diff --git a/programming/python/api-reference/capture-vision-router/capture-vision-router.md b/programming/python/api-reference/capture-vision-router/capture-vision-router.md
index e159420..968a31d 100644
--- a/programming/python/api-reference/capture-vision-router/capture-vision-router.md
+++ b/programming/python/api-reference/capture-vision-router/capture-vision-router.md
@@ -48,6 +48,7 @@ class CaptureVisionRouter
| [`stop_capturing`](multiple-file-processing.md#stop_capturing) | Stops the consecutive process. |
| [`pause_capturing`](multiple-file-processing.md#pause_capturing) | Pauses the capture process. The current thread will be blocked until the capture process is resumed. |
| [`resume_capturing`](multiple-file-processing.md#resume_capturing) | Resumes the capture process. The current thread will be unblocked after the capture process is resumed. |
+| [`switch_capturing_template`](multiple-file-processing.md#switch_capturing_template) | Switches the capturing template during the image processing workflow. |
## Setting Methods
@@ -62,7 +63,6 @@ class CaptureVisionRouter
| [`reset_settings`](settings.md#reset_settings) | Resets all templates to factory settings. |
| [`get_parameter_template_count`](settings.md#get_parameter_template_count) | Retrieves the total number of available parameter templates. |
| [`get_parameter_template_name`](settings.md#get_parameter_template_name) | Retrieves the name of a specific parameter template by its index. |
-| [`switch_capturing_template`](settings.md#switch_capturing_template) | Switches the capturing template during the image processing workflow. |
## Buffered Items Methods
diff --git a/programming/python/api-reference/capture-vision-router/multiple-file-processing.md b/programming/python/api-reference/capture-vision-router/multiple-file-processing.md
index d08f895..15417bb 100644
--- a/programming/python/api-reference/capture-vision-router/multiple-file-processing.md
+++ b/programming/python/api-reference/capture-vision-router/multiple-file-processing.md
@@ -25,6 +25,7 @@ needGenerateH3Content: false
| [`stop_capturing`](#stop_capturing) | Stops the consecutive processing. |
| [`pause_capturing`](#pause_capturing) | Pauses the capture process. The current thread will be blocked until the capture process is resumed. |
| [`resume_capturing`](#resume_capturing) | Resumes the capture process. The current thread will be unblocked after the capture process is resumed. |
+| [`switch_capturing_template`](#switch_capturing_template) | Switches the capturing template during the image processing workflow. |
## set_input
@@ -327,3 +328,28 @@ Resumes the capture process. The current thread will be unblocked after the capt
def resume_capturing(self) -> None:
```
+## switch_capturing_template
+
+Switches the capturing template during the image processing workflow.
+
+```python
+def switch_capturing_template(self, template_name: str) -> Tuple[int, str]:
+```
+
+**Parameters**
+
+`template_name` The name of the new capturing template to apply.
+
+**Return Value**
+
+Returns a tuple containing following elements:
+- `error_code` <*int*>: The error code indicating the status of the operation.
+- `error_message` <*str*>: A descriptive message explaining the error.
+
+**Remarks**
+
+- Introduced in Dynamsoft Barcode Reader SDK version 11.2.1000 and Dynamsoft Capture Vision version 3.2.1000.
+
+**See Also**
+
+[EnumErrorCode]({{ site.dcvb_python_api }}core/enum-error-code.html)
diff --git a/programming/python/api-reference/capture-vision-router/settings.md b/programming/python/api-reference/capture-vision-router/settings.md
index a840530..e595a87 100644
--- a/programming/python/api-reference/capture-vision-router/settings.md
+++ b/programming/python/api-reference/capture-vision-router/settings.md
@@ -20,7 +20,6 @@ needGenerateH3Content: false
| [`reset_settings`](#reset_settings) | Resets all templates to factory settings. |
| [`get_parameter_template_count`](#get_parameter_template_count) | Gets the total number of available parameter templates. |
| [`get_parameter_template_name`](#get_parameter_template_name) | Gets the name of a specific parameter template by its index. |
-| [`switch_capturing_template`](#switch_capturing_template) | Switches the capturing template during the image processing workflow. |
## init_settings
@@ -246,28 +245,3 @@ Returns a tuple containing following elements:
- `error_code` <*int*>: The error code indicating the status of the operation.
- `template_name` <*str*>: The name of the parameter template.
-## switch_capturing_template
-
-Switches the capturing template during the image processing workflow.
-
-```python
-def switch_capturing_template(self, template_name: str) -> Tuple[int, str]:
-```
-
-**Parameters**
-
-`template_name` The name of the new capturing template to apply.
-
-**Return Value**
-
-Returns a tuple containing following elements:
-- `error_code` <*int*>: The error code indicating the status of the operation.
-- `error_message` <*str*>: A descriptive message explaining the error.
-
-**Remarks**
-
-- Introduced in Dynamsoft Barcode Reader SDK version 11.2.1000 and Dynamsoft Capture Vision version 3.2.1000.
-
-**See Also**
-
-[EnumErrorCode]({{ site.dcvb_python_api }}core/enum-error-code.html)
diff --git a/programming/python/index.md b/programming/python/index.md
index 52ffd82..4eee935 100644
--- a/programming/python/index.md
+++ b/programming/python/index.md
@@ -20,7 +20,7 @@ Dynamsoft Capture Vision Bundle is an aggregating SDK of a series of specific fu
- Dynamsoft Code Parser (DCP): extracts meaningful fields from text/bytes into human-readable information, typically used for post-processing results generated by DBR/DLR.
-### System Requirements
+## System Requirements
- Operating Systems:
- Windows x64
diff --git a/programming/python/release-notes/index.md b/programming/python/release-notes/index.md
index d1eba59..d54f0bd 100644
--- a/programming/python/release-notes/index.md
+++ b/programming/python/release-notes/index.md
@@ -9,6 +9,7 @@ noTitleIndex: true
# Module Release Notes - Dynamsoft Capture Vision Python Edition
+- [3.2.5000 (12/16/2025)]({{ site.dcvb_python_release_notes_v3 }}python-3.html#325000-12162025)
- [3.2.1000 (10/14/2025)]({{ site.dcvb_python_release_notes_v3 }}python-3.html#321000-10142025)
- [3.0.6000 (08/06/2025)]({{ site.dcvb_python_release_notes_v3 }}python-3.html#306000-08062025)
- [3.0.4100 (07/16/2025)]({{ site.dcvb_python_release_notes_v3 }}python-3.html#304100-07162025)
diff --git a/programming/python/release-notes/python-3.md b/programming/python/release-notes/python-3.md
index 9309d68..aacd647 100644
--- a/programming/python/release-notes/python-3.md
+++ b/programming/python/release-notes/python-3.md
@@ -8,6 +8,19 @@ needGenerateH3Content: false
# Release Notes for Python Edition - 3.x
+## 3.2.5000 (12/16/2025)
+
+This release includes security maintenance updates to ensure continued protection of the product.
+
+### Security Updates
+
+- Updated third-party libraries to incorporate the latest security fixes.
+
+### Bug Fixes
+
+- Fixed memory leak, crash, and hang issues in various scenarios.
+- Improved stability in multi-threading operations.
+
## 3.2.1000 (10/14/2025)
### 🎉Milestone Release
diff --git a/programming/python/user-guide/document-scanner.md b/programming/python/user-guide/document-scanner.md
index b32351d..631ed0b 100644
--- a/programming/python/user-guide/document-scanner.md
+++ b/programming/python/user-guide/document-scanner.md
@@ -92,7 +92,7 @@ if normalized_images_result is None or len(normalized_images_result.get_items())
else:
items = normalized_images_result.get_items()
print("Normalized", len(items), "documents.")
- for index,item in enumerate(normalized_images_result.get_items()):
+ for index,item in enumerate(normalized_images_result.get_items()):
out_path = "normalizedResult_" + str(index) + ".png"
image_manager = ImageManager()
image = item.get_image_data()