From fc6f20ad93300585c3d45bc11e63a45c8c30cfef Mon Sep 17 00:00:00 2001 From: tony-xlh Date: Thu, 6 Nov 2025 14:41:58 +0800 Subject: [PATCH 01/70] new dwt 19.3 changes --- _articles/extended-usage/index.md | 1 + _articles/extended-usage/ocr.md | 425 +++++++++++++++++++++++++++ _articles/index.md | 1 + _articles/info/api/Addon_OCR.md | 308 +++++++++++++++++++ _articles/info/api/Dynamsoft_Enum.md | 36 +++ _articles/info/api/appendix.md | 5 + _articles/info/api/index.md | 7 + _articles/info/api/interfaces.md | 52 ++++ _data/full_tree.yml | 2 + 9 files changed, 837 insertions(+) create mode 100644 _articles/extended-usage/ocr.md create mode 100644 _articles/info/api/Addon_OCR.md diff --git a/_articles/extended-usage/index.md b/_articles/extended-usage/index.md index 6f0d70d7..53e1279f 100644 --- a/_articles/extended-usage/index.md +++ b/_articles/extended-usage/index.md @@ -21,6 +21,7 @@ This set of guides builds on the fundamental features covered in the standard us - [UI Customization](/_articles/extended-usage/ui-customization.md) - [Using the DWT RESTful API](/_articles/extended-usage/restful-api.md) - [Barcode Recognition](/_articles/extended-usage/barcode-processing.md) +- [OCR](./ocr.md) - [PDF Handling](/_articles/extended-usage/pdf-processing.md) - [Buffer Caching](/_articles/extended-usage/buffer-caching.md) - [Remote Scan](https://www.dynamsoft.com/remote-scan/docs/introduction/) \ No newline at end of file diff --git a/_articles/extended-usage/ocr.md b/_articles/extended-usage/ocr.md new file mode 100644 index 00000000..774e8e25 --- /dev/null +++ b/_articles/extended-usage/ocr.md @@ -0,0 +1,425 @@ +--- +layout: default-layout +needAutoGenerateSidebar: true +title: Dynamic Web TWAIN SDK Features - OCR +keywords: Dynamic Web TWAIN, Documentation, OCR +breadcrumbText: OCR +description: Dynamic Web TWAIN SDK Documentation OCR Page +--- + +# OCR + +Dynamic Web TWAIN provides an OCR add-on to extract text in your scanned images. It uses latest deep learning techniques and has a good accuracy. Read on to learn about how to use it. + +## Requirements + +* Windows 10+ +* A license with the OCR module + +## How to Use + +### Step One - Install the OCR Package + +Download `DynamicWebTWAINOCRPack.zip`, unzip it and run `Install.cmd` as admin to install the OCR package. It will copy the `ocr` folder to the service's [installation folder](/_articles/extended-usage/dynamsoft-service-configuration.md#installation-folder). + +### Step Two - Write a Basic Document Scanning Page + +Create a HTML with the following content. It can scan documents from scanners as well as loading local images. + +```html + + + + Dynamic Web TWAIN - OCR Demo + + + + + + +
+
Input:
+ + +
+ +
+
+
+ + + + +``` + +### Step Three - Include the Add-on + +Reference the add-on with the following code. It is in the [resources files](/_articles/faq/what-are-the-resources-files.md). + +> If you are using the [dwt package](https://www.npmjs.com/package/dwt), the OCR is already included in the main JavaScript file ( `dynamsoft.webtwain.min.js` or `dynamsoft.webtwain.min.mjs` ) which means you can skip this step. + +``` html + +``` + +Then, you can run the following to check if it is installed correctly: + +```js +async function CheckIsOCRInstalled(){ + try { + let info = await DWTObject.Addon.OCRKit.GetInstalledOCRInfo(); + console.log(info); + if (info.version) { + return true; + } + } catch (error) { + alert(error.message); + return false; + } + alert("OCR Add-on is not installed. Please install it to use OCR features."); + return false; +} +``` + +APIs used: + +[`GetInstalledOCRInfo()`](/_articles/info/api/Addon_OCR.md#getinstalledocrinfo) + +### Step Four - Detect Page Orientation + +This is an optional step. If the scanned document is rotated, we can detect its orientation and rotate it. + +```js +async function CorrectOrientationForOne(index){ + let result = await DWTObject.Addon.OCRKit.DetectPageOrientation(index); + if (result.angle != 0) { + DWTObject.Rotate(index,result.angle,true); + } +} +``` + +APIs used: + +- [`DetectPageOrientation()`](/_articles/info/api/Addon_OCR.md#detectpageorientation) +- [`Rotate()`](/_articles/info/api/WebTwain_Edit.md#rotate) + +### Step Five - Recognize Text + +Recognize the text in one image and print it in a `pre` element. + +```html +

+
+```
+
+APIs used:
+
+[`Recognize()`](/_articles/info/api/Addon_OCR.md#recognize)
+
+### Step Six - Save as PDF
+
+After recognition, we can save the the OCR results as a PDF file. It will add an invisible text layer above the original content so that the text becomes selectable and searchable.
+
+```js
+let indicesOfAll = DWTObject.SelectAllImages();
+await DWTObject.Addon.OCRKit.SaveToPath(indicesOfAll,Dynamsoft.DWT.EnumDWT_OCRKitOutputFormat.PDF_WITH_EXTRA_TEXTLAYER);
+```
+
+APIs used:
+
+[`SaveToPath()`](/_articles/info/api/Addon_OCR.md#savetopath)
+
+### Step Seven - Review the Complete Code
+
+Here is the complete code of the demo.
+
+```html
+
+
+
+  Dynamic Web TWAIN - OCR Demo
+  
+  
+  
+  
+  
+
+
+  
+
Input:
+ + +
+
+
Processing:
+ + + + +
+
+
Output:
+ + +
+ +
+
+

+  
+ + + + +``` diff --git a/_articles/index.md b/_articles/index.md index 69160c8f..af0460b9 100644 --- a/_articles/index.md +++ b/_articles/index.md @@ -73,6 +73,7 @@ description: Dynamic Web TWAIN SDK Documentation Homepage - [Dynamsoft FileUploader]({{site.api}}Dynamsoft_FileUploader.html) - Add-On Modules - [Barcode Reader]({{site.api}}Addon_BarcodeReader.html) + - [OCR](/_articles/info/api/Addon_OCR.md) - [PDF Rasterizer]({{site.api}}Addon_PDF.html) - [Webcam]({{site.api}}Addon_Webcam.html) - [Enumerations]({{site.api}}Dynamsoft_Enum.html) diff --git a/_articles/info/api/Addon_OCR.md b/_articles/info/api/Addon_OCR.md new file mode 100644 index 00000000..db5233bd --- /dev/null +++ b/_articles/info/api/Addon_OCR.md @@ -0,0 +1,308 @@ +--- +layout: default-layout +needAutoGenerateSidebar: true +title: Dynamic Web TWAIN SDK API Reference - OCR Addon APIs +keywords: Dynamic Web TWAIN, Documentation, API Reference, OCR Addon APIs +breadcrumbText: OCR Addon +description: Dynamic Web TWAIN SDK Documentation API Reference OCR Addon APIs Page +--- + +# {WebTwainObject}.Addon.OCRKit + +> {WebTwainObject} denotes the `WebTwain` instance. + +**Methods** + +--- + +## GetInstalledOCRInfo() + +Return the info of the installed OCR addon. It will throw an error if the OCR module is not installed. + +**Syntax** + +```typescript +GetInstalledOCRInfo(): Promise; +``` + +**Return Values** + +An [`OCRInfo`](/_articles/info/api/interfaces.md#ocrinfo) object. + +**Availability** + +
+ + + + + + + + + + + + + + +
H5(Windows)H5(macOS)H5(Linux)
v19.3+ not supported not supported
+
+ +--- + +## DetectPageOrientation() + +**Syntax** + +```ts +DetectPageOrientation( + index: number, + settings?: { + detectionMode?: EnumDWT_PageOrientationDetectionMode | number + } +): Promise<{angle: EnumDWT_PageOrientation | number, confidence: number}>; +``` + +**Parameters** + +`index`: Index of the image to process. + +`settings`: Settings of the method. You can configure the accuracy mode. Please refer to [`EnumDWT_PageOrientationDetectionMode`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_pageorientationdetectionmode). + +**Return Values** + +Promise of an object of the orientation detection result. Please refer to [`EnumDWT_PageOrientation`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_pageorientation). + +**Availability** + +
+ + + + + + + + + + + + + + +
H5(Windows)H5(macOS)H5(Linux)
v19.3+ not supported not supported
+
+ +--- + +## Recognize() + +Recognize the text in one page. + +**Syntax** + +```ts +Recognize( + index: number, + options: { + settings?: { + language?: string, + pageOrientation?: EnumDWT_PageOrientation| number, + }, + rects?: { + x: number, + y: number, + width: number, + height: number + }[] + } +): Promise; +``` + +**Parameters** + +`index`: Index of the image to process. + +`options`: + +* `settings`: Settings of the recognition. + * `language`: Specify the code of language for recognition (`en`, `fr`, e.g.). See the table below listing supported languages. + * `pageOrientation`: Specify the orientation of the page. The OCR will rotate the page before recognition. Please refer to [`EnumDWT_PageOrientation`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_pageorientation). +* `rects`: An array of rectangles to limit the regions for recognition. + +**Return Values** + +Promise of the [`OCRResult`](/_articles/info/api/interfaces.md#ocrresult) object. + +**Supported Languages** + +| Language Name | Code | +| :------------------------- | :---- | +| English | en | +| French | fr | +| Spanish | es | +| German | de | +| Italian | it | +| Portuguese | pt | + +**Availability** + +
+ + + + + + + + + + + + + + +
H5(Windows)H5(macOS)H5(Linux)
v19.3+ not supported not supported
+
+ + +--- + +## SaveToPath() + +Save the result to a local path. + +**Syntax** + +```ts +SaveToPath( + indices: number[], + outputFormat: Dynamsoft.DWT.EnumDWT_OCRKitOutputFormat | number, + path?: string +): Promise; +``` + +**Parameters** + +`indices`: Indices of the pages to save. + +`outputFormat`: Please refer to [`EnumDWT_OCRKitOutputFormat`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_ocrkitoutputformat). + +`path`: System's absolute path for saving. If not specified, it will show the file saving dialog to select an output path. + +**Return Values** + +A `boolean` result indicating the success of the operation. + +**Availability** + +
+ + + + + + + + + + + + + + +
H5(Windows)H5(macOS)H5(Linux)
v19.3+ not supported not supported
+
+ + +--- + +## SaveAsBase64() + +Save the result as base64. + +**Syntax** + +```ts +SaveAsBase64( + indices: number[], + outputFormat: Dynamsoft.DWT.EnumDWT_OCRKitOutputFormat | number +): Promise; +``` + +**Parameters** + +`indices`: Indices of the pages to save. + +`outputFormat`: Please refer to [`EnumDWT_OCRKitOutputFormat`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_ocrkitoutputformat). + +**Return Values** + +A base64 string result. + +**Availability** + +
+ + + + + + + + + + + + + + +
H5(Windows)H5(macOS)H5(Linux)
v19.3+ not supported not supported
+
+ + +--- + +## SaveAsBlob() + +Save the result as blob. + +**Syntax** + +```ts +SaveAsBlob( + indices: number[], + outputFormat: Dynamsoft.DWT.EnumDWT_OCRKitOutputFormat | number +): Promise; +``` + +**Parameters** + +`indices`: Indices of the pages to save. + +`outputFormat`: Please refer to [`EnumDWT_OCRKitOutputFormat`](/_articles/info/api/Dynamsoft_Enum.md#dynamsoftdwtenumdwt_ocrkitoutputformat). + +**Return Values** + +A `blob` result. + +**Availability** + +
+ + + + + + + + + + + + + + +
H5(Windows)H5(macOS)H5(Linux)
v19.3+ not supported not supported
+
\ No newline at end of file diff --git a/_articles/info/api/Dynamsoft_Enum.md b/_articles/info/api/Dynamsoft_Enum.md index ee5a0b12..23119379 100644 --- a/_articles/info/api/Dynamsoft_Enum.md +++ b/_articles/info/api/Dynamsoft_Enum.md @@ -918,3 +918,39 @@ Note: The below enumeration value has been deprecated as of 18.4. | ArrayBuffer | 2 | | XML | 3 | | JSON | 4 | + + +## `Dynamsoft.DWT.EnumDWT_OCRKitOutputFormat` + +| Label | Value | +| :------------------------- | :---- | +| TEXT | 0 | +| PDF_PLAIN_TEXT | 1 | +| PDF_WITH_EXTRA_TEXTLAYER | 2 | + + +Note: + +`PDF_PLAIN_TEXT` will only keep a text layer of the OCRed text for each page. + +`PDF_WITH_EXTRA_TEXTLAYER` will add an extra invisible text layer of the OCRed text above each page. + +## `Dynamsoft.DWT.EnumDWT_PageOrientation` + +| Label | Value | +| :------------------------- | :---- | +| AUTO | -1 | +| ANGLE_0 | 0 | +| ANGLE_90 | 90 | +| ANGLE_180 | 180 | +| ANGLE_270 | 270 | + +## `Dynamsoft.DWT.EnumDWT_PageOrientationDetectionMode` + +| Label | Value | +| :------------------------- | :---- | +| FAST | 0 | +| BALANCE | 1 | +| PRECISION | 2 | + + \ No newline at end of file diff --git a/_articles/info/api/appendix.md b/_articles/info/api/appendix.md index 99381073..7e3351d3 100644 --- a/_articles/info/api/appendix.md +++ b/_articles/info/api/appendix.md @@ -50,6 +50,7 @@ description: Dynamic Web TWAIN SDK Documentation API Appendix Page |-1090 | BMP format error or not supported | |-1100 | PNG format error or not supported | |-1110 | Unrecognized file extension | +|-1126 | The specified module could not be found. | |-1200 | PDF format error or not supported | |-2000 | Can not initiate the internet session | |-2001 | HTTP request error | @@ -58,9 +59,11 @@ description: Dynamic Web TWAIN SDK Documentation API Appendix Page |-2004 | FTP download file is too large | |-2007 | The system is busy, some operations are not completed. Please try later | |-2137 | Cross-Origin Resource Sharing (CORS) policy is blocking the access. Please contact the Administrator to configure 'Access-Control-Allow-Origin'.| +|-2120 | There must be at least one OCR result. \| No detection model found in local. \| No recognition model found in local. | |-2207 | The Dynamic Web TWAIN Service installed on your computer is outdated and no longer works with the JavaScript code on the website | |-2208 | The connection with the local Dynamic Web TWAIN Service encountered a problem and has been reset | |-2209 | The HTML5 (Chrome&Firefox) edition does not support this method or property | +|-2217 | Missing dependent files for OCR. | |-2300 | Http upload error: the HTTP Server cannot empty | |-2301 | Network error | |-2302 | The result format is invalid | @@ -99,6 +102,7 @@ description: Dynamic Web TWAIN SDK Documentation API Appendix Page |-2337 | The current product key does not include a license for reading DataMatrix barcode, please contact the site administrator | |-2338 | The current product key does not support Webcam, please contact the site administrator | |-2339 | The current product key does not support pdf rasterizer, please contact the site administrator | +|-2340 | The license for the module ocr kit is not found or has expired. | |-2342 | The domain of your current site does not match the domain bound in the current product key, please contact the site administrator | |-2343 | The current product key does not support your browser, please contact the site administrator | |-2344 | The current product key does not support Windows OS, please contact the site administrator | @@ -135,6 +139,7 @@ description: Dynamic Web TWAIN SDK Documentation API Appendix Page |-2619 | Only single index selection is allowed when enumImageFormatType is set to url. | |-2621 | Dynamsoft.DWT.Containers was not set. | |-2622 | Please do not set enumImageType to "IT_MULTIPAGE_PDF", "IT_MULTIPAGE_TIF" or "IT_ALL". | +|-2701 | The OCR feature is only supported on x64 versions of Windows. | |-2800 | Please make sure the Dynamic Web TWAIN Service has been installed. | |-2801 | Invalid response data was returned from the Dynamic Web TWAIN Service. | |-2802 | The file dynamsoft.webtwain.config.js timed out while loading. | diff --git a/_articles/info/api/index.md b/_articles/info/api/index.md index 85ad58f5..c6fdf768 100644 --- a/_articles/info/api/index.md +++ b/_articles/info/api/index.md @@ -570,6 +570,13 @@ breadcrumbText: API Reference | [`SetPassword()`](/_articles/info/api/Addon_PDF.md#setpassword) | [`SetResolution()`](/_articles/info/api/Addon_PDF.md#setresolution) | [`Write.Setup()`](/_articles/info/api/Addon_PDF.md#writesetup) | [`GetReaderOptions()`](/_articles/info/api/Addon_PDF.md#getreaderoptions) | | [`SetReaderOptions()`](/_articles/info/api/Addon_PDF.md#setreaderoptions) | +## OCR + +### Methods + +| [`GetInstalledOCRInfo()`](/_articles/info/api/Addon_OCR.md#getinstalledocrinfo) | [`DetectPageOrientation()`](/_articles/info/api/Addon_OCR.md#detectpageorientation) | [`Recognize()`](/_articles/info/api/Addon_OCR.md#recognize) | [`SaveToPath()`](/_articles/info/api/Addon_OCR.md#savetopath) | +| [`SaveAsBase64()`](/_articles/info/api/Addon_OCR.md#saveasbase64) | [`SaveAsBlob()`](/_articles/info/api/Addon_OCR.md#saveasblob) | + From 808c2700fcdb2892dbf3cd3af3f3c14e2b9b8d08 Mon Sep 17 00:00:00 2001 From: tony-xlh Date: Mon, 10 Nov 2025 11:20:46 +0800 Subject: [PATCH 06/70] add note about rotated ocr result --- _articles/info/api/interfaces.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_articles/info/api/interfaces.md b/_articles/info/api/interfaces.md index 8e99f15b..f68cf9f3 100644 --- a/_articles/info/api/interfaces.md +++ b/_articles/info/api/interfaces.md @@ -1710,7 +1710,7 @@ interface OCRInfo { ### OCRResult -The OCR result of one page. +The OCR result of one page. If the page is rotated, the geometry will be based on the orientation-corrected version. **Syntax** From 34351f3b2d26f827aced576283e1a823a3bfe039 Mon Sep 17 00:00:00 2001 From: tony-xlh Date: Wed, 19 Nov 2025 10:17:01 +0800 Subject: [PATCH 07/70] add note about Linux service --- _articles/info/schedule/Stable.md | 1 + 1 file changed, 1 insertion(+) diff --git a/_articles/info/schedule/Stable.md b/_articles/info/schedule/Stable.md index 801097c9..add085df 100644 --- a/_articles/info/schedule/Stable.md +++ b/_articles/info/schedule/Stable.md @@ -28,6 +28,7 @@ description: Dynamic Web TWAIN SDK Documentation Schedule Stable Release Page * Fixed the blurry image issue when the viewer's mode is set to 1x1. * Fixed a license issue of RemoteScan. +* Fixed the auto start of the service on Linux not using GUI From 3a6b24deb69eb27cd469b28a3d5b8d63468883a7 Mon Sep 17 00:00:00 2001 From: tony-xlh Date: Thu, 20 Nov 2025 18:04:30 +0800 Subject: [PATCH 08/70] add note about multi-user service installation --- _articles/info/schedule/Stable.md | 1 + 1 file changed, 1 insertion(+) diff --git a/_articles/info/schedule/Stable.md b/_articles/info/schedule/Stable.md index add085df..6648b272 100644 --- a/_articles/info/schedule/Stable.md +++ b/_articles/info/schedule/Stable.md @@ -22,6 +22,7 @@ description: Dynamic Web TWAIN SDK Documentation Schedule Stable Release Page * Added checking of the [local network access permission](/_articles/faq/chromium-142-local-network-access-issue.md) introduced in Chrome 142. * Added extra settings for [`PrintEx()`](/_articles/info/api/WebTwain_IO.md#printex). * Added prevention of service installation on macOS versions lower than 10.15. +* Added support for service installation for multiple users (Windows only). * Updated third-party libraries to enhance security. ### Bug Fixes From 0c5d8404b243529fc62706904678b4abf4c5336e Mon Sep 17 00:00:00 2001 From: tony-xlh Date: Wed, 26 Nov 2025 16:36:40 +0800 Subject: [PATCH 09/70] add EnableLocalNetworkMixedContent --- _articles/info/api/Dynamsoft_WebTwainEnv.md | 40 ++++++++++++++++++--- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/_articles/info/api/Dynamsoft_WebTwainEnv.md b/_articles/info/api/Dynamsoft_WebTwainEnv.md index 987384dd..b5211772 100644 --- a/_articles/info/api/Dynamsoft_WebTwainEnv.md +++ b/_articles/info/api/Dynamsoft_WebTwainEnv.md @@ -20,10 +20,10 @@ description: Dynamic Web TWAIN SDK Documentation API Reference Global APIs Page **Properties** -| [`Autoload`](#autoload) | [`Containers`](#containers) | [`CustomizableDisplayInfo`](#customizabledisplayinfo) | [`DeviceFriendlyName`](#devicefriendlyname) | -| [`Host`](#host) | [`IfAddMD5InUploadHeader`](#ifaddmd5inuploadheader) | [`IfConfineMaskWithinTheViewer`](#ifconfinemaskwithintheviewer) | [`JSVersion`](#jsversion) | -| [`ProductKey`](#productkey) | [`ResourcesPath`](#resourcespath) | [`ServiceInstallerLocation`](#serviceinstallerlocation) | [`UseDefaultViewer`](#usedefaultviewer) | -| [`IfCheckCORS`](#ifcheckcors) | [`IfAlwaysFocusOnPopupWindow`](#ifalwaysfocusonpopupwindow) | | | +| [`AutoLoad`](#autoload) | [`Containers`](#containers) | [`CustomizableDisplayInfo`](#customizabledisplayinfo) | [`DeviceFriendlyName`](#devicefriendlyname) | +| [`EnableLocalNetworkMixedContent`](#enablelocalnetworkmixedcontent) | [`Host`](#host) | [`IfAddMD5InUploadHeader`](#ifaddmd5inuploadheader) | [`IfConfineMaskWithinTheViewer`](#ifconfinemaskwithintheviewer) | +| [`JSVersion`](#jsversion) | [`ProductKey`](#productkey) | [`ResourcesPath`](#resourcespath) | [`ServiceInstallerLocation`](#serviceinstallerlocation) | +| [`UseDefaultViewer`](#usedefaultviewer) | [`IfCheckCORS`](#ifcheckcors) | [`IfAlwaysFocusOnPopupWindow`](#ifalwaysfocusonpopupwindow) | | **Events** @@ -805,6 +805,38 @@ DeviceFriendlyName: string; --- +## EnableLocalNetworkMixedContent + +If enabled, the library will use HTTP to communicate with the service. The host must be `localhost` or `127.0.0.1`. The default value is `false`. + +**Syntax** + +```typescript +EnableLocalNetworkMixedContent: boolean; +``` + +**Availability** + +
+ + + + + + + + + + + + + + +
H5(Windows)H5(macOS)H5(Linux)
v19.3+v19.3+v19.3+
+
+ +---- + ## Host Specify the target address for the local Dynamic Web TWAIN Service. From d5ed1487020bae798b2f399e6445108fc9432e8f Mon Sep 17 00:00:00 2001 From: tony-xlh Date: Wed, 26 Nov 2025 16:49:53 +0800 Subject: [PATCH 10/70] update release notes --- _articles/info/schedule/Stable.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_articles/info/schedule/Stable.md b/_articles/info/schedule/Stable.md index 6648b272..60d11ec9 100644 --- a/_articles/info/schedule/Stable.md +++ b/_articles/info/schedule/Stable.md @@ -23,6 +23,8 @@ description: Dynamic Web TWAIN SDK Documentation Schedule Stable Release Page * Added extra settings for [`PrintEx()`](/_articles/info/api/WebTwain_IO.md#printex). * Added prevention of service installation on macOS versions lower than 10.15. * Added support for service installation for multiple users (Windows only). +* Added an [`EnableLocalNetworkMixedContent`](/_articles/info/api/Dynamsoft_WebTwainEnv.md#enablelocalnetworkmixedcontent) property. +* Improved the performance of [`RemoveAllSelectedImages()`](/_articles/info/api/WebTwain_Buffer.md#removeallselectedimages) by triggering [`OnBufferChanged`](/_articles/info/api/WebTwain_Buffer.md#onbufferchanged) and [`OnBitmapChanged`](/_articles/info/api/WebTwain_Buffer.md#onbitmapchanged) events only once. * Updated third-party libraries to enhance security. ### Bug Fixes @@ -32,7 +34,6 @@ description: Dynamic Web TWAIN SDK Documentation Schedule Stable Release Page * Fixed the auto start of the service on Linux not using GUI - ## 19.2 (08/26/2025) ### Highlights From ccfcc30d87b30ea0c340d68e9c6588fd9402b7fd Mon Sep 17 00:00:00 2001 From: Tony-Dynamsoft <112376616+tony-xlh@users.noreply.github.com> Date: Wed, 26 Nov 2025 16:53:45 +0800 Subject: [PATCH 11/70] Update Stable.md --- _articles/info/schedule/Stable.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_articles/info/schedule/Stable.md b/_articles/info/schedule/Stable.md index 60d11ec9..c76a908d 100644 --- a/_articles/info/schedule/Stable.md +++ b/_articles/info/schedule/Stable.md @@ -10,7 +10,7 @@ description: Dynamic Web TWAIN SDK Documentation Schedule Stable Release Page # Stable Releases -## 19.3 (12/01/2025) +## 19.3 (12/09/2025) ### New Features From 7da47e4fc072feb036e511558db807e78dbe0139 Mon Sep 17 00:00:00 2001 From: tony-xlh Date: Fri, 28 Nov 2025 15:17:10 +0800 Subject: [PATCH 12/70] fix the code in the OCR guide --- _articles/extended-usage/ocr.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/_articles/extended-usage/ocr.md b/_articles/extended-usage/ocr.md index 774e8e25..bfb34afb 100644 --- a/_articles/extended-usage/ocr.md +++ b/_articles/extended-usage/ocr.md @@ -20,7 +20,7 @@ Dynamic Web TWAIN provides an OCR add-on to extract text in your scanned images. ### Step One - Install the OCR Package -Download `DynamicWebTWAINOCRPack.zip`, unzip it and run `Install.cmd` as admin to install the OCR package. It will copy the `ocr` folder to the service's [installation folder](/_articles/extended-usage/dynamsoft-service-configuration.md#installation-folder). +Download `DynamicWebTWAINOCRPack.zip`, unzip it and run `Install.cmd` as admin to install the OCR package. It will copy the `ocr` folder to the service's [installation folder](/_articles/extended-usage/dynamsoft-service-configuration.md#installation-folder). (You need to install Dynamic Web TWAIN Service beforehand.) ### Step Two - Write a Basic Document Scanning Page @@ -264,7 +264,7 @@ Here is the complete code of the demo.
Output: