From 04e796ca80aaa1bf8a74300f2a5f3caadacb5f78 Mon Sep 17 00:00:00 2001 From: Doby2333 Date: Thu, 22 Jan 2026 13:58:30 -0800 Subject: [PATCH 1/4] Remove outdated FAQ articles and update existing ones for clarity and accuracy. - Deleted articles on the differences between camera and webcam, OCR Basic vs Pro, earliest iPhone model supported, and OCR running on client/server side. - Updated last modified dates for various FAQs to reflect current information. - Improved descriptions and solutions for issues related to scanning performance, license limits, and error messages. - Enhanced clarity in UI customization and licensing requirements for add-ons. - Removed obsolete images and ensured all links are functional. --- _articles/faq/XMLHttpRequest-cannot-load.md | 2 ++ _articles/faq/acquireimage-sync-or-async.md | 2 ++ _articles/faq/activeX-in-Edge-IE-mode.md | 4 ++- .../automatically-rotate-upside-down-pages.md | 8 ++++-- _articles/faq/camera-play-and-showvideo.md | 23 --------------- _articles/faq/chrome-106-107-warning.md | 9 +++--- ...eds-to-be-installed-on-end-user-machine.md | 10 +++---- .../faq/connection-couldnt-be-established.md | 12 ++++---- _articles/faq/deploy-to-all-users.md | 2 +- .../difference-between-camera-and-webcam.md | 21 -------------- .../difference-between-ocr-basic-and-pro.md | 19 ------------ .../faq/document-scanning-slow-than-native.md | 6 ++-- .../does-barcode-addon-support-patch-code.md | 10 ++----- _articles/faq/download-older-version-sdk.md | 6 ++-- .../download-virtual-scanner-for-testing.md | 4 +-- _articles/faq/dwt-md5-is-not-allowed.md | 8 +++--- .../faq/earliest-iphone-model-supported.md | 17 ----------- .../error-message-exceeded-ocr-attempts.md | 27 ------------------ .../faq/error-message-product-key-expired.md | 8 +++--- ...product-key-is-missing-the-core-license.md | 4 +-- ...come-would-you-need-local.dynamsoft.com.md | 21 -------------- ...-if-your-camera-is-DirectShow-compliant.md | 6 ++-- ...f-your-camera-is-MediaDevices-compliant.md | 2 ++ ...o-test-if-your-device-is-SANE-compliant.md | 4 +-- .../faq/how-to-uninstall-dynamsoft-service.md | 2 +- _articles/faq/index.md | 2 +- _articles/faq/is-ui-customizable.md | 4 +-- _articles/faq/license-limit-reached.md | 2 ++ _articles/faq/limit-on-scanned-pages.md | 8 ++---- .../faq/ocr-runs-on-client-or-server-side.md | 21 -------------- ...ompt-end-user-when-local-resources-used.md | 2 +- _articles/faq/release-license-seats.md | 9 ++---- _articles/faq/resize-view-of-image.md | 4 +-- _articles/faq/separate-license-for-addon.md | 10 ++----- .../faq/source-has-nothing-to-capture.md | 10 ++----- _articles/faq/source-not-listed-on-linux.md | 2 +- .../faq/upgrade-end-user-installations.md | 2 +- _articles/faq/use-deprecated-technology.md | 2 ++ ...ynamsoft-service-do-on-end-user-machine.md | 4 ++- assets/imgs/ProductKey-Expired.png | Bin 7550 -> 0 bytes assets/imgs/product-key-expired.png | Bin 27300 -> 13302 bytes 41 files changed, 82 insertions(+), 237 deletions(-) delete mode 100644 _articles/faq/camera-play-and-showvideo.md delete mode 100644 _articles/faq/difference-between-camera-and-webcam.md delete mode 100644 _articles/faq/difference-between-ocr-basic-and-pro.md delete mode 100644 _articles/faq/earliest-iphone-model-supported.md delete mode 100644 _articles/faq/error-message-exceeded-ocr-attempts.md delete mode 100644 _articles/faq/how-come-would-you-need-local.dynamsoft.com.md delete mode 100644 _articles/faq/ocr-runs-on-client-or-server-side.md delete mode 100644 assets/imgs/ProductKey-Expired.png diff --git a/_articles/faq/XMLHttpRequest-cannot-load.md b/_articles/faq/XMLHttpRequest-cannot-load.md index ca4bbd78..6ad1a59f 100644 --- a/_articles/faq/XMLHttpRequest-cannot-load.md +++ b/_articles/faq/XMLHttpRequest-cannot-load.md @@ -50,3 +50,5 @@ Try uploading to the same domain or update the server side configuration to allo > If you are downloading a file, you might need to clear the browser cache because a cached file will not be requested again from the server, thus still no 'Access-Control-Allow-Origin' header will be presented. > > If you are using Windows Authentication, you may need to change the default setting of `withCredentials` in the `dynamsoft.webtwain.initiate.js` file. To do that, open the JS file, find `withCredentials:false` and change it to `withCredentials:true` . + +TODO: I can no longer find the keyword `withCredentials:false` in the latest `dynamsoft.webtwain.initiate.js`, it is now `withCredentials:!1`. Please advise on how this FAQ needs to be changed, or if it is still necessary at all. \ No newline at end of file diff --git a/_articles/faq/acquireimage-sync-or-async.md b/_articles/faq/acquireimage-sync-or-async.md index 9cbd5ebc..4cd750ca 100644 --- a/_articles/faq/acquireimage-sync-or-async.md +++ b/_articles/faq/acquireimage-sync-or-async.md @@ -15,3 +15,5 @@ last_modified: 2022-06-10 04:40:03 +0800 ## Is the AcquireImage() method synchronous or asynchronous? [AcquireImage()](/_articles/info/api/WebTwain_Acquire.md#acquireimage){:target="_blank"} is an asynchronous method, regardless of whether it includes a callback function or not. + +TODO: Needs clarification on the different APIs. I think it would be better that the differences are addressed in API documentation rather than a separate FAQ. \ No newline at end of file diff --git a/_articles/faq/activeX-in-Edge-IE-mode.md b/_articles/faq/activeX-in-Edge-IE-mode.md index 5061661b..e9d410c4 100644 --- a/_articles/faq/activeX-in-Edge-IE-mode.md +++ b/_articles/faq/activeX-in-Edge-IE-mode.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, ActiveX, Internet Explorer mode, IE mode breadcrumbText: How to run Dynamic Web TWAIN ActiveX in Microsoft Edge Internet Explorer (IE) mode description: How to run Dynamic Web TWAIN ActiveX in Microsoft Edge Internet Explorer (IE) mode date: 2022-04-22 05:24:12 +0800 -last_modified: 2022-10-14 14:05:08 +0800 +last_modified: 2026-01-21 14:32:41 -08:00 --- View all FAQs about [Project Deployment and End-user Installation]( @@ -15,6 +15,8 @@ https://www.dynamsoft.com/web-twain/docs/faq/#project-deployment-and-end-user-in # How to run Dynamic Web TWAIN ActiveX in Microsoft Edge Internet Explorer (IE) mode +> ActiveX support was removed starting in Dynamic Web TWAIN v19. This article is archived for customers running versions earlier than 19. For supported browsers in v19 and later, please migrate to the HTML5 edition. + Microsoft is retiring Internet Explorer 11 on June 15, 2022. To support Dynamic Web TWAIN ActiveX, please configure IE mode in Edge following the steps below. For better browser compatibility, we strongly recommend [updating your web application with our HTML5 edition](/_articles/indepth/development/activex.md#move-away-from-activex){:target="_blank"}. ### Step by step instructions to configure Microsoft Edge IE mode diff --git a/_articles/faq/automatically-rotate-upside-down-pages.md b/_articles/faq/automatically-rotate-upside-down-pages.md index 92fc0575..f3cf7c3f 100644 --- a/_articles/faq/automatically-rotate-upside-down-pages.md +++ b/_articles/faq/automatically-rotate-upside-down-pages.md @@ -7,13 +7,15 @@ keywords: Dynamic Web TWAIN, Capture/ Image Source, automatically rotate pages breadcrumbText: Can the Dynamic Web TWAIN SDK automatically rotate upside-down pages during the document scanning process? description: Can the Dynamic Web TWAIN SDK automatically rotate upside-down pages during the document scanning process? date: 2021-12-08 03:01:32 +0800 -last_modified: 2022-06-10 04:40:03 +0800 +last_modified: 2026-01-21 14:51:06 -08:00 --- # Capture/Image Source ## Can the Dynamic Web TWAIN SDK automatically rotate upside-down pages during the document scanning process? -No, the rotation is not automatic, but it can be achieved by leveraging the rotating functionality explained in [this link](/_articles/general-usage/image-processing/image-editing.md#example---rotating-images){:target="_blank"}. +Dynamic Web TWAIN does not auto-rotate pages by default, but you can rotate images in code using the API covered in [this example](/_articles/general-usage/image-processing/image-editing.md#example---rotating-images){:target="_blank"}. -If you need to do automatic skew correction on scanned pages, you can refer to [this article](/_articles/faq/support-image-deskew.md) for our automatic de-skewing feature. +If you have the OCR Add-on (v19.3+), you can call [`DetectPageOrientation()`](/_articles/info/api/Addon_OCR.md#detectpageorientation){:target="_blank"} to detect the page orientation from recognized text and use that result to decide how to rotate. + +Some scanners also offer an AutoDeskew/AutoRotate capability that runs on the device. If your scanner supports it, enable that option (see [our de-skew guidance](/_articles/faq/support-image-deskew.md) for scanner-side setup); otherwise, use the rotation API noted above based on your own detection logic. diff --git a/_articles/faq/camera-play-and-showvideo.md b/_articles/faq/camera-play-and-showvideo.md deleted file mode 100644 index 1935ce5f..00000000 --- a/_articles/faq/camera-play-and-showvideo.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -layout: default-layout -noTitleIndex: true -needAutoGenerateSidebar: true -title: What is the difference between Camera.play and Camera.showVideo? -keywords: Dynamic Web TWAIN, Addon, webassembly, webcam capture -breadcrumbText: What is the difference between Camera.play and Camera.showVideo? -description: What is the difference between Camera.play and Camera.showVideo? -date: 2021-12-01 01:09:41 +0800 -last_modified: 2025-09-19 10:12:03 +0800 ---- - -# Addon - -## What is the difference between Camera.play and Camera.showVideo? - -> **The Camera Add-on has been removed since Dynamic Web TWAIN [18.1](_articles/info/schedule/deprecated.md#181).** An alternative replacement for this module is [Mobile Document Scanner](https://www.dynamsoft.com/use-cases/mobile-document-scanner/). - -`Camera.showVideo` is a built-in feature to handle camera capturing, prospective adjusting, etc. It supports two available modes: document and picture. - -`Camera.play` is a more specific API for starting streaming video from the current camera. - -Note that these two APIs cannot be mixed with each other. diff --git a/_articles/faq/chrome-106-107-warning.md b/_articles/faq/chrome-106-107-warning.md index 05e0b88c..4fae2ad5 100644 --- a/_articles/faq/chrome-106-107-warning.md +++ b/_articles/faq/chrome-106-107-warning.md @@ -7,13 +7,15 @@ keywords: Dynamic Web TWAIN, Error Troubleshooting, Canvas2D, Warning breadcrumbText: Warning message - Canvas2D Warning description: Canvas2D Warning date: 2022-10-13 18:34:42 +0800 -last_modified: 2022-10-17 18:04:03 +0800 +last_modified: 2026-01-21 14:54:50 -08:00 --- # Error Troubleshooting ## Warning message - Canvas2D: Multiple readback operations using getImageData are faster with the willReadFrequently attribute set to true. +> Archived: This warning was fixed in Dynamic Web TWAIN 18.0. The steps below are only for projects pinned to versions prior to 18.0. + ### Symptom When you are using Chrome 107(developer version) & 106 (official version) or any version above these, you could encounter a warning in console: @@ -34,7 +36,6 @@ Step 1. Navigate to '../Resources/dynamsoft.webtwain.initiate.js../Resources/src/dynamsoft.viewer.js' replace all `getContext("2d")` to `getContext("2d",{willReadFrequently:true})` +### Status -### Planning - -It will be fixed in version 18.0 officially. \ No newline at end of file +Fixed in Dynamic Web TWAIN 18.0+. No action is needed on supported versions. diff --git a/_articles/faq/component-needs-to-be-installed-on-end-user-machine.md b/_articles/faq/component-needs-to-be-installed-on-end-user-machine.md index c16e5c6a..27c5fcef 100644 --- a/_articles/faq/component-needs-to-be-installed-on-end-user-machine.md +++ b/_articles/faq/component-needs-to-be-installed-on-end-user-machine.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Project Deployment and End-user Installation, insta breadcrumbText: Is there any component of the Dynamic Web TWAIN SDK that needs to be installed on end-user machines? description: Is there any component of the Dynamic Web TWAIN SDK that needs to be installed on end-user machines? date: 2021-12-11 06:47:21 +0800 -last_modified: 2022-10-19 05:45:25 +0800 +last_modified: 2026-01-21 15:24:26 -08:00 --- View all FAQs about [Project Deployment and End-user Installation]( @@ -15,10 +15,8 @@ https://www.dynamsoft.com/web-twain/docs/faq/#project-deployment-and-end-user-in # Is there any component of the Dynamic Web TWAIN SDK that needs to be installed on end-user machines? -For the [Desktop Service Edition](/_articles/general-usage/initialization.md#desktop-service-edition){:target="_blank"}, the Dynamic Web TWAIN Service (also called "Dynamsoft Service") needs to be installed on end-user machines. By default end-users will be prompted to install Dynamic Web TWAIN Service when they access your application for the first time. +For the [Desktop Service Edition](/_articles/general-usage/initialization.md#desktop-service-edition){:target="_blank"}, end users need the Dynamic Web TWAIN Service installed locally (this was called “Dynamsoft Service” prior to v19.0). They are prompted to install it the first time they open your application. -When you upgrade Dynamic Web TWAIN, you may also need a reinstallation of Dynamic Web TWAIN Service on the client-side. For more information, please refer to [Update Dynamic Web TWAIN Service on the Client-side](/_articles/indepth/development/upgrade.md#update-dynamsoft-service-on-the-client-side){:target="_blank"}. +When you upgrade Dynamic Web TWAIN, plan to reinstall the service on client machines if required. See [Update Dynamic Web TWAIN Service on the Client-side](/_articles/indepth/development/upgrade.md#update-dynamsoft-service-on-the-client-side){:target="_blank"} for details. -If you do not want to install anything, there is an option. - -You can enable Remote Scan, which scans documents from remote scanners connected to host machines. No installation is required on the client machine. Please check [here](/_articles/faq/how-to-enable-remote-scan.md){:target="_blank"} for more information on how remote scan works and how to enable it. +If you prefer zero client-side installation, enable Remote Scan. It routes scanning through a host machine’s service, so the browser client installs nothing. Learn how to enable it [here](/_articles/faq/how-to-enable-remote-scan.md){:target="_blank"}. diff --git a/_articles/faq/connection-couldnt-be-established.md b/_articles/faq/connection-couldnt-be-established.md index 1bbe60e6..7b48c843 100644 --- a/_articles/faq/connection-couldnt-be-established.md +++ b/_articles/faq/connection-couldnt-be-established.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Error Troubleshooting, connection not established breadcrumbText: A connection with the server could not be established description: A connection with the server could not be established date: 2020-12-10 16:11:49 +0800 -last_modified: 2022-06-02 15:30:49 +0800 +last_modified: 2026-01-21 15:26:16 -08:00 --- # Error Troubleshooting @@ -16,16 +16,16 @@ last_modified: 2022-06-02 15:30:49 +0800 ### Symptom -When attempting to upload images web server the upload fails and you receive the error message. +When attempting to upload images to your web server, the upload fails and you see this error message. ### Cause -The problem may occur when a connection with the server is not available. +This usually means the client cannot reach the server. ### Resolution -- Check if the HTTP port you set in your code coincides with the port number you set on your web server. You can use the [HTTPPort](/_articles/info/api/WebTwain_IO.md#httpport) property to set the port number. -- Make sure the address of the server is available. To check this, you can ping the address from a client machine. +- Verify the HTTP port in your code matches the server’s listening port. Set it with [`HTTPPort`](/_articles/info/api/WebTwain_IO.md#httpport). +- Confirm the server address is reachable (ping it from a client machine). Use either the machine name or IP with `HTTPUpload`. > Note: -> Both the machine name and the IP address of the server can be used for the HTTPUpload method. +> Both the machine name and the IP address of the server can be used for the [`HTTPUpload`](/_articles/info/api/WebTwain_IO.md#httpupload) method. diff --git a/_articles/faq/deploy-to-all-users.md b/_articles/faq/deploy-to-all-users.md index 5e8b1b32..63ca444f 100644 --- a/_articles/faq/deploy-to-all-users.md +++ b/_articles/faq/deploy-to-all-users.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Project Deployment and End-user Installation, deplo breadcrumbText: Is there an easy way to deploy the end-user components to all users? description: Is there an easy way to deploy the end-user components to all users? date: 2021-07-14 18:58:25 +0800 -last_modified: 2022-10-14 14:05:08 +0800 +last_modified: 2025-03-31 00:00:00 +0800 --- View all FAQs about [Project Deployment and End-user Installation]( diff --git a/_articles/faq/difference-between-camera-and-webcam.md b/_articles/faq/difference-between-camera-and-webcam.md deleted file mode 100644 index a0592506..00000000 --- a/_articles/faq/difference-between-camera-and-webcam.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: default-layout -noTitleIndex: true -needAutoGenerateSidebar: true -title: What is the difference between WebTwain.Addon.Camera and WebTwain.Addon.Webcam? -keywords: Dynamic Web TWAIN, Addon, camera, webcam -breadcrumbText: What is the difference between WebTwain.Addon.Camera and WebTwain.Addon.Webcam? -description: What is the difference between WebTwain.Addon.Camera and WebTwain.Addon.Webcam? -date: 2021-12-01 01:09:41 +0800 -last_modified: 2022-06-10 04:40:03 +0800 ---- - -# Addon - -## What is the difference between WebTwain.Addon.Camera and WebTwain.Addon.Webcam? - -`WebTwain.Addon.Camera` supports mobile camera, whereas `WebTwain.Addon.Webcam` supports web cameras in mainstream desktop browsers. - -Please note that the Camera module requires a secure connection as only a secure site can make use of the camera on mobile devices. If you use this feature, you need to enable HTTPS on the server. For how to enable HTTPS, please check out the manual of your webserver. - -For some advanced features, you may also need WASM browser. diff --git a/_articles/faq/difference-between-ocr-basic-and-pro.md b/_articles/faq/difference-between-ocr-basic-and-pro.md deleted file mode 100644 index a65ab5b6..00000000 --- a/_articles/faq/difference-between-ocr-basic-and-pro.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: default-layout -noTitleIndex: true -needAutoGenerateSidebar: true -title: What's the difference between your OCR Basic and OCR Pro SDK? -keywords: Dynamic Web TWAIN, Addon, OCR, OCR basic, OCR pro -breadcrumbText: What's the difference between your OCR Basic and OCR Pro SDK? -description: What's the difference between your OCR Basic and OCR Pro SDK? -date: 2021-12-01 01:09:41 +0800 -last_modified: 2022-10-21 14:05:54 +0800 ---- - -# Addon - -## What's the difference between your OCR Basic and OCR Pro SDK? - -OCR Basic is built upon the open-source Tesseract OCR engine, where as OCR Pro is built upon a commercial OCR engine. OCR Pro supports more languages and more input and output options. Check here for a detailed comparison and the difference in pricing options. - -Note that Server-side OCR pro Is no longer supported since version 17.0. And client-side OCR Pro requires a trackable license. The traditional product key no longer works. diff --git a/_articles/faq/document-scanning-slow-than-native.md b/_articles/faq/document-scanning-slow-than-native.md index 941d81f9..b8f87a77 100644 --- a/_articles/faq/document-scanning-slow-than-native.md +++ b/_articles/faq/document-scanning-slow-than-native.md @@ -7,15 +7,15 @@ keywords: Dynamic Web TWAIN, Capture/ Image Source, slow scan breadcrumbText: Document scanning via the Dynamic Web TWAIN SDK is slower than using the native scanner application. How can I speed it up? description: Document scanning via the Dynamic Web TWAIN SDK is slower than using the native scanner application. How can I speed it up? date: 2021-12-08 03:01:32 +0800 -last_modified: 2022-10-21 14:05:54 +0800 +last_modified: 2026-01-21 15:42:47 -08:00 --- # Capture/Image Source ## Document scanning via the Dynamic Web TWAIN SDK is slower than using the native scanner application. How can I speed it up? -Please first check if you use the same pre-scanning settings (e.g. color mode, resolution, etc.). +First, confirm you are using the same scan settings (color mode, DPI, duplex, etc.) as the native app. -Assuming the pre-scanning settings are the same, please double check if there are any automatic actions after scanning pages. You may double check the call back functions of the [AcquireImage](/_articles/info/api/WebTwain_Acquire.md#acquireimage){:target="_blank"} function or check if you write any code in the [OnPostTransfer](/_articles/info/api/WebTwain_Acquire.md#onposttransfer){:target="_blank"} or [OnPostAllTransfers](/_articles/info/api/WebTwain_Acquire.md#onpostalltransfers){:target="_blank"} event. If you need to run some automatic actions right after each page is scanned, it's recommended to use the [OnPostTransferAsync](/_articles/info/api/WebTwain_Acquire.md#onposttransferasync){:target="_blank"} event. +If settings match, look for extra work in your callbacks. Check code in `AcquireImage()` callbacks like [`OnPostTransfer`](/_articles/info/api/WebTwain_Acquire.md#onposttransfer){:target="_blank"} and [`OnPostAllTransfers`](/_articles/info/api/WebTwain_Acquire.md#onpostalltransfers){:target="_blank"}. If you must run per-page logic, prefer [`OnPostTransferAsync`](/_articles/info/api/WebTwain_Acquire.md#onposttransferasync){:target="_blank"} to avoid blocking the scan pipeline. If the scanning performance issue persists, please contact us. diff --git a/_articles/faq/does-barcode-addon-support-patch-code.md b/_articles/faq/does-barcode-addon-support-patch-code.md index 5398db06..3b53227c 100644 --- a/_articles/faq/does-barcode-addon-support-patch-code.md +++ b/_articles/faq/does-barcode-addon-support-patch-code.md @@ -7,17 +7,11 @@ keywords: Dynamic Web TWAIN, Addon, patch code breadcrumbText: Does your Barcode Reader addon support patch code? description: Does your Barcode Reader addon support patch code? date: 2021-12-01 01:09:41 +0800 -last_modified: 2022-06-10 04:40:03 +0800 +last_modified: 2026-01-21 15:48:44 -08:00 --- # Addon ## Does your Barcode Reader addon support patch code? -Yes, the add-on supports the patch code format (API EnumBarcodeFormatPATCHCODE). -Check here for all supported barcode types. - -By default, the add-on reads all the supported barcode types from the image. To read specific barcode types, you can use barcodeFormatIds and barcodeFormatIds2 in runtime settings. For patch code, you would use: -barcodeFormatIds = Dynamsoft.DBR.EnumBarcodeFormat.BF_ONED - -More information can be found here: [Specify the Barcode Type(s) to Read](/_articles/extended-usage/barcode-processing.md#specify-the-barcode-types-to-read){:target="_blank"}. +Yes. Configure it in the barcode types list shown here: [Specify the Barcode Type(s) to Read](/_articles/extended-usage/barcode-processing.md#specify-the-barcode-types-to-read){:target="_blank"}. diff --git a/_articles/faq/download-older-version-sdk.md b/_articles/faq/download-older-version-sdk.md index 4549e944..3ef5786b 100644 --- a/_articles/faq/download-older-version-sdk.md +++ b/_articles/faq/download-older-version-sdk.md @@ -7,13 +7,13 @@ keywords: Dynamic Web TWAIN, SDK Download, free trial, older version breadcrumbText: Where can I download an older version of the Dynamic Web TWAIN SDK? description: Where can I download an older version of the Dynamic Web TWAIN SDK? date: 2021-11-20 00:43:45 +0800 -last_modified: 2022-06-02 15:30:49 +0800 +last_modified: 2026-01-21 15:55:20 -08:00 --- # SDK Download/Free Trial ## Where can I download an older version of the Dynamic Web TWAIN SDK? -You can easily work with the older version of Dynamic Web TWAIN by visiting the customer portal and navigating to Download Center. +Visit the customer portal and go to the Download Center to access older SDK versions. Release notes for current and past stable versions are in the [Stable Releases](/_articles/info/schedule/Stable.md) page. -Please note that Dynamsoft provides maintenance and support for every version of SDK for TWO years from their general availability date. Therefore, if you are using a very old version, we suggest you schedule an upgrade to the latest version. You can contact sales@dynamsoft.com for any questions. +Dynamsoft provides maintenance and support for each SDK version for two years from its GA date. If you’re on an older release, plan an upgrade to the latest version. Contact sales@dynamsoft.com with any questions. diff --git a/_articles/faq/download-virtual-scanner-for-testing.md b/_articles/faq/download-virtual-scanner-for-testing.md index 94e6392e..dc36bcfa 100644 --- a/_articles/faq/download-virtual-scanner-for-testing.md +++ b/_articles/faq/download-virtual-scanner-for-testing.md @@ -7,14 +7,14 @@ keywords: Dynamic Web TWAIN, virtual scanner breadcrumbText: Download virtual scanner for testing description: Download virtual scanner for testing date: 2021-07-14 18:55:57 +0800 -last_modified: 2022-06-02 15:30:49 +0800 +last_modified: 2026-01-21 15:56:52 -08:00 --- # Capture/Image Source ## Download virtual scanner for testing -If you do not have a TWAIN scanner on hand to test the library, you can download and use a virtual scanner which is a Sourceforge project. +If you do not have a TWAIN scanner on hand to test the library, you can download and use a virtual scanner created by the TWAIN Working Group. - [32-bit virtual scanner](https://www.dynamsoft.com/download/TWAIN/twainds.win32.installer.2.1.3.msi) - [64-bit virtual scanner](https://www.dynamsoft.com/download/TWAIN/twainds.win64.installer.2.1.3.msi) diff --git a/_articles/faq/dwt-md5-is-not-allowed.md b/_articles/faq/dwt-md5-is-not-allowed.md index 32a6ebe8..a14cc4a3 100644 --- a/_articles/faq/dwt-md5-is-not-allowed.md +++ b/_articles/faq/dwt-md5-is-not-allowed.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Error Troubleshooting, dwt-md5, Access-Control-Allo breadcrumbText: Request header field dwt-md5 is not allowed by Access-Control-Allow-Headers in preflight response description: Request header field dwt-md5 is not allowed by Access-Control-Allow-Headers in preflight response date: 2021-12-03 23:26:46 +0800 -last_modified: 2022-06-02 15:30:49 +0800 +last_modified: 2026-01-21 15:58:00 -08:00 --- # Error Troubleshooting @@ -16,15 +16,15 @@ last_modified: 2022-06-02 15:30:49 +0800 ### Symptom -When you fail to upload images, you may get this error +When uploading images, the request fails with this CORS error. ### Cause -`dwt-md5` is a default built-in header in `Dynamic Web TWAIN` . It is used for each uploading process to test the integrity of data. Since this is not a standard header, the browser will send an OPTIONS preflight request before the original request is sent to verify that this header is allowed. If not, the browser will return the above error. +`dwt-md5` is a built-in header Dynamic Web TWAIN uses to validate upload integrity. Because it’s non-standard, browsers send a preflight OPTIONS request to confirm the header is allowed. If your server doesn’t allow it, the upload fails. ### Solution -Update your server-side configuration file as per your environment. If you are using IIS, you can refer to the following configuration. +Allow the `dwt-md5` header in your server’s CORS configuration. For IIS, add: ```xml diff --git a/_articles/faq/earliest-iphone-model-supported.md b/_articles/faq/earliest-iphone-model-supported.md deleted file mode 100644 index a15c7385..00000000 --- a/_articles/faq/earliest-iphone-model-supported.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: default-layout -noTitleIndex: true -needAutoGenerateSidebar: true -title: What is the earliest iPhone model that your SDK supports? -keywords: Dynamic Web TWAIN, Capture/ Image Source, earliest iphone -breadcrumbText: What is the earliest iPhone model that your SDK supports? -description: What is the earliest iPhone model that your SDK supports? -date: 2021-12-08 03:01:32 +0800 -last_modified: 2022-06-02 15:30:49 +0800 ---- - -# Capture/Image Source - -## What is the earliest iPhone model that your SDK supports? - -The earliest version of iOS that the SDK supports is iOS 12. With that in mind, the earliest iPhone model that is supported by iOS 12 is the iPhone 5s. Therefore, technically, the iPhone 5s would be the earliest supported iPhone model (reference link). diff --git a/_articles/faq/error-message-exceeded-ocr-attempts.md b/_articles/faq/error-message-exceeded-ocr-attempts.md deleted file mode 100644 index a84a2d95..00000000 --- a/_articles/faq/error-message-exceeded-ocr-attempts.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -layout: default-layout -noTitleIndex: true -needAutoGenerateSidebar: true -title: Error message - You have exceeded the number of OCR attempts allowed by the current license -keywords: Dynamic Web TWAIN, Error Troubleshooting, exceeded OCR attempts -breadcrumbText: Error message - You have exceeded the number of OCR attempts allowed by the current license -description: Error message - You have exceeded the number of OCR attempts allowed by the current license -date: 2021-12-03 23:26:46 +0800 -last_modified: 2022-10-21 14:05:54 +0800 ---- - -# Error Troubleshooting - -## Error message - You have exceeded the number of OCR attempts allowed by the current license - -### Symptom - -When you use the OCRPro addon, you may receive this error message returned by the member method [GetErrorString()](/_articles/info/api/Addon_OCR.md#recognizeselectedimages){:target="_blank"} of the OCRResult class. - -### Cause - -The license quota has been used up and extra quota needs to be purchased. The OCRPro licenses are yearly licenses and each license has a limitation on the number of pages allowed to be OCR'ed. The SDK will throw this error when the limitation is reached. - -### Solution - -Contact Dynamsoft Support for any assistance. diff --git a/_articles/faq/error-message-product-key-expired.md b/_articles/faq/error-message-product-key-expired.md index 96c7f76a..41934d9d 100644 --- a/_articles/faq/error-message-product-key-expired.md +++ b/_articles/faq/error-message-product-key-expired.md @@ -2,17 +2,17 @@ layout: default-layout noTitleIndex: true needAutoGenerateSidebar: true -title: Error message – The current product key has expired on XXX, please contact the site administrator +title: Error message – Your Dynamic Web TWAIN product key expired keywords: Dynamic Web TWAIN, Error Troubleshooting, product key, expired -breadcrumbText: Error message – The current product key has expired on XXX, please contact the site administrator -description: Error message – The current product key has expired on XXX, please contact the site administrator +breadcrumbText: Error message – Your Dynamic Web TWAIN product key expired +description: Error message – Your Dynamic Web TWAIN product key expired date: 2021-12-03 23:26:46 +0800 last_modified: 2022-06-10 04:40:03 +0800 --- # Error Troubleshooting -## Error message – The current product key has expired on XXX, please contact the site administrator +## Error message – Your Dynamic Web TWAIN product key expired ### Symptom diff --git a/_articles/faq/error-message-product-key-is-missing-the-core-license.md b/_articles/faq/error-message-product-key-is-missing-the-core-license.md index c3d3d25a..5a2f8581 100644 --- a/_articles/faq/error-message-product-key-is-missing-the-core-license.md +++ b/_articles/faq/error-message-product-key-is-missing-the-core-license.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Error Troubleshooting, missing core license breadcrumbText: Error message - The current product key is missing the core license, please contact the site administrator description: Error message - The current product key is missing the core license, please contact the site administrator date: 2021-12-03 23:26:46 +0800 -last_modified: 2022-10-21 14:05:54 +0800 +last_modified: 2026-01-21 16:04:54 -08:00 --- # Error Troubleshooting @@ -24,4 +24,4 @@ You are missing a license for the core module of Dynamic Web TWAIN, most likely ### Resolution -Make sure you have the correct license set in the proper configuration. If you have doubts or questions, you can contact Dynamsoft Support. +Make sure you have the correct license set in the proper configuration. See [Using full licenses](/_articles/general-usage/license.md#using-full-licenses){:target="_blank"} for guidance. If you have doubts or questions, you can contact Dynamsoft Support. diff --git a/_articles/faq/how-come-would-you-need-local.dynamsoft.com.md b/_articles/faq/how-come-would-you-need-local.dynamsoft.com.md deleted file mode 100644 index 14026af8..00000000 --- a/_articles/faq/how-come-would-you-need-local.dynamsoft.com.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: default-layout -noTitleIndex: true -needAutoGenerateSidebar: true -title: In which cases would I use local.dynamsoft.com instead of 127.0.0.1? -keywords: Dynamic Web TWAIN, CERT INVALID, local.dynamsoft.com -breadcrumbText: In which cases would I use local.dynamsoft.com instead of 127.0.0.1? -description: In which cases would I use local.dynamsoft.com instead of 127.0.0.1? -date: 2021-12-08 17:19:12 +0800 -last_modified: 2022-10-14 14:05:08 +0800 ---- - -View all FAQs about [Project Deployment and End-user Installation]( -https://www.dynamsoft.com/web-twain/docs/faq/#project-deployment-and-end-user-installation) - -# In which cases would I use local.dynamsoft.com instead of 127.0.0.1? - -By default, we use "127.0.0.1" for service connection. **127.0.0.1** uses a self-signed certificate because it is an internal IP address, if your environment requires high level security, self-signed certificates may not be accepted. In this case we also provide a 3rd party authority issued certificate - **local.dynamsoft.com**, as an official domain which uses a VeriSign'ed certificate. - -Please note: all official certificates issued by 3rd party **come with an expiry date** - generally one year. This means that each year the certificate will need to be updated if local.dynamsoft.com is used. - diff --git a/_articles/faq/how-to-test-if-your-camera-is-DirectShow-compliant.md b/_articles/faq/how-to-test-if-your-camera-is-DirectShow-compliant.md index e705d477..11186546 100644 --- a/_articles/faq/how-to-test-if-your-camera-is-DirectShow-compliant.md +++ b/_articles/faq/how-to-test-if-your-camera-is-DirectShow-compliant.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, DirectShow compliant, Camera breadcrumbText: How to test if your camera is DirectShow compliant description: How to test if your camera is DirectShow compliant date: 2021-07-14 18:55:57 +0800 -last_modified: 2022-06-02 15:30:49 +0800 +last_modified: 2026-01-21 16:11:13 -08:00 --- # Capture/Image Source @@ -18,7 +18,7 @@ last_modified: 2022-06-02 15:30:49 +0800 - Open the demo page on Windows - > If you haven't installed the SDK, a dialog will show up for you to download and install it. + > If you haven't installed the Dynamic Web TWAIN Service, a dialog will show up for you to download and install it. - Make sure the camera shows up in the device list @@ -26,4 +26,4 @@ last_modified: 2022-06-02 15:30:49 +0800 - Try showing the video stream and try capturing a frame to see if it works without any errors -* Try the camera with the [Amcap app](https://tst.dynamsoft.com/public/download/tools/amcap.zip) and see if it works correctly. +* You can also test with a DirectShow utility such as Amcap (obtainable from third-party sources) to confirm the camera works correctly. diff --git a/_articles/faq/how-to-test-if-your-camera-is-MediaDevices-compliant.md b/_articles/faq/how-to-test-if-your-camera-is-MediaDevices-compliant.md index b7eec035..81add800 100644 --- a/_articles/faq/how-to-test-if-your-camera-is-MediaDevices-compliant.md +++ b/_articles/faq/how-to-test-if-your-camera-is-MediaDevices-compliant.md @@ -23,3 +23,5 @@ last_modified: 2022-06-02 15:30:49 +0800 ![Hardware-Scanners-Cameras-11](/assets/imgs/Hardware-Scanners-Cameras-11.png) - Try showing the video stream and capturing a frame to see if it works without any errors + +TODO: This demo seems not working with latest version. Please advice. \ No newline at end of file diff --git a/_articles/faq/how-to-test-if-your-device-is-SANE-compliant.md b/_articles/faq/how-to-test-if-your-device-is-SANE-compliant.md index 3341ca92..ff8cb527 100644 --- a/_articles/faq/how-to-test-if-your-device-is-SANE-compliant.md +++ b/_articles/faq/how-to-test-if-your-device-is-SANE-compliant.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Capture/ Image Source, verify scanner, compatible, breadcrumbText: How to test if your device is SANE compliant description: How to test if your device is SANE compliant date: 2021-07-14 18:55:57 +0800 -last_modified: 2022-06-02 15:30:49 +0800 +last_modified: 2026-01-21 16:13:08 -08:00 --- # Capture/Image Source @@ -20,7 +20,7 @@ There are 3 ways to verify whether your scanner is SANE compliant. - Open the [demo page](https://demo.dynamsoft.com/dwt/online_demo_scan.aspx) on [Linux]({{site.getstarted}}platform.html#browsers-on-linux) - > If you haven't installed the SDK, a dialog will show up for you to download and install it. + > If you haven't installed the Dynamic Web TWAIN Service, a dialog will show up for you to download and install it. - Make sure the scanner driver shows up in the scanner list ![Hardware-Scanners-Cameras-5](/assets/imgs/Hardware-Scanners-Cameras-5.png) diff --git a/_articles/faq/how-to-uninstall-dynamsoft-service.md b/_articles/faq/how-to-uninstall-dynamsoft-service.md index 9498619f..c5fa1d07 100644 --- a/_articles/faq/how-to-uninstall-dynamsoft-service.md +++ b/_articles/faq/how-to-uninstall-dynamsoft-service.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Dynamic Web TWAIN Service, uninstall, silently breadcrumbText: How to uninstall Dynamic Web TWAIN Service? description: How to uninstall Dynamic Web TWAIN Service? date: 2021-07-14 18:58:25 +0800 -last_modified: 2022-10-14 14:05:08 +0800 +last_modified: 2025-03-31 00:00:00 +0800 --- View all FAQs about [Project Deployment and End-user Installation]( diff --git a/_articles/faq/index.md b/_articles/faq/index.md index e36e32fa..1ab74982 100644 --- a/_articles/faq/index.md +++ b/_articles/faq/index.md @@ -196,7 +196,7 @@ description: Dynamic Web TWAIN SDK Documentation FAQ 19. [Error message - The domain of your current site does not match the domain bound in the current product key, please contact the site administrator](/_articles/faq/error-message-domain-of-site-doesnt-match-domain-bound-to-product-key.md) 20. [Error message - The current product key is invalid because it's generated with the licenses of a different major version](/_articles/faq/error-message-license-generated-with-license-of-major-version.md) 21. [Error message - The current product key is not for full/trial version, please contact the site administrator](/_articles/faq/error-message-product-key-is-not-for-full-version.md) -22. [Error message – The current product key has expired on XXX, please contact the site administrator](/_articles/faq/error-message-product-key-expired.md) +22. [Error message – Your Dynamic Web TWAIN product key expired](/_articles/faq/error-message-product-key-expired.md) 23. [Error Message - Failed to load resource: net::ERR\_CERT\_DATE\_INVALID](/_articles/faq/failed-to-load-resource.md) 24. [Error Message - The connection from the insecure (HTTP) web page to the local 'Dynamsoft Service' failed](/_articles/faq/connection-from-the-insecure-HTTP-to-service-failed.md) 25. [Error Message - Source has nothing to capture](/_articles/faq/source-has-nothing-to-capture.md) diff --git a/_articles/faq/is-ui-customizable.md b/_articles/faq/is-ui-customizable.md index 7c880507..a8b6586c 100644 --- a/_articles/faq/is-ui-customizable.md +++ b/_articles/faq/is-ui-customizable.md @@ -7,11 +7,11 @@ keywords: Dynamic Web TWAIN, UI Customization, ui customizable breadcrumbText: Is the UI of the Dynamic Web TWAIN SDK fully customizable? What cannot be customized? description: Is the UI of the Dynamic Web TWAIN SDK fully customizable? What cannot be customized? date: 2021-12-08 03:32:59 +0800 -last_modified: 2022-06-02 15:30:49 +0800 +last_modified: 2026-01-21 16:19:08 -08:00 --- # UI Customization ## Is the UI of the Dynamic Web TWAIN SDK fully customizable? What cannot be customized? -The UI of the Dynamic web TWAIN SDK consists of the viewer, thumbnail viewer, image editor, among other HTML UI elements. The display language of the scan page can be customized. You can certainly create a scan page in your local language as the interface is all about HTML elements. Also, the built-in errors can be translated to your own language. The progress bar and image editor can also be customized. Most UI elements are fully customizable except for the scanner UI, which is not customizable. +Most UI is customizable: you can style or replace the viewer, thumbnail viewer, image editor, progress/loading indicators, and the install prompt (via `dynamsoft.webtwain.install.js`, e.g., `Dynamsoft._show_install_dialog`). You can also localize built-in error messages and other labels. What you cannot customize is the native scanner UI itself. See the full guide at [UI Elements and customization](/_articles/extended-usage/ui-customization.md){:target="_blank"}. diff --git a/_articles/faq/license-limit-reached.md b/_articles/faq/license-limit-reached.md index 8eef3d9e..34a8c657 100644 --- a/_articles/faq/license-limit-reached.md +++ b/_articles/faq/license-limit-reached.md @@ -17,3 +17,5 @@ last_modified: 2022-10-21 14:05:54 +0800 For Per Client Device or Per Page licensing model, we offer some additional quota at no cost in case you can't extend or expand the license in time. For more information please refer to Grace Stage. To avoid running out of licensed seats suddenly, Dynamsoft sends notification emails automatically to licensees about the status of the license. Please refer to Usage Alerts. For other licensing models, please refer to the contract or agreement you signed or contact your account manager for help. + +TODO: Link to **Grace Stage** is not available. Please advice. \ No newline at end of file diff --git a/_articles/faq/limit-on-scanned-pages.md b/_articles/faq/limit-on-scanned-pages.md index 01d0d85f..8c5dc3c7 100644 --- a/_articles/faq/limit-on-scanned-pages.md +++ b/_articles/faq/limit-on-scanned-pages.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Capture/ Image Source, limit on scanned pages breadcrumbText: Is there a limit on the number of pages I can scan at a time? Where do you store them after scanning? description: Is there a limit on the number of pages I can scan at a time? Where do you store them after scanning? date: 2021-12-08 03:01:32 +0800 -last_modified: 2022-10-21 14:05:54 +0800 +last_modified: 2026-01-21 14:32:41 -0800 --- # Capture/Image Source @@ -15,11 +15,9 @@ last_modified: 2022-10-21 14:05:54 +0800 ## Is there a limit on the number of pages I can scan at a time? Where do you store them after scanning? Dynamic Web TWAIN Desktop Service edition allows you to scan unlimited number of pages from a physical document scanner. -The Desktop Service edition can run in 32-bit and 64-bit and the data is stored raw in DIB format. Starting from version 15.0, 64-bit has been made the default option on a 64-bit OS and that means there is no limitation on how much memory it can use. However, physical memory size is usually limited so a good practice is to store images to memory by default and temporarily cache some images to the local disk when the used memory size exceeds a specific value (e.g. 800MB). +The Desktop Service edition can run in 32-bit and 64-bit and the data is stored raw in DIB format. Starting from version 15.0, 64-bit has been made the default option on a 64-bit OS and that means the available address space is large enough that you are unlikely to hit memory limits in normal scenarios. However, physical memory size is always finite, so a good practice is to store images to memory by default and temporarily cache some images to the local disk when the used memory size exceeds a specific value (e.g. 800MB). Note the disk caching feature is turned on by default and you can change the setting by using the following APIs - [IfAllowLocalCache](/_articles/info/api/WebTwain_Buffer.md#ifallowlocalcache){:target="_blank"} -- [BufferMemoryLimit](/_articles/info/api/WebTwain_Buffer.md#buffermemorylimit){:target="_blank"} - -On the other hand, if you are using the WebAssembly edition of Dynamic Web TWAIN, you can only utilize up to 2 GB of memory as WebAssembly only supports 32-bit pointers at present. However, the WebAssembly edition is mainly for document capturing from webcams/mobile cameras so it is less likely one would scan hundreds of pages at a time. Also, all captured pages are saved in buffer in JPEG format which won't take much space. +- [BufferMemoryLimit](/_articles/info/api/WebTwain_Buffer.md#buffermemorylimit){:target="_blank"} (defaults to 800MB) diff --git a/_articles/faq/ocr-runs-on-client-or-server-side.md b/_articles/faq/ocr-runs-on-client-or-server-side.md deleted file mode 100644 index 1e4c028c..00000000 --- a/_articles/faq/ocr-runs-on-client-or-server-side.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: default-layout -noTitleIndex: true -needAutoGenerateSidebar: true -title: Does your OCR addon run on the client side or server side? -keywords: Dynamic Web TWAIN, Addon, OCR -breadcrumbText: Does your OCR addon run on the client side or server side? -description: Does your OCR addon run on the client side or server side? -date: 2021-12-01 01:09:41 +0800 -last_modified: 2022-10-21 14:05:54 +0800 ---- - -# Addon - -## Does your OCR addon run on the client side or server side? - -OCR Basic is a light-weight OCR engine that works with the scanning module of Dynamic Web TWAIN on the client-side. While it can run on the server-side, it's not recommended due to performance. - -OCR Pro is a heavyweight OCR engine and is mostly deployed to the server side due to its size, but server-side OCR Pro is no longer supported since version 17.0. However, we provide OCR Pro client-side addon if that's desired. Note that client-side OCR Pro requires a trackable license. The traditional product key no longer works. - -For more information on OCR and how to use it, please check [here](/_articles/indepth/features/OCR.md){:target="_blank"}. diff --git a/_articles/faq/prompt-end-user-when-local-resources-used.md b/_articles/faq/prompt-end-user-when-local-resources-used.md index 746e2fbe..ed702646 100644 --- a/_articles/faq/prompt-end-user-when-local-resources-used.md +++ b/_articles/faq/prompt-end-user-when-local-resources-used.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Security, end user, prompt breadcrumbText: Can I prompt the end-user when the Dynamic Web TWAIN SDK attempts to visit any local resources (scanner, camera, or disk drive)? description: Can I prompt the end-user when the Dynamic Web TWAIN SDK attempts to visit any local resources (scanner, camera, or disk drive)? date: 2021-11-29 18:33:59 +0800 -last_modified: 2022-06-02 15:30:49 +0800 +last_modified: 2025-03-31 00:00:00 +0800 --- # Security diff --git a/_articles/faq/release-license-seats.md b/_articles/faq/release-license-seats.md index 125d6235..7ece3701 100644 --- a/_articles/faq/release-license-seats.md +++ b/_articles/faq/release-license-seats.md @@ -7,16 +7,11 @@ keywords: Dynamic Web TWAIN, Licensing and Purchase, per-client, seats, release breadcrumbText: For the per-client-device licensing model, can seats taken by retired/unused devices be released from the license? description: For the per-client-device licensing model, can seats taken by retired/unused devices be released from the license? date: 2021-12-04 02:34:30 +0800 -last_modified: 2022-06-02 15:30:49 +0800 +last_modified: 2026-01-22 13:02:55 -08:00 --- # Licensing and Purchase ## For the per-client-device licensing model, can seats taken by retired/unused devices be released from the license? -Yes. Occupied license seats will automatically be released if the registered device has not used the SDK feature for 90 days. - -Note – - -- For Desktop Service edition, a client device = a client PC (Win/macOS/linux) -- For WebAssembly edition, a client device = a browser client +Yes. Seats tied to a device are automatically released if that device hasn’t used the SDK for 90 days. A client device is simply the end user’s computer (Windows/macOS/Linux). diff --git a/_articles/faq/resize-view-of-image.md b/_articles/faq/resize-view-of-image.md index a35a909d..44943ddb 100644 --- a/_articles/faq/resize-view-of-image.md +++ b/_articles/faq/resize-view-of-image.md @@ -7,11 +7,11 @@ keywords: Dynamic Web TWAIN, Image Viewer, resize view breadcrumbText: How can I resize the view of image (e.g. zoom in/out on an image)? description: How can I resize the view of image (e.g. zoom in/out on an image)? date: 2021-12-09 11:34:50 +0800 -last_modified: 2022-06-10 04:40:03 +0800 +last_modified: 2026-01-22 13:04:05 -08:00 --- # Image Viewer ## How can I resize the view of image (e.g. zoom in/out on an image)? -You can resize the view of the image by using the zoom property of the viewer. It will return or set the zoom factor, and then the current page will be enlarged or reduced. You can find [here](/_articles/info/api/WebTwain_Viewer.md#zoom){:target="_blank"} a detail explanations of this property. +Use the viewer’s `zoom` property to change the zoom factor (enlarge or reduce the current page). See the API reference for details: [zoom](/_articles/info/api/WebTwain_Viewer.md#zoom){:target="_blank"}. diff --git a/_articles/faq/separate-license-for-addon.md b/_articles/faq/separate-license-for-addon.md index c5bda8ee..74e0ca01 100644 --- a/_articles/faq/separate-license-for-addon.md +++ b/_articles/faq/separate-license-for-addon.md @@ -7,17 +7,13 @@ keywords: Dynamic Web TWAIN, Addon, separate, license breadcrumbText: Do I need a separate license for each addon? description: Do I need a separate license for each addon? date: 2021-11-29 18:33:59 +0800 -last_modified: 2022-06-10 04:40:03 +0800 +last_modified: 2026-01-22 13:17:23 -08:00 --- # Addon ## Do I need a separate license for each addon? -Yes, you need to purchase separate licenses for each addon. Please refer to our pricing page: Dynamic Web Twain Pricing - Dynamsoft. +Yes—each add-on requires its own license. See pricing at Dynamic Web TWAIN Pricing and the licensing guide at [Using License Keys](/_articles/general-usage/license.md){:target="_blank"}. -Multiple license keys can be separated with semicolons and included in the file dynamsoft.webtwain.config.js. - -Starting in Dynamic Web TWAIN 17.0, we added a new licensing mode for the Per Client Device license. By setting an organizationID/Handshake Code, the application does not need to change if multiple license items are added. - -Please check [here](/_articles/about/license.md){:target="_blank"} for more information on licenses and here for Organization ID and Handshake Code. +For per-client-device licenses, you can add an add-on license to the existing project without changing the license key string in your application. Organization ID/handshake details are in the Dynamsoft License Server terms here. diff --git a/_articles/faq/source-has-nothing-to-capture.md b/_articles/faq/source-has-nothing-to-capture.md index 179795ca..3e1afca6 100644 --- a/_articles/faq/source-has-nothing-to-capture.md +++ b/_articles/faq/source-has-nothing-to-capture.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Error Message breadcrumbText: Error Message - Source has nothing to capture description: Error Message - Source has nothing to capture date: 2022-10-12 16:32:41 +0800 -last_modified: 2022-10-12 18:16:58 +0800 +last_modified: 2026-01-22 13:19:23 -08:00 --- # Error Troubleshooting @@ -16,12 +16,8 @@ last_modified: 2022-10-12 18:16:58 +0800 ### Symptom -For Linux client OS, if ErrorCode or ErrorString is called after scanning, it returns the error code "1029" or string "Source has nothing to capture". Though the error appears, the scanning process has finished successfully. +On Linux, calling `ErrorCode`/`ErrorString` after a scan could return code 1029 with “Source has nothing to capture,” even though scanning completed successfully. ### Solution -It's a known issue in Linux OS. Since this error will not affect the scanning process, no further action is required. - -### Planning - -The issue is planned to be fixed in version 18.0. +The message was cosmetic only. It was fixed in Dynamic Web TWAIN 18.0. On 18.0 or later, no action is required. If you are on an earlier version and see 1029 despite a successful scan, you can ignore it or upgrade to 18.0+ to remove the message. diff --git a/_articles/faq/source-not-listed-on-linux.md b/_articles/faq/source-not-listed-on-linux.md index 37fc883a..8c4177cd 100644 --- a/_articles/faq/source-not-listed-on-linux.md +++ b/_articles/faq/source-not-listed-on-linux.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Dynamic Web TWAIN Service, installation, uninstalla breadcrumbText: Scanner source is listed on XSane application but not on my web application on Linux machines description: Scanner source is listed on XSane application but not on my web application on Linux machines date: 2022-04-14 02:51:15 +0800 -last_modified: 2022-10-21 14:05:54 +0800 +last_modified: 2025-03-31 00:00:00 +0800 --- View all FAQs about [Project Deployment and End-user Installation]( diff --git a/_articles/faq/upgrade-end-user-installations.md b/_articles/faq/upgrade-end-user-installations.md index e15bc209..24563233 100644 --- a/_articles/faq/upgrade-end-user-installations.md +++ b/_articles/faq/upgrade-end-user-installations.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Project Deployment and End-user Installation, upgra breadcrumbText: How do I upgrade the end-user installation for all end users once I upgrade my project? description: How do I upgrade the end-user installation for all end users once I upgrade my project? date: 2021-12-11 06:47:21 +0800 -last_modified: 2022-10-14 14:05:08 +0800 +last_modified: 2025-03-31 00:00:00 +0800 --- View all FAQs about [Project Deployment and End-user Installation]( diff --git a/_articles/faq/use-deprecated-technology.md b/_articles/faq/use-deprecated-technology.md index e487854b..4abfa529 100644 --- a/_articles/faq/use-deprecated-technology.md +++ b/_articles/faq/use-deprecated-technology.md @@ -21,3 +21,5 @@ Before Chrome stopped the support for NPAPI, Dynamic Web TWAIN added HTML5 suppo Dynamsoft has kept support for the ActiveX edition of Dynamic Web TWAIN for customers who must use IE 8 or 9. However, we encourage customers to move away from ActiveX whenever possible. Please check this page for more information on [Dynamic Web TWAIN & ActiveX: Dynamic Web TWAIN Development - About ActiveX ](/_articles/indepth/development/activex.md){:target="_blank"}. + +TODO: This FAQ seems very outdated. Are we still offering ActiveX versions? Please advice. \ No newline at end of file diff --git a/_articles/faq/what-does-dynamsoft-service-do-on-end-user-machine.md b/_articles/faq/what-does-dynamsoft-service-do-on-end-user-machine.md index feae4b28..da2b593d 100644 --- a/_articles/faq/what-does-dynamsoft-service-do-on-end-user-machine.md +++ b/_articles/faq/what-does-dynamsoft-service-do-on-end-user-machine.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Project Deployment and End-user Installation, Dynam breadcrumbText: What does the Dynamic Web TWAIN Service do on the end-user machine? description: What does the Dynamic Web TWAIN Service do on the end-user machine? date: 2021-12-11 06:47:21 +0800 -last_modified: 2022-10-21 14:05:54 +0800 +last_modified: 2025-03-31 00:00:00 +0800 --- View all FAQs about [Project Deployment and End-user Installation]( @@ -59,6 +59,8 @@ There are multiple files and folders in the service directory. Taking Windows se ### For the Service +TODO: Description for possible OCR files? + * `\cache\` : Data cached on the disk. Check out [Disk Caching](/_articles/extended-usage/buffer-caching.md#disk-caching){:target="_blank"}. * `\cert\` : The certificates used for SSL connection. Check out [How to change the certificates](/_articles/faq/change-dynamsoft-service-certificate.md){:target="_blank"}. * `\dump\` : Dump files in case the service crashes. diff --git a/assets/imgs/ProductKey-Expired.png b/assets/imgs/ProductKey-Expired.png deleted file mode 100644 index b46ff4d45146127e6334fe3b2e8b9572411889e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7550 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

y3(kF~4621WZLcbea| z@MOYI{*UUZyytX3jN!;>Ul9Q4c$GW=j?kC5rbS(4071+71NQW8Mzr~epXXzLq0h+k zSih1B$gBu}RDTY}rwTdWg%^}`ZteiyL+v`?t_fr4WG zv!H-`(ab5Bm;dd=7InQ%BKW5&0_6FiSd7u+Chn}s=lpbHpUP3qs$xB%{FnIpPwfuC zs`15M@f_$U#{b4(5c8sro2mi9MbIWx7mtoOxZkdbSM&!=0!`nHVhyP7A z{uhnyc|b^SD5o9Ss!{0hr1y~8lregtHv?eo``EQ2lQk$Omb+>H>f1PIdc`^LiZd7?#EP2TR zimwjZN^dS~_zu0py$twi|1?k)Sx#>4>+QLd$v12eVoHi?L*YP$2HX|S@n5U*2kdV- zNLTGk?Jt9SSSboQI?xyjG#u6~*DK;=iGYM@u{PXbxe^DtkW;6S)% zpg`K#6ZH;u!~bGh7VFg1e1qD9D`umz`O5p^Ie7)$I2!7K8dXbYX5#KShsc17h1UT` z!VM$htV?R7Vpga=Zk;cC;b?9I}re6AGuT_ z=aUyNtW_n|;@a};uQ^Hl5o0jJrMo-4&Oqp4M_2KlnnWN59%AuMy8UO6En0>l;|u%8 zH#grjDaakB6;UeAcN1vyzoplWu6K0Wi>`^ts!Zige5M_B4gH-e*^rh-ei2lI$9`+B|Wzd3_SPpiFW@3Hs=b(U74K zWqm}~CHy$MlTr@2lQReI1&(Wt4WFj;Q6)PATRaGqwgp$WFvBtWxisy!L6Jd=2*t>H zs+Mx*ok#&)gg^jsxppI>k>(Nvy9ml~f+OR*Ylzwu2D6s3@-}7A7^;=d-6zi$0-J>= zYoI-&VW2;;LB>=*wtC7L?EW`KI*Nj_+#BGWn3K#pb&z}8I~D3l0R0pc0?+{a(F-jEJje!R@L#e}Nj03H z79IspqaQcX{fBo^q%XsUEF*a_&WFJYjpvOCFCGLzhZE?m{ zJBD$d(N8lrLQ2nROc!OTX=+3<8Xm?cZI(}~fN=XUB6h2n<8ER^vO1KY&Wb&Y=B<+& z&SbydH?AOV`2YD8yPvC#w?~9(-1PfolW>)>`IrB+?pVFOR=O>v;U`Nl*$IsWmMKA& MrnV*}Mt6Sye;_r)`~Uy| diff --git a/assets/imgs/product-key-expired.png b/assets/imgs/product-key-expired.png index fe5c37ab07df2c86c6fc1ef21e07c42a2babaad6..fa025f45cee3c492bdae625db43e973c0682af3f 100644 GIT binary patch literal 13302 zcmc(`cT`hd)Fw^`X@W|V4kAbiARxUr1qA`=9i%8dA@q*Yt5oSyl-_%nE&&1vgx-5X zkq!wk;q{$wzWHX>?>B$UT9dWN<>u78&pyxD&))lnzg1HvA$&}Tfq_Bt>ZO7v1_qWt z`u_$3JoLBaM-d|Q1rwyHEQe7(Lbrpy!LgBjBa4Ai6-$IN$3@@YbAG80!oYaodiRI9 zXwB$>fguq2NI#GhIO%tHJB)bd&J+_~XWvwYUw zuL_`nSbqs_b)XsKf7>tF|M#%}QOxW4l!b+*Ibe5p*BQd&AK>J7oZfi3$!q!R3)@+% zWq-`d^*MC);Aa288Fg{ncXCp@R#U)n^2O$F|5O8MLhfse-W}1+&0?O(kdqU^GlVBO z@~n*+%1Ib3jqW>FU&qv6zzs1Ss2FL0f$??7Tf_}Pt(GMb{`zTf0=s}-Z6PiX50750 zEqOAxeo%691r~-{){q$_nMVY)>HDGVhVM=&ENP07lyyuD2g=6A^w!qal{U~wkLy$4 zBMX4t)O<8@zlG{}bGREl0hah^5zptWygF~cEyrR@p@kd9ncse6Eq*BOh7j5BxD{{5 zlE%1e+jx6(usmJ0R#;LZFR>VVb(Ox+JJ`1zi*8XUm*uf~Py7(R7yW1f?7caJ+}?|3 zO7Of727{-oEJIsg&iq|L?M}1=@(MOeQonxvdERmB+ex?Mz2tjNNq5N1+u(U@Jv20A zHkM0Sst;;t_0a#@D544FhCCNL>TJ&&8!gcoStb^)LqoJA@5JjPVg>a^ zKc3t90lM<)g^}ogAGPh8HsEsHdJMgcnceL80l;P09IZ>+`iwz#-HnRbU)B81>pw%C z#MSJ&&u1c zKKfkk{FrX_jI>$CH}?gWn~7RW{)IT{*^gU}N|gOTG&i=kBJ$&Efu6bX}XuUH)J`Co14ldS7k3 zaP+10H5WYLZth7S#Iy^BjB2FVMFPJ2r|yM8S*GW9zLy4%B8A+8q%maZlX>v{Mw^Mt z%Iqo^vKVBxU`s;H;T@-B53J3o+D>(;Yg^*hM7+8`DmxQk=rum}KP;~rYPbQ(Wyqtu ze@AWueSC0gSZfLw_rcCeEFraXCMDcxE{}^wf#^jZpw*;f} z{JGZg%DqW%9ajWnqL%1rSk*XvdmRKte*Tj6VU5pFf?0A0Tj z|FrV%gD{?Q#@C!dukN<#pr{|J@n~y$za0s%TDFPDmVr}AF~OfOZV%TI<=-aEwu~Z?Zd%Ns0D6-_gSm$ZI`m|^>9pfZntefd$qd?Xi#lOWH+!PF>a&) zNP!Q7DQb(+D5O~nzsh8v^bV}jaMOjI`i6#x@8H6?{*rm z$$RU+h-2u*L(ov>anMG52VLmx?sHm#hO|Ol)nx7})9s93t)au|!YOnY*BAZWM^Eto zGkUfo_j_ACkJt49Xsw>E+3KwZq5f`IV+AzYG;SmtjxOGi_*_DSEzvy>r3>FjS42Zx zaE;B9@^eq>{#Zs{5x$=L|3ZHL+e2aaU)rQ>_){aK)AXL|-PSNJZ#2kS?fi?i#l9gmx0Q_Qx1RU+i3GO(!QbM{gDp&ae~T+^t@*zVqH%A#2Fj9zv8D` zBbf>8qLmx}%pm0Nxl_#ix6wy}zsK3*uD_H1zf_#^=FJjCocsYHpdo1b1iX$EXw z^4Bj3@jZhUveanwJ+uE%b_RR`Ea_T?wwl*Q_=Awl(p%ANqZ=I1`K9FiR%eHo4#pu< zQ&NQts*A_gYqEL8w<8_pfxje>dR;e$r`>R7hY>1xL={PIGxsm4Sl>cF;w!s%BvY5+ zftBz@g_^vwpM9GVG(fK$63GA#P0I`40=R_NnoDhym;m& z{Lb~3o%F+Kuq;lfJJmItYOJ)*iA|wSD%jI7T_U)+vqy%yWEFE|aUxd6M+m!9UsL<% zQctI&?N5R;RpH3K{XI76^=Gl0d}rU0H! z42~hwsTY50N=Gqw`-*Pd_0yDecv1v(eUe;Ou#mNW=K<gLZTYGV!I{XD9 z>~oGCzNd65t~Lb<6T_AM$NC3CAgHF~^dom*`4ry+OC{Zuh2EmH_Bk&9A-z6znC-_B z3&xyX!T|@^6{viPm1$g$t zF`eqdvvQzN;#DmqU-Y?8W|{caTVRB_>?O%jO;{nK`vtEXn9lSNuW#T?cP z{9(itmQ%hGSE8m_psjrfYn1rJBzRKHnLFG_rt^Ur(U6`VN~TCx@+g~jrj|AmKYGKB zfQKPwNAl7@V?FsnT|EV}jK+=@e(gNA@J#5`RCK`f^k#CF?kj@w`|voLE|)mymFCE5NscJcATKX0?fg9#o1#&Q z-PaQ`O6d-A14r`vN@kNp{F#M}-&Ud{I@RQzNP37o+LkCs%H)IzFi3Gf8gOJ61E-eaCS91c0eFE z)=rOPm9>SoVCzb|emYF_kOwG&Fq+~z{q=EJ@u&S-Q)KO))5F8%O?pxldhs zx{Zmb4%W}p9;6w1`Nemeo|Hw5!%be0X@1Z5tdy6QRVR~1Jd9j2ED1uJfyrNrUn~k$ z(U5sLt(@bKo=dumX-|e701Rf66-7GnVRelX!l|P`74#gA(8n#=Clnc6mpqJ;0VFZJ z!hRL(CHthJ$#!#7v2XV~Zj#cSG6A zEZz3;hrDB16@U1OyMc3-+lG9h&zs3MkiWEIj%~pL5uWWN1P4(}w%4%WV!FT=2xz4e`M2tH}d76HaApNJ53>SRH=9zO`g$CBcaa!#b5$||ysEdU zIs-jL8nIsS%E$D2G&oA?UxnK=B;DKdJx5MydF=O{dX?yFVfY-e-2}6bu%Ab0AKj!s z;!)VAl$Ra~b$(Vx;RjJR896w84`4Svm}=rouBL-Lk5GUqDVEoCh;1GiPfT{_8hs!`&}eAqBRMA^kLnx^~=B|Ed>Wr z>VoBnV-vH2s^ln^nw2YB9O~G~p+Mob3CuTop(0S9fB|^JQS%XQ!;uYVamKZ$5StB0m|P+crql%w;|36|Pq7;+Zw(}mzxNAsdOgSaysH-uE2gA?H4&FZP^S0o zvy*?uBawr&=1h3UUV+3cGRLKwuu?FvaAP2mUg-tCn1{ndC7^tcUVxeHy0`Z}kQ;^2 zw41YDn2QFi^GN_Pi&l$;F9c{V*)=1xj%df8CmW znIpLWP)1!Yo?mKI`NV@3f5mo)jiZTrFM(1>6slPbJZjV!lLRb#3@d0=yPSOW5IdGR z#H<_%!_TvtSV%KWJq9Z^NmqHdxgIUE2fG*>ap+{_AGAWBC)KqDK>_~r&pnAi+c-an64$acXBuY!aM8 zSfdo<)RT;TByqnWId%#DYNigqH+X3YtP7NcW5@NUwynQWquC_1k~}Q~Wy}rlyJ$_O#r*I~7-4L- z5SBgZ`ixA-w1C`n?{Rn|C#iBn?4JPghw)m|tGigwme2-IS*DAON(eq-;%CP4(ETS5 z(&vp;Db~<_E5b~EP+WH<=kj3|Y2ZlbMfEnC;=d^a1mo~tyTtR*E?@uP1a=S-Q& zNSy&Z1_SFhX3hLmD(Of5P8_<*@2?v4b5Dng=^*N6+ZX(JBHI?#NVtY`cmOt}eSe zi+(j4lfs&w_BEtEgkMW0Y8no^t0d7!nYa+M#o%GXkLQz=5d9SjQFq%#>zO525=KnbvCy-%2k8_!6wXHl$3wP#?};3QO(W}}|0$O?}5|FVD>8q z9>;W$=?5!MjXUkW?K_}zUnSo6*&|-8y7AwnWANM)v|!JOB-hw@XM8BkPe$qIBMu#& zy^(cTgPtBTs^+K~skhS>)dHXngF_CD^(5;IBCElv13$t8`^n^SkiV4+7*&5*3}05C zkmqQHk7RVSRz$Bw3mg&Wsv3fE{n03vwj(R%JAtB=d*o93CAjK6qHA~g2emrkUW&hcLQ66XnW@fWr}jpym*Hw^8fs zu*-y|Y=MuYYeg@~W{-8^rqOoYmeZdXZqnhlZ~F(Bza=?x2P&^|z<II?!7_J%ALbuXxWUO9fTq)xITGcM*7|uB1)p$4t7?PG{ z1H_|2%-p>EhuFX}|EA901f1DuQ|`(PaKbf_DalXf_J)fydw6m<6RyNryJys(MQGTw zK?v3-@_bcPw(EesxL`17R8v+oe`%A z(aJHe%~1m$SsPD)x+T~CmcD0RAtUBSSA})MD9B5re)Dz4cF?lm{_CuM5vhKzSC(0< z_s32}FB^gVw*T={eR{3X((@n8xuE@gK=dXL)}33Qvk3Gkl1P=)7P z0U;Fg{S9bKJ}Jf*Rgg0LTr6Xubhf_DzX>Wns9mK-b=(Lm2Ls$2)$0J~qM+o2%iB75 zwOy|-WOJk}k8aU#hTG}bgYI}?!?2NV-b(Uje67hVMKWWd^<7=Zktj%Po_)d?F2Oa} z^{b6nG3gt8zFC_6i!|%)Qi+6V{TWnSH>&!<`BLG-h`seP_RyO2&l}Oz4+m?Og|f9% z3WOZ?#5PXkV8wODE~cfvAS0soGj;I%t^-F!@B{e9G_}ew$!Zb3YRPRU+N@V$xI$=AZ^C6HXttmL8D0 z-bFW*zU<5buCtHV8%04Su8-#vS*3r~@IF1SD*jH>e|5N=TARK9oKK3&KBe%r4K!;Q zsk_1BpYYN?LjGX;**wo2os3M@(^P5?Vt&a_Bnvu`D;#RuGG@#fOKB8kT)0A^Ro~>5 z5uX!VCVBs*M*N}0m@9491UoJgDHR)CDUa$Egm75pr^m9=XQ%03v}DXxcE@*21{_|I z@s&2k2t0b&JUHh~MuIhq>G|v{>8Ff2M>PK+6O@4e=+*p=U-@(F)M+x%4^aoD4>+r= zQNv;N7|g0rq2hQ;8bP^%_H~@Sc#7vHA1n}B<6yV~nyw%IsyRBn5FE$y#tcwXo@pF& zWGCO)@>8u_M!DlH{%j>HrRI8<$_9JE>wHq%09Nf>5^=g72{OibKcn}`mb zUSIx^64EwB4*U|`oMoZ)H{jN0w^6CZ@!gHkY4ttFV`=ob!Nns>S+ThK6uR<0E&}TBCu89|pVBPp&QA{$}acdv7-L zzt3%1E(m3>B(Z8WZG-`GI7x4w#%~)qNVpEt3G(xk^%Xbn6Fa^(a1~N3g_4|2Pk#H> z@Cl=G?`7))5wc zo`=g=8u|H8Jo^Q) zayjF&-vIT{a*XpHBASZkmyC*HlwVRfgN-(=zCctwO%@2HT#1t9 z(GI{+G7_&16HMwwj#@Ha`I4{do5MrByAze;3~v@=Rg!N$3x|)rUOAe~wP@m&x3i)1 zj8rP{6(6sPOUz~;Cx<82=b>2EVvkbSukhdP8}Jycc->Fb{3-^6z8%yMnK3TSJaUmCf;{y9v={mttA z;~Q<$!xY5bkb%=0`Pw{w#gw?|)Hnr|Y)%*-e8k=SYXFC3qOqTOWIr&z9-I z3!>veOp9;JpP4&7r7ieL#EbwstQGd38s|oOlqDB$d)>ph;OV1Ss9$5e*2xkqNux9h zZP?dezVcQ=xPhA(#=I$)%e>3Go9)mm3+p6FdLDZl;#uzN1JA%ZRr`(WO zBd)dJYsHs`2=JU9_JZm2pxzty!%SPOYeQ;GD+Nn5BYcX%h$4z!(n@u~2dEe8`K zKVnq!g{^M9*%$JxyZVvH84=hot$UjGVR`0*UC%0%NeM_f5VU6XhiY_x%t8DnyciCC zG1TuMY`i~!$-U?^U+0yzRW&mxaWnV00_aZiaJagd@Fofa5ER;qjt$GuGDP5f>t}?3 zA^HdKng?~m>%O|@B|QVb=eBJZUO6lfyqU&d(8+N=m~N{G^pUvyG$qTdF8pXuOs1v zs!?nUl~K%k%LrxlAJ(<$%Ro?Pul>j7>qw>ZvO_V7H87WFGf+LlrMTd%5{7}WolQ;r{WoMKsQhZ9pKT)k0H~3sf~-y?vRYpjzLizt2Z(WyRi?MA}Ws} z1xsDq3iaa|Cz^*mWzp_8;f4DImnv->6GD32d0Z~Kksd}R{0|;~F<>hr|6<*)1%Dn@ z%4d*G_yM8DL{B6Vn+|BOKC=_l^c;Gp&WQni$a@ zSH!M!>3|{9Egzqin&Nmcx4Fez^1k#2A7^4)lGifz&$NBzfq2up$E@EN4gkt_g2io1 zEmaDb1jrFoyYcX5 zCv;$g;}bb*;|MLz)YJNa5i2$vVzvoY(0jO{X-Aje?LuZnW*_TTd7r@fqsPy@nZI6o z$Fz3D9-h5{Z7%#+Z;{(yXzA!}K6`5ZsDfgf=D19zs&y?pwnfJ@6zsftz1KrUpBEYq z$cKFY{=NE0;ct{HcN|S43W!_L_Hf}lEp_oFZ|0Kro!kFy#<}%9fEKn|J$EDTID6nb zynWF2J^XKwQ0NyL!SF_~8(kC~S5JkpvavgT{)QSSH=LrD4+cv>37bm<8Mo}qzndSE z-t;}#=Dc#}+e&?Jdaq+cU#9wgS=puEL}nNuBs}o2x9tV*ZkzdoaKLdx=;x&m*}wl2 ziTM>S(D)k)RIs{aHPX?=N5T1*eY9iG-k7V#3rC=x>9z}AE{+bLhc8ECP;5fB zKbeBO=%8#HU$t}5SighQHGD+OlKYWATs|$vY&)ij>O{M1)vFb({&2rI#fD6K^uU*- z5v8@|8;Z?_ni2X-3M6*{3Elzt-eSbLy({|s7 zEq1L(w~v~li^^8(k6h1F=N4B#ik>b_rpy*|@D{eDWgs^IXjWKhVJvml3&7s;6qI7k zG`yT2*c#Db*t9Xu{xhqq>X^M}NjbH$g=$QWhj!%p>_LAaxhAFE^#`q(rVb{Z=jzCF*zQTq&zJaKzY`B`EmPDDjZ)ZP90DJs2($lXmvF0>N&quHsRa7z7l>6u* zJ!(E-sUI2DGUAg#Bi}{8?<-+McMjeLLvFTX1MXt-OC74cXkJpS3Tw}xhg#RnApQrF zG1~qQ){~j;`VXUN?_SlMu|IQmJJ#Gf>Go|PgrnOyNoN^1yBfRg&Gy&CsCQg@xb2J^ zqA3#L@8J*WOCvmPjnF2>HQq9iU!UF5qMwo8$h7*Uh_)5;ev6%93^)w}nbS_pWUsMb zx615a16WQ9ZdK_?j8yy`-U*Bdb(u#~AQ<6Rmyw!;@Lf+RQz-`BORE~GvtJn@~_gAMOZG#}&kWtHg4~H(}(%{aeJ^JaF8m z-|t289^D;1+EmXPmf`{M{$)v3i0B;`)I)_4z?CS{&}l@w)V}YT6_A4 zeJfPZ%#(w_SX{3%N!H53Ojz(!rJZ5AWSN7Zv|PE79DU&FT)ZJC`=f{78_t;?ySgbh zIDj_ygxt=Va7b9oodz!NqMG?@iGwVEiPMNtm#gJ@LKvQqM9I~ZLo$7S^6v>Emu-5< z8z9M?Jb^6Q8DV~ncASXQDV)gWy?bXxTx;HMhVye}L9te0ohnM=!vQ+{Eq0RZhp-i< zvL$U9$9dfHu<5dL#B|@|aY`szB2*hFY~e*f+f4f@+)+%3gqCcPMq{0_GCnUo?dT z;C(tT-k&L0co;ERYvu>YuDE$>Z{RG7rd95BgEZd{N1C8xuD^wBtDjCTecIkT&WvpG ziK#%9rwWTOx?isd*^2oyAWJEmuF?;OBH$p#pQnv;RlJNAOFPi98*s1JCv|;DQ4H55 zbbm^zSpcnO)WYm&u zc&}x-NeOQ2K38fIGYsLAKhKMBBq%8{XBBkGQg`5z3-HLW#OG(hVJ^acyzJHZ^?u(_ zp~%=Kse%?Y4W1kqN=j_@@NEx`k2>A>r_fSe8f;rqCMNtCHqg{PI31p0BKsQ_H}A*B zZ(sCwGlONc7-LJ>mS38kgZ!ebg7i25SUE1=ve)9G=zGG-MN$Hpf~b49sRK5}E1ws# zPVMZ=0Y2x619oeYAyzYVG8j#8sCp9(EX2_*^D!7unTyXAET)#KEe)0dWj++{1uy#G z>rl2bUX*QZ0wb>VrZwdPq+dj6=q~VTRo^dJ6_exNO3{(t`i4S=_rQd3kY4V1F2JTo zAoaroF4!}yhU1P?f-jqE_342Ai=EgAgi;&bFzi*rZpF`RBW%>NdM%<$2=6St+fSp;!;Gd?upG91^ z!@z{1w3(Z=R4P6``b};om>3vL0Rixkwa~Ao<3;8h%NqH=(ed1K)+fB1p%a5I(8&$} zY5Nlq9nqNHA@-B^wH&j;!})l_6r-D4#O)i&`oUKrcJooZPg%2VS;=ZfhRJfrrRvJa z3@cI6Ly7%}EffbnsZ1J05Vj$gB`tu>R@Z5U+4aZQP&cm=leBOSVa1o!rJ0 z!yqpGW=d|-o|0;!Mgu#4+8@v&%4BPIBXP?}13C#wGJ6-gU&UK6HcFdh7>WCNL>_ma zoyAJ@S;hTh)$>v<94%bIg~d-cly?@e)X}xQZcfptt+{}*6Z_^$**_eIa``JRkYL$T z5+eZmM@4gx(dS&ilesypTH0RG?eN~3^z8*kH7`o4T6$PW^q0-e0~-mC;CSX^*-Ydd zql>%nMS+2-nC~NRB3JmO1$a$+J&DJH%a9P-3qJ2I&07M~p@WC{^u`)$7S3xe+N$sC z8KUXZ-qjCbnefD-J>-PdHt~~^k{<7_b85l@6~ErE(Hv3tj9LRZKs6ZA8{O{p(xkah z6_9;z%f@x@)U?sPmV#TDb(>mJXy-z6qLI(6wrdXaTdj#{l-FZDy$e4+cDSd8+_Vt2 ztg}a+SAf#b|?+#Fap=T%*nK*vws zo?G4q>_5>5}xLJcjE~vebr=PH(?&af4=g$T~r8y`1!wZj#0Beux zUHdSZndiK0!-BOm4OJnrC%s7^k?@|URjPtN925x#5Pdb9Tp=o}YbZTYtu_n&ucCUS zI^|h$yL|kIsfp!g#Lc5?C7D}J+<^c)^l4^KZs;+zEDRe=lD3&xB{WFz-QP!OUUCRe zgZW~nD=!K-0(xcXs~R^|6c2M1d+nB5O?-*<4h^B`3LNoYXpUzKGkHeR?5x_()ehK{?^(PiZd{4n%!#_RZKjL~e7dIm{cz9|i7j*eM$bLi zLh_ZTa|Hj}Czs_XD(MexfW{NnX`$8N)Xh)3_t3<`!;RY0ad~Q6?qDqMY`96=hxZ+= zTRxH;xPD#M_p-2dik=FTZw)y3C`@_38FVv&{BBWSz4I1_+4_bu!&9`41GW6on-6Py z-$*iVvP;=rA4E+n=DIytUiSj=@;-AKIb?dE2IN*|$f_}X?pp`w9w2llHQ5-LGmL%+ zm#l{^26LdID2Mx@ml_lOTfx%@gV_Sg-v}X+5$p@BN^=dY^hBb^H)2Aij|?o8J|8*m zMX{2B+=6Kj#swSJ{-_DsP5g)#-mZfd9BDZ=@dk`w3Rp*GD8~jG613n2drU2kC`BoS z__#rkrCY=12>K`txu%N26Y3%^QsDJF)BDj2_wp?i|*>935B%%7+2+S{f?%*r_WwOIM zTi4g~b3kSJa^d?lEvM{yt%K%<8fLl%*DCCsLH*aCRGjakWmMCyKacjL z6cBYZ%WxtxV{T|()5qN%)GO}E-$%++iLjPNweU-=%a;ddC1O%bd&&xn=MU3@2{%c{ z3&MUfQY5oG+s)~iJt-|}b~@{Wd@&YHR#;Eo@{^;2iR0%3-~wBR11;I2rrWQz1Aj7Z zn77Y23d97Q$mw>Jrd*v_=bLgDKIrqt&}E$(_jhUb4hPU|EU9mIeQeelTvN^J*KKdd zfbykO?DGB1RE_w14YU83O0)bw$Rhp!Nm2bb$@DJ0lxprjzp;`lF@5wuy^r!=GJyY= d*Hv!s%g}h_BdUN+=y!E6UMZ?6l*^d~{Wtggc;f&7 literal 27300 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 X1%`DFgWXHB)GK*uWvL2@AO8OXtYNKw From 3f6c31fd55e7c0cd2532347d92d0ed2798552a9c Mon Sep 17 00:00:00 2001 From: Doby2333 Date: Fri, 23 Jan 2026 06:42:33 -0800 Subject: [PATCH 2/4] Update FAQ articles: modify last_modified dates, enhance content clarity, and remove outdated entries. --- _articles/faq/XMLHttpRequest-cannot-load.md | 12 +++++---- _articles/faq/acquireimage-sync-or-async.md | 3 +-- ...f-your-camera-is-MediaDevices-compliant.md | 27 ------------------- _articles/faq/license-limit-reached.md | 6 ++--- _articles/faq/use-deprecated-technology.md | 12 +++------ ...ynamsoft-service-do-on-end-user-machine.md | 2 -- 6 files changed, 13 insertions(+), 49 deletions(-) delete mode 100644 _articles/faq/how-to-test-if-your-camera-is-MediaDevices-compliant.md diff --git a/_articles/faq/XMLHttpRequest-cannot-load.md b/_articles/faq/XMLHttpRequest-cannot-load.md index 6ad1a59f..cc1c716f 100644 --- a/_articles/faq/XMLHttpRequest-cannot-load.md +++ b/_articles/faq/XMLHttpRequest-cannot-load.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Error Troubleshooting, XMLHttpRequest breadcrumbText: XMLHttpRequest cannot load XXX description: XMLHttpRequest cannot load XXX date: 2021-12-03 23:26:46 +0800 -last_modified: 2022-06-02 15:30:49 +0800 +last_modified: 2026-01-23 06:35:12 -08:00 --- # Error Troubleshooting @@ -28,7 +28,7 @@ You are uploading or downloading to/from a web server which is in a different do ### Solution -Try uploading to the same domain or update the server side configuration to allow cross domain requests. If you are using IIS, you can refer to the following configuration. +Try uploading to the same domain or update the server-side configuration to allow cross-domain requests. If you are using IIS, you can refer to the following configuration. ```xml @@ -49,6 +49,8 @@ Try uploading to the same domain or update the server side configuration to allo > > If you are downloading a file, you might need to clear the browser cache because a cached file will not be requested again from the server, thus still no 'Access-Control-Allow-Origin' header will be presented. > -> If you are using Windows Authentication, you may need to change the default setting of `withCredentials` in the `dynamsoft.webtwain.initiate.js` file. To do that, open the JS file, find `withCredentials:false` and change it to `withCredentials:true` . - -TODO: I can no longer find the keyword `withCredentials:false` in the latest `dynamsoft.webtwain.initiate.js`, it is now `withCredentials:!1`. Please advise on how this FAQ needs to be changed, or if it is still necessary at all. \ No newline at end of file +> If you need to send cookies/credentials (e.g., Windows Authentication), enable credentials via code: +> +> ```javascript +> DWTObject.HTTPRequestswithCredentials = true; // adds withCredentials:true on upload requests +> ``` diff --git a/_articles/faq/acquireimage-sync-or-async.md b/_articles/faq/acquireimage-sync-or-async.md index 4cd750ca..6d135389 100644 --- a/_articles/faq/acquireimage-sync-or-async.md +++ b/_articles/faq/acquireimage-sync-or-async.md @@ -15,5 +15,4 @@ last_modified: 2022-06-10 04:40:03 +0800 ## Is the AcquireImage() method synchronous or asynchronous? [AcquireImage()](/_articles/info/api/WebTwain_Acquire.md#acquireimage){:target="_blank"} is an asynchronous method, regardless of whether it includes a callback function or not. - -TODO: Needs clarification on the different APIs. I think it would be better that the differences are addressed in API documentation rather than a separate FAQ. \ No newline at end of file +b \ No newline at end of file diff --git a/_articles/faq/how-to-test-if-your-camera-is-MediaDevices-compliant.md b/_articles/faq/how-to-test-if-your-camera-is-MediaDevices-compliant.md deleted file mode 100644 index 81add800..00000000 --- a/_articles/faq/how-to-test-if-your-camera-is-MediaDevices-compliant.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -layout: default-layout -noTitleIndex: true -needAutoGenerateSidebar: true -title: How to test if your camera is MediaDevices compliant -keywords: Dynamic Web TWAIN, MediaDevices, Camera -breadcrumbText: How to test if your camera is MediaDevices compliant -description: How to test if your camera is MediaDevices compliant -date: 2021-07-14 18:55:57 +0800 -last_modified: 2022-06-02 15:30:49 +0800 ---- - -# Capture/Image Source - -## How to test if your camera is MediaDevices compliant? - -- [Recommended] Take advantage of our official demo page - - - Open the demo page - - - Make sure the camera shows up in the device list - -![Hardware-Scanners-Cameras-11](/assets/imgs/Hardware-Scanners-Cameras-11.png) - -- Try showing the video stream and capturing a frame to see if it works without any errors - -TODO: This demo seems not working with latest version. Please advice. \ No newline at end of file diff --git a/_articles/faq/license-limit-reached.md b/_articles/faq/license-limit-reached.md index 34a8c657..01793dd4 100644 --- a/_articles/faq/license-limit-reached.md +++ b/_articles/faq/license-limit-reached.md @@ -7,15 +7,13 @@ keywords: Dynamic Web TWAIN, Licensing and Purchase, license limit reached breadcrumbText: What if I reach the limit of the granted number of license seats? description: What if I reach the limit of the granted number of license seats? date: 2021-12-04 02:34:30 +0800 -last_modified: 2022-10-21 14:05:54 +0800 +last_modified: 2026-01-23 06:37:36 -08:00 --- # Licensing and Purchase ## What if I reach the limit of the granted number of license seats? -For Per Client Device or Per Page licensing model, we offer some additional quota at no cost in case you can't extend or expand the license in time. For more information please refer to Grace Stage. To avoid running out of licensed seats suddenly, Dynamsoft sends notification emails automatically to licensees about the status of the license. Please refer to Usage Alerts. +For Per Client Device or Per Page licensing model, we offer some additional quota at no cost in case you can't extend or expand the license in time. For details, see What happens if my license runs out?. To avoid running out of licensed seats suddenly, Dynamsoft sends notification emails automatically to licensees about the status of the license. Please refer to Usage Alerts. For other licensing models, please refer to the contract or agreement you signed or contact your account manager for help. - -TODO: Link to **Grace Stage** is not available. Please advice. \ No newline at end of file diff --git a/_articles/faq/use-deprecated-technology.md b/_articles/faq/use-deprecated-technology.md index 4abfa529..43091ca4 100644 --- a/_articles/faq/use-deprecated-technology.md +++ b/_articles/faq/use-deprecated-technology.md @@ -7,19 +7,13 @@ keywords: Dynamic Web TWAIN, Security, end user, deprecated, NPAPI, ActiveX breadcrumbText: Does the Dynamic Web TWAIN SDK use any deprecated technologies like NPAPI or ActiveX? description: Does the Dynamic Web TWAIN SDK use any deprecated technologies like NPAPI or ActiveX? date: 2021-11-29 18:33:59 +0800 -last_modified: 2022-06-10 04:40:03 +0800 +last_modified: 2026-01-23 06:40:36 -08:00 --- # Security ## Does the Dynamic Web TWAIN SDK use any deprecated technologies like NPAPI or ActiveX? -Dynamic Web TWAIN no longer uses the NPAPI technology, but has kept support for the ActiveX edition. +Dynamic Web TWAIN no longer uses NPAPI. ActiveX support was removed starting in v19.0 (see the [Removed Features](/_articles/info/schedule/Stable.md#removed-features){:target="_blank"} in the release notes). -Before Chrome stopped the support for NPAPI, Dynamic Web TWAIN added HTML5 support which enables web scanning without the need for the NPAPI technology. - -Dynamsoft has kept support for the ActiveX edition of Dynamic Web TWAIN for customers who must use IE 8 or 9. However, we encourage customers to move away from ActiveX whenever possible. - -Please check this page for more information on [Dynamic Web TWAIN & ActiveX: Dynamic Web TWAIN Development - About ActiveX ](/_articles/indepth/development/activex.md){:target="_blank"}. - -TODO: This FAQ seems very outdated. Are we still offering ActiveX versions? Please advice. \ No newline at end of file +We added HTML5 support long before Chrome dropped NPAPI, so web scanning remains supported without deprecated tech. Customers should migrate off ActiveX; modern versions require the HTML5 edition. diff --git a/_articles/faq/what-does-dynamsoft-service-do-on-end-user-machine.md b/_articles/faq/what-does-dynamsoft-service-do-on-end-user-machine.md index da2b593d..c5fd1122 100644 --- a/_articles/faq/what-does-dynamsoft-service-do-on-end-user-machine.md +++ b/_articles/faq/what-does-dynamsoft-service-do-on-end-user-machine.md @@ -59,8 +59,6 @@ There are multiple files and folders in the service directory. Taking Windows se ### For the Service -TODO: Description for possible OCR files? - * `\cache\` : Data cached on the disk. Check out [Disk Caching](/_articles/extended-usage/buffer-caching.md#disk-caching){:target="_blank"}. * `\cert\` : The certificates used for SSL connection. Check out [How to change the certificates](/_articles/faq/change-dynamsoft-service-certificate.md){:target="_blank"}. * `\dump\` : Dump files in case the service crashes. From 3e5bfc83c34c20223e8def4be3edb1a915cbb239 Mon Sep 17 00:00:00 2001 From: Louie-Dynamsoft Date: Sun, 1 Feb 2026 19:21:22 -0800 Subject: [PATCH 3/4] Update acquireimage-sync-or-async FAQ --- _articles/faq/acquireimage-sync-or-async.md | 1 - 1 file changed, 1 deletion(-) diff --git a/_articles/faq/acquireimage-sync-or-async.md b/_articles/faq/acquireimage-sync-or-async.md index 6d135389..9cbd5ebc 100644 --- a/_articles/faq/acquireimage-sync-or-async.md +++ b/_articles/faq/acquireimage-sync-or-async.md @@ -15,4 +15,3 @@ last_modified: 2022-06-10 04:40:03 +0800 ## Is the AcquireImage() method synchronous or asynchronous? [AcquireImage()](/_articles/info/api/WebTwain_Acquire.md#acquireimage){:target="_blank"} is an asynchronous method, regardless of whether it includes a callback function or not. -b \ No newline at end of file From 8acbf8b5a4848cae4995c2ad8c6774d5a6c4e83a Mon Sep 17 00:00:00 2001 From: tony-xlh Date: Mon, 2 Feb 2026 13:34:14 +0800 Subject: [PATCH 4/4] remove deleted articles from faq\index.md --- _articles/faq/index.md | 56 ++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/_articles/faq/index.md b/_articles/faq/index.md index 1ab74982..97584b20 100644 --- a/_articles/faq/index.md +++ b/_articles/faq/index.md @@ -26,35 +26,33 @@ description: Dynamic Web TWAIN SDK Documentation FAQ 4. [How to test if your scanner supports ICA scanning on Mac OS?](/_articles/faq/how-to-test-if-your-scanner-supports-ICA-scanning-on-Mac-OS.md) 5. [How to test if your device is SANE compliant?](/_articles/faq/how-to-test-if-your-device-is-SANE-compliant.md) 6. [How to test if your camera is DirectShow compliant?](/_articles/faq/how-to-test-if-your-camera-is-DirectShow-compliant.md) -7. [How to test if your camera is MediaDevices compliant?](/_articles/faq/how-to-test-if-your-camera-is-MediaDevices-compliant.md) -8. [Can I set scanning settings without using the default scanner's UI? What pre-scanning settings do you support?](/_articles/faq/setting-scan-settings-without-ui.md) -9. [Can I hide offline scanner devices from the select source list?](/_articles/faq/hide-offline-scanners-from-source-list.md) -10. [Can I hide webcam devices from the select source list?](/_articles/faq/hide-webcam-from-source-list.md) -11. [What are the differences between TWAIN and WIA?](/_articles/faq/difference-between-Twain-and-wia.md) -12. [How to exclude WIA sources in the source list?](/_articles/faq/how-to-exclude-wia-sources-in-the-source-list.md) -13. [How can I set the last selected source as the default source for an end user?](/_articles/faq/last-selected-sourcename.md) -14. [How can I limit all users to use a specific scanner model?](/_articles/faq/limit-to-specific-scanner.md) -15. [Can the Dynamic Web TWAIN SDK automatically remove blank pages during the document scanning process?](/_articles/faq/remove-blank-page-automatically.md) -16. [Can the Dynamic Web TWAIN SDK automatically rotate upside-down pages during the document scanning process?](/_articles/faq/automatically-rotate-upside-down-pages.md) -17. [Can the Dynamic Web TWAIN SDK automatically detect borders of the scanned document and crop it out?](/_articles/faq/automatically-detect-border.md) -18. [Can I set my document scanner to scan x number of pages instead of all pages from the automatic document feeder (ADF)?](/_articles/faq/scan-x-pages-from-automatic-document-feeder.md) -19. [Can the Dynamic Web TWAIN SDK detect whether papers exist on the flatbed?](/_articles/faq/detect-paper-on-flatbed.md) -20. [How can I get a list of supported resolution/DPI values from the document scanner?](/_articles/faq/list-supported-resolution-DPI.md) -21. [How can I use a custom capability of my scanner hardware when there is no direct API to set it?](/_articles/faq/custom-capability.md) -22. [Is there a limit on the number of pages I can scan at a time? Where do you store them after scanning?](/_articles/faq/limit-on-scanned-pages.md) -23. [Document scanning via the Dynamic Web TWAIN SDK is slower than using the native scanner application. How can I speed it up?](/_articles/faq/document-scanning-slow-than-native.md) -24. [Can I use built-in or USB webcam to capture document?](/_articles/faq/use-usb-webcam-to-capture.md) -25. [Can I import existing images or PDF documents using the Dynamic Web TWAIN SDK?](/_articles/faq/import-existing-documents-or-images.md) -26. [Can I download an image from a FTP or HTTP server using the Dynamic Web TWAIN SDK?](/_articles/faq/download-image-from-FTP-or-HTTP-server.md) -27. [How can I trigger an automatic workflow right after document scanning or image importing?](/_articles/faq/trigger-automatic-workflow-after-scanning.md) -28. [Do you support capturing documents from mobile cameras?](/_articles/faq/support-capture-from-mobile-camera.md) -29. [How to scan documents on mobile devices?](/_articles/faq/how-to-scan-documents-on-mobile-devices.md) -30. [Do you support fingerprint or medical imaging devices?](/_articles/faq/fingerprint-medical-imaging.md) -31. [What is the earliest iPhone model that your SDK supports?](/_articles/faq/earliest-iphone-model-supported.md) -32. [Is the AcquireImage() method synchronous or asynchronous?](/_articles/faq/acquireimage-sync-or-async.md) -33. [Why is my scanner not shown or not responding in the browser?](/_articles/faq/scanner-not-shown-or-not-responding-in-the-browser.md) -34. [How can I support WIA scanner drivers in my application?](/_articles/faq/support-wia-scanner-drivers.md) -35. [Why are my images coming out distorted in MacOS Sonoma?](/_articles/faq/macos-sonoma-distorted-scans.md) +7. [Can I set scanning settings without using the default scanner's UI? What pre-scanning settings do you support?](/_articles/faq/setting-scan-settings-without-ui.md) +8. [Can I hide offline scanner devices from the select source list?](/_articles/faq/hide-offline-scanners-from-source-list.md) +9. [Can I hide webcam devices from the select source list?](/_articles/faq/hide-webcam-from-source-list.md) +10. [What are the differences between TWAIN and WIA?](/_articles/faq/difference-between-Twain-and-wia.md) +11. [How to exclude WIA sources in the source list?](/_articles/faq/how-to-exclude-wia-sources-in-the-source-list.md) +12. [How can I set the last selected source as the default source for an end user?](/_articles/faq/last-selected-sourcename.md) +13. [How can I limit all users to use a specific scanner model?](/_articles/faq/limit-to-specific-scanner.md) +14. [Can the Dynamic Web TWAIN SDK automatically remove blank pages during the document scanning process?](/_articles/faq/remove-blank-page-automatically.md) +15. [Can the Dynamic Web TWAIN SDK automatically rotate upside-down pages during the document scanning process?](/_articles/faq/automatically-rotate-upside-down-pages.md) +16. [Can the Dynamic Web TWAIN SDK automatically detect borders of the scanned document and crop it out?](/_articles/faq/automatically-detect-border.md) +17. [Can I set my document scanner to scan x number of pages instead of all pages from the automatic document feeder (ADF)?](/_articles/faq/scan-x-pages-from-automatic-document-feeder.md) +18. [Can the Dynamic Web TWAIN SDK detect whether papers exist on the flatbed?](/_articles/faq/detect-paper-on-flatbed.md) +19. [How can I get a list of supported resolution/DPI values from the document scanner?](/_articles/faq/list-supported-resolution-DPI.md) +20. [How can I use a custom capability of my scanner hardware when there is no direct API to set it?](/_articles/faq/custom-capability.md) +21. [Is there a limit on the number of pages I can scan at a time? Where do you store them after scanning?](/_articles/faq/limit-on-scanned-pages.md) +22. [Document scanning via the Dynamic Web TWAIN SDK is slower than using the native scanner application. How can I speed it up?](/_articles/faq/document-scanning-slow-than-native.md) +23. [Can I use built-in or USB webcam to capture document?](/_articles/faq/use-usb-webcam-to-capture.md) +24. [Can I import existing images or PDF documents using the Dynamic Web TWAIN SDK?](/_articles/faq/import-existing-documents-or-images.md) +25. [Can I download an image from a FTP or HTTP server using the Dynamic Web TWAIN SDK?](/_articles/faq/download-image-from-FTP-or-HTTP-server.md) +26. [How can I trigger an automatic workflow right after document scanning or image importing?](/_articles/faq/trigger-automatic-workflow-after-scanning.md) +27. [Do you support capturing documents from mobile cameras?](/_articles/faq/support-capture-from-mobile-camera.md) +28. [How to scan documents on mobile devices?](/_articles/faq/how-to-scan-documents-on-mobile-devices.md) +29. [Do you support fingerprint or medical imaging devices?](/_articles/faq/fingerprint-medical-imaging.md) +30. [Is the AcquireImage() method synchronous or asynchronous?](/_articles/faq/acquireimage-sync-or-async.md) +31. [Why is my scanner not shown or not responding in the browser?](/_articles/faq/scanner-not-shown-or-not-responding-in-the-browser.md) +32. [How can I support WIA scanner drivers in my application?](/_articles/faq/support-wia-scanner-drivers.md) +33. [Why are my images coming out distorted in MacOS Sonoma?](/_articles/faq/macos-sonoma-distorted-scans.md) ## Image Viewer