diff --git a/_articles/faq/XMLHttpRequest-cannot-load.md b/_articles/faq/XMLHttpRequest-cannot-load.md index 205f5021..8077c1eb 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 +0000 -last_modified: 2026-01-23 06:35:12 -08:00 +last_modified: 2026-07-30 09:33:44 +0000 --- # Error Troubleshooting @@ -48,9 +48,3 @@ Try uploading to the same domain or update the server-side configuration to allo > After updating the server configuration file, you'll need to restart the server (i.e. IIS). > > 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 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/additional-form-fields.md b/_articles/faq/additional-form-fields.md deleted file mode 100644 index e15c184f..00000000 --- a/_articles/faq/additional-form-fields.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -layout: default-layout -noTitleIndex: true -needAutoGenerateSidebar: true -title: How can I send additional form fields with images to my server or database? -keywords: Dynamic Web TWAIN, Document Saving, additional form fields -breadcrumbText: How can I send additional form fields with images to my server or database? -description: How can I send additional form fields with images to my server or database? -date: 2021-11-29 18:33:59 +0000 -last_modified: 2024-09-19 08:47:35 +0000 ---- - -# Document Saving - -## How can I send additional form fields with images to my server or database? - -You can use [SetHTTPFormField](/_articles/info/api/WebTwain_IO.md#sethttpformfield){:target="_blank"} to set meta data as form fields and use [HTTPUpload](/_articles/info/api/WebTwain_IO.md#httpupload){:target="_blank"} to send it to the server side with the scanned document. - -```javascript -// Clear old fields before adding new ones -DWTObject.ClearAllHTTPFormField(); -DWTObject.SetHTTPFormField("FileType", "Insurance Doc"); -``` - -You can check out this demo project for sending additional form fields when uploading the scanned document. - -[SetHTTPFormField](/_articles/info/api/WebTwain_IO.md#sethttpformfield){:target="_blank"} can also be used to send image data in base64 or BLOB to the server side. - -By design, the method [HTTPUpload()](/_articles/info/api/WebTwain_IO.md#httpupload){:target="_blank"} only contains one file. But as it essentially sends an HTTP form to the server, you can attach multiple files in that form using the methods [ConvertToBlob()](/_articles/info/api/WebTwain_IO.md#converttoblob){:target="_blank"} and [SetHTTPFormField()](/_articles/info/api/WebTwain_IO.md#sethttpformfield){:target="_blank"} . -Check out the following snippet on how it is done. NOTE that the method [HTTPUpload()](/_articles/info/api/WebTwain_IO.md#httpupload){:target="_blank"} only has 3 parameters as it doesn't need to specify a file anymore. - -```javascript -/** - * Upload the images specified by their indices in the specified file type as separate files. - * @param indices Specify the images - * @param type Specify the file type - */ -function uploadSeparateFiles(indices, type) { - var protocol = Dynamsoft.Lib.detect.ssl ? "https://" : "http://", - port = window.location.port === "" ? 80 : window.location.port, - actionPage = "/upload.aspx"; - // path to the server-side script - var url = protocol + window.location.hostname + ":" + port + actionPage; - if (DWTObject) { - var done = 0, - count = indices.length; - var toBlob = function (index) { - var fieldName = "SampleFile_" + index; - var fileName = fieldName + getExtension(type); - DWTObject.ConvertToBlob( - [index], - type, - function (result, _indices, type) { - DWTObject.SetHTTPFormField(fieldName, result, fileName); - done++; - if (done === count) { - DWTObject.HTTPUpload( - url, - function () { - console.log("Success"); - }, - function (errCode, errString, responseStr) { - console.log(errString); - } - ); - } else { - toBlob(indices[done]); - } - }, - function (errorCode, errorString) { - console.log(errorString); - } - ); - }; - toBlob(indices[done]); - } -} -``` 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 e251794f..a2a48b64 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 +0000 -last_modified: 2026-01-21 15:24:26 -08:00 +last_modified: 2026-07-30 09:31:25 +0000 --- View all FAQs about [Project Deployment and End-user Installation]( @@ -15,8 +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"}, 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. +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, 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. +When you upgrade Dynamic Web TWAIN, plan to reinstall the service on client machines if required. See [Dynamic Web TWAIN Service Configuration](/_articles/extended-usage/dynamsoft-service-configuration.md){:target="_blank"} for details. -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"}. +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. See the [Remote Scan documentation](https://www.dynamsoft.com/remote-scan/docs/introduction/){:target="_blank"} for details on how to enable it. diff --git a/_articles/faq/create-thumbnail-viewer-to-navigate-images.md b/_articles/faq/create-thumbnail-viewer-to-navigate-images.md index 7ebdc727..e7964d43 100644 --- a/_articles/faq/create-thumbnail-viewer-to-navigate-images.md +++ b/_articles/faq/create-thumbnail-viewer-to-navigate-images.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Image Viewer, navigate images, thumbnail viewer breadcrumbText: How can I create a thumbnail viewer to view images? description: How can I create a thumbnail viewer to view images? date: 2021-12-09 11:34:50 +0000 -last_modified: 2024-09-19 08:47:35 +0000 +last_modified: 2026-07-30 09:44:34 +0000 --- # Image Viewer @@ -35,10 +35,9 @@ var thumbnailViewerSettings = { allowKeyboardControl: true, allowPageDragging: true, allowResizing: false, - showPageNumber: false, pageBackground: "transparent", pageBorder: "1px solid rgb(238, 238, 238)", - hoverBackground: "rgb(239, 246, 253)", + hoverPageBackground: "rgb(239, 246, 253)", hoverPageBorder: "1px solid rgb(238, 238, 238)", placeholderBackground: "rgb(251, 236, 136)", selectedPageBorder: "1px solid rgb(125,162,206)", @@ -47,4 +46,5 @@ var thumbnailViewerSettings = { var thumbnail = DWTObject.Viewer.createThumbnailViewer(thumbnailViewerSettings); thumbnail.show(); +thumbnail.updatePageNumberStyle({ visibility: "hidden" }); // Hide the page number on each thumbnail ``` diff --git a/_articles/faq/customize-ui-elements-of-image-editor.md b/_articles/faq/customize-ui-elements-of-image-editor.md index a89f65b2..366f4017 100644 --- a/_articles/faq/customize-ui-elements-of-image-editor.md +++ b/_articles/faq/customize-ui-elements-of-image-editor.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, UI Customization, customize, ui elements breadcrumbText: Can I customize UI elements of the built-in image editor? description: Can I customize UI elements of the built-in image editor? date: 2021-12-08 03:32:59 +0000 -last_modified: 2024-09-19 08:47:35 +0000 +last_modified: 2026-07-29 08:01:45 +0000 --- # UI Customization @@ -18,37 +18,40 @@ Yes, you can perform various customizations on the image editor. Some of such cu ### Can I change the language of the Editor? -Yes, as shown in the sample code below, you can use the parameters `titles` and `dialogText` to specify the language used in the editor. +Yes, as shown in the sample code below, you can use the parameters `buttons.titles` and `dialogText` to specify the language used in the editor. ```javascript - titles: { - 'previous': 'Previous Image', - 'next': 'Next Image', - 'print': 'Print Image', - 'scan': 'Scan Documents', - 'load': 'Load Local Images' + buttons: { + titles: { + 'next': 'Next Image', + 'print': 'Print Image', + 'scan': 'Scan Documents', + 'load': 'Load Local Images' + } } ``` ```javascript dialogText: { - dlgRotateAnyAngle: ['Angle :', 'Interpolation:', 'Keep size', ' OK ', 'Cancel'], - dlgChangeImageSize: ['New Height :', 'New Width :', 'Interpolation method:', ' OK ', 'Cancel'], - saveChangedImage: ['You have changed the image, do you want to keep the change(s)?', ' Yes ', ' No '], - selectSource: ['Select Source:', 'Select', 'Cancel', 'There is no source available'] - } + dlgRotateAnyAngle: ['Angle :', 'Interpolation:', 'Keep size', ' OK ', 'Cancel'], + dlgChangeImageSize: ['New Height :', 'New Width :', 'Interpolation method:', ' OK ', 'Cancel'], + saveChangedImage: ['You have changed the image, do you want to keep the change(s)?', ' Yes ', ' No '], + selectSource: ['Select Source:', 'Select', 'Cancel', 'There is no source available'] + } ``` ### Can I remove or add buttons on the toolbar of the Editor? -While you can use `visibility` (as shown in the sample code below) to remove a default button(s), currently you cannot add a custom button. +While you can use `buttons.visibility` (as shown in the sample code below) to remove a default button(s), currently you cannot add a custom button. ```javascript -visibility: { - 'scan': true, - 'load': true, - 'print': false, - 'removeall': true +buttons: { + visibility: { + 'scan': true, + 'load': true, + 'print': false, + 'removeall': true + } } ``` diff --git a/_articles/faq/detect-paper-on-flatbed.md b/_articles/faq/detect-paper-on-feeder.md similarity index 81% rename from _articles/faq/detect-paper-on-flatbed.md rename to _articles/faq/detect-paper-on-feeder.md index 34e4c7da..b70d71d0 100644 --- a/_articles/faq/detect-paper-on-flatbed.md +++ b/_articles/faq/detect-paper-on-feeder.md @@ -2,17 +2,17 @@ layout: default-layout noTitleIndex: true needAutoGenerateSidebar: true -title: Can the Dynamic Web TWAIN SDK detect whether papers exist on the flatbed? -keywords: Dynamic Web TWAIN, Capture/ Image Source, detect paper, flatbed -breadcrumbText: Can the Dynamic Web TWAIN SDK detect whether papers exist on the flatbed? -description: Can the Dynamic Web TWAIN SDK detect whether papers exist on the flatbed? +title: Can the Dynamic Web TWAIN SDK detect whether papers exist in the feeder? +keywords: Dynamic Web TWAIN, Capture/ Image Source, detect paper, feeder, ADF +breadcrumbText: Can the Dynamic Web TWAIN SDK detect whether papers exist in the feeder? +description: Can the Dynamic Web TWAIN SDK detect whether papers exist in the feeder? date: 2021-12-08 03:01:32 +0000 -last_modified: 2024-09-19 08:47:35 +0000 +last_modified: 2026-07-30 10:01:04 +0000 --- # Capture/Image Source -## Can the Dynamic Web TWAIN SDK detect whether papers exist on the flatbed? +## Can the Dynamic Web TWAIN SDK detect whether papers exist in the feeder? Yes. You can use [IfFeederLoaded](/_articles/info/api/WebTwain_Acquire.md#iffeederloaded){:target="_blank"} API to inspect whether papers are loaded in the feeder of your current scanner. Before calling this API, please use [IfPaperDetectable](/_articles/info/api/WebTwain_Acquire.md#ifpaperdetectable){:target="_blank"} to inspect whether your current scanner hardware has a sensor to detect papers. @@ -21,6 +21,7 @@ Code Example: ```javascript DWTObject.SelectSource(); DWTObject.OpenSource(); +DWTObject.IfFeederEnabled = true; if(DWTObject.IfPaperDetectable) if(DWTObject.IfFeederLoaded) DWTObject.AcquireImage(); diff --git a/_articles/faq/error-message-product-key-expired.md b/_articles/faq/error-message-product-key-expired.md index 7e659322..d3d71685 100644 --- a/_articles/faq/error-message-product-key-expired.md +++ b/_articles/faq/error-message-product-key-expired.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Error Troubleshooting, product key, expired 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 +0000 -last_modified: 2022-06-10 04:40:03 +0000 +last_modified: 2026-07-29 08:01:45 +0000 --- # Error Troubleshooting @@ -27,5 +27,5 @@ The trial product key has expired. ### Resolution Follow the instructions on that pop-up which are: -1. Request a new trial product key here. Refer to [this article](/_articles/indepth/development/upgrade.md#update-the-license-key){:target="_blank"} to update the ProductKey +1. Request a new trial product key here. Refer to [Using License Keys](/_articles/general-usage/license.md){:target="_blank"} for how to configure the new ProductKey in your project 2. Do a hard refresh or clear cache in your browser to make sure the new ProductKey is used diff --git a/_articles/faq/flexible-to-custom-license.md b/_articles/faq/flexible-to-custom-license.md index 776f6136..f6456b7d 100644 --- a/_articles/faq/flexible-to-custom-license.md +++ b/_articles/faq/flexible-to-custom-license.md @@ -7,11 +7,11 @@ keywords: Dynamic Web TWAIN, Licensing and Purchase, flexible, custom licensing breadcrumbText: Are you flexible to discuss custom licensing models? description: Are you flexible to discuss custom licensing models? date: 2021-12-04 02:34:30 +0000 -last_modified: 2024-07-15 18:12:55 +0000 +last_modified: 2026-07-29 08:01:45 +0000 --- # Licensing and Purchase ## Are you flexible to discuss custom licensing models? -Yes. We understand our standard options may not cover your need, so we are very flexible with different licensing metrics to best serve your business. Please submit your request via this form or directly contact us. +Yes. We understand our standard options may not cover your need, so we are very flexible with different licensing metrics to best serve your business. Please submit your request via this form or directly contact us. diff --git a/_articles/faq/generate-pdf-files.md b/_articles/faq/generate-pdf-files.md index e96772a0..2e48d20b 100644 --- a/_articles/faq/generate-pdf-files.md +++ b/_articles/faq/generate-pdf-files.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Addon, separate, license breadcrumbText: How can I generate PDF/A files? description: How can I generate PDF/A files? date: 2021-12-01 01:09:41 +0000 -last_modified: 2025-12-10 16:43:15 +0000 +last_modified: 2026-07-30 07:04:41 +0000 --- # Addon @@ -19,24 +19,11 @@ PDF/A is an archival format designed for long-term preservation. The following v ### Supported PDF/A Versions -| PDF/A Variant | Underlying PDF Version | -|:-------------:|-----------------------------| -| `pdf/a-1b` | **1.4** (default) | -| `pdf/a-2b` | **1.5** (default), 1.6, 1.7 | - -### What’s the difference between PDF/A-1b and PDF/A-2b? -Although both variants ensure that documents can be reliably displayed in the future, they differ in terms of supported PDF features and compression options. -- PDF/A-1b - - Uses the older PDF 1.4 specification. - - **Does not support JPEG2000** or JBIG2 image compression. - - Does not allow transparency. - - May result in larger file sizes and more conversion restrictions. - -- PDF/A-2b - - Based on newer PDF versions (1.5–1.7). - - Supports **JPEG2000**, JBIG2, transparency, and other modern PDF features. - - Typically requires **fewer changes** to the source document. - - Usually produces **smaller output** files. +| PDF/A Variant | Underlying PDF Version | Availability | +|:-------------:|-----------------------------|--------------| +| `pdf/a-1b` | **1.4** (fixed) | v19.3+ | +| `pdf/a-2b` | **1.7** (fixed) | v19.3+ | +| `pdf/a-3b` | **1.7** (fixed) | v19.4+ | **Recommendation:** For most use cases, we recommend using **`pdf/a-2b`**. @@ -55,9 +42,9 @@ DWTObject.Addon.PDF.IsRasterizationRequired(path); // returns true or false - If you do not set `pdfaVersion`, the export uses standard PDF format (non-PDF/A). -- If you set `pdfaVersion` but forget to set `version`, or set a mismatched or incorrect PDF version, Dynamic Web TWAIN automatically falls back to a default PDF version: - - `pdf/a-1b` → defaults to PDF `1.4` - - `pdf/a-2b` → defaults to PDF `1.5` +- The `version` setting only applies when exporting standard (non-PDF/A) PDFs. Once `pdfaVersion` is set, `version` is ignored — the underlying PDF version is fixed entirely by the PDF/A variant: + - `pdf/a-1b` → PDF `1.4` + - `pdf/a-2b` / `pdf/a-3b` → PDF `1.7` ### How to Export as PDF/A @@ -65,8 +52,8 @@ Configure PDF output using [`Write.Setup()`](/_articles/info/api/Addon_PDF.md#wr ```javascript DWTObject.Addon.PDF.Write.Setup({ - version: "1.5", // [optional] 1.4 for "pdf/a-1b"; 1.5/1.6/1.7 for "pdf/a-2b" - pdfaVersion: "pdf/a-2b" // "pdf/a-1b" or "pdf/a-2b" + version: "1.5", // [optional] Only used for standard (non-PDF/A) PDFs; ignored once pdfaVersion is set + pdfaVersion: "pdf/a-2b" // "pdf/a-1b", "pdf/a-2b" (since v19.3), or "pdf/a-3b" (since v19.4) }); ``` diff --git a/_articles/faq/hide-webcam-from-source-list.md b/_articles/faq/hide-webcam-from-source-list.md index 1634f34c..56c02a16 100644 --- a/_articles/faq/hide-webcam-from-source-list.md +++ b/_articles/faq/hide-webcam-from-source-list.md @@ -7,15 +7,15 @@ keywords: Dynamic Web TWAIN, Capture/ Image Source, hide, webcam breadcrumbText: Can I hide webcam devices from the select source list? description: Can I hide webcam devices from the select source list? date: 2021-12-08 03:01:32 +0000 -last_modified: 2022-06-10 04:40:03 +0000 +last_modified: 2026-07-30 09:25:56 +0000 --- # Capture/Image Source ## Can I hide webcam devices from the select source list? -Many webcam devices may use WIA drivers. As explained in this article, WIA drivers can also be detected by the Dynamic Web TWAIN SDK. If you need to exclude webcam/camera devices, you can try using [GetDeviceType](/_articles/info/api/WebTwain_Acquire.md#getdevicetype){:target="_blank"} API to verify if a source is a scanner or not. If not, you can skip it from your source list. +Many webcam devices may use WIA drivers. As explained in this article, WIA drivers can also be detected by the Dynamic Web TWAIN SDK. For devices accessed via TWAIN, you can check whether the source supports the `CAP_CAMERAPREVIEWUI` capability using [getCapabilities](/_articles/info/api/WebTwain_Acquire.md#getcapabilities){:target="_blank"} — sources that support it are typically cameras, so you can skip them from your source list. -Please note that you would need to call [OpenSource](/_articles/info/api/WebTwain_Acquire.md#opensource){:target="_blank"} API to open a source before you can inspect its device type. If there are any offline devices in the source name list, this process would be interrupted. +Please note that you would need to call [OpenSource](/_articles/info/api/WebTwain_Acquire.md#opensource){:target="_blank"} API to open a source before you can query its capabilities. If there are any offline devices in the source name list, this process would be interrupted. -Another workaround is to exclude some sources by detecting certain keywords from the source name list. E.g. you can try to exclude any source names with 'camera' or 'webcam'. Please refer to this [FAQ](/_articles/faq/hide-offline-scanners-from-source-list.md){:target="_blank"} for more details. +A simpler workaround that doesn't require opening each source is to exclude sources by detecting certain keywords in the source name list — e.g. excluding any source names containing 'camera' or 'webcam'. Please refer to this [FAQ](/_articles/faq/hide-offline-scanners-from-source-list.md){:target="_blank"} for more details. 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 ee320c0c..59d4c5d2 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 @@ -29,7 +29,5 @@ There are 3 ways to verify whether your scanner is SANE compliant. * [Recommended] Try the scanner with the XSane app on Linux. Check out the [official guide](http://www.fifi.org/doc/xsane/html/sane-xsane-doc.html) - - > [More info>>](/assets/docs/Scanning_with_XSane.pdf) * Check out the [official list](http://www.sane-project.org/sane-backends-1.0.25.html) of supported scanners. diff --git a/_articles/faq/http-servers-support.md b/_articles/faq/http-servers-support.md index 6b911bf7..5d7d37a7 100644 --- a/_articles/faq/http-servers-support.md +++ b/_articles/faq/http-servers-support.md @@ -2,22 +2,22 @@ layout: default-layout noTitleIndex: true needAutoGenerateSidebar: true -title: What type of HTTP servers do your support? Do you support other server types? +title: What type of HTTP servers do you support? Do you support other server types? keywords: Dynamic Web TWAIN, Document Saving, HTTP servers support -breadcrumbText: What type of HTTP servers do your support? Do you support other server types? -description: What type of HTTP servers do your support? Do you support other server types? +breadcrumbText: What type of HTTP servers do you support? Do you support other server types? +description: What type of HTTP servers do you support? Do you support other server types? date: 2021-11-29 18:33:59 +0000 -last_modified: 2022-06-10 04:40:03 +0000 +last_modified: 2026-07-29 08:01:45 +0000 --- # Document Saving -## What type of HTTP servers do your support? Do you support other server types? +## What type of HTTP servers do you support? Do you support other server types? -We support any web servers such Apache, NGINX, IIS, Tomcat, Node.js, etc. We also support Mail/FTP/Database servers. +Dynamic Web TWAIN works with any web server capable of receiving an HTTP POST request, such as Apache, NGINX, IIS, Tomcat, or Node.js. We also support uploading via FTP, as well as sending images directly to Mail/Database servers through your own server-side script. -To upload documents via HTTP, we recommend the API [here](/_articles/general-usage/image-export/index.md#upload){:target="_blank"}. +To upload documents over HTTP, see [Uploading over HTTP](/_articles/general-usage/image-export/server-upload.md#uploading-over-http){:target="_blank"} for the relevant API and sample code. -Dynamic Web TWAIN sends an HTTP POST request to the server when doing an upload. You need to write your server-side script to receive and save the uploaded files. On the server side, any scripting language can be used. +You need to write your own server-side script to receive and save the uploaded files. On the server side, any scripting language can be used. For more information and sample server-side scripts, please refer to [Server Scripts](/_articles/general-usage/server-side-scripting.md){:target="_blank"}, which includes sample scripts on how to save the uploaded file to a database such as MS SQL/Oracle, and how to resend the uploaded file by email. diff --git a/_articles/faq/image-viewer-object-defined.md b/_articles/faq/image-viewer-object-defined.md index cb6988e9..05a75668 100644 --- a/_articles/faq/image-viewer-object-defined.md +++ b/_articles/faq/image-viewer-object-defined.md @@ -7,6 +7,7 @@ keywords: Dynamic Web TWAIN, Image Viewer, object defined breadcrumbText: Where is the image viewer object defined? description: Where is the image viewer object defined? date: 2025-04-17 17:43:22 +0000 +last_modified: 2026-07-29 08:01:45 +0000 --- # Image Viewer @@ -14,4 +15,4 @@ date: 2025-04-17 17:43:22 +0000 ## Where is the image viewer object defined? By default, Dynamic Web TWAIN has a viewer component that helps to view data available in the buffer. When you [create an instance of Web Twain](/_articles/extended-usage/advanced-initialization.md#instantiating-webtwain-without-onwebtwainready){:target="_blank"}, the viewer is created automatically with its default available settings. You can customize the viewer settings according to your requirements and replace the default viewer with your customized viewer settings. -You can refer to this [link](/_articles/general-usage/viewer-configuration.md#create-the-viewer){:target="_blank"} to read in details about the steps to create/modify the viewer. +You can refer to this [link](/_articles/general-usage/viewer-configuration.md#configuring-viewer-instantiation){:target="_blank"} to read in details about the steps to create/modify the viewer. diff --git a/_articles/faq/index.md b/_articles/faq/index.md index 58d4d41a..7f029e1b 100644 --- a/_articles/faq/index.md +++ b/_articles/faq/index.md @@ -38,7 +38,7 @@ description: Dynamic Web TWAIN SDK Documentation FAQ 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) +19. [Can the Dynamic Web TWAIN SDK detect whether papers exist in the feeder?](/_articles/faq/detect-paper-on-feeder.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) @@ -51,9 +51,8 @@ description: Dynamic Web TWAIN SDK Documentation FAQ 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. [Is the AcquireImage() method synchronous or asynchronous?](/_articles/faq/acquireimage-sync-or-async.md) -32. [Why is my scanner not shown or not responding in the browser?](/_articles/faq/scanner-not-shown-or-not-responding-in-the-browser.md) -33. [How can I support WIA scanner drivers in my application?](/_articles/faq/support-wia-scanner-drivers.md) -34. [Why are my images coming out distorted in MacOS Sonoma?](/_articles/faq/macos-sonoma-distorted-scans.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 @@ -98,23 +97,22 @@ description: Dynamic Web TWAIN SDK Documentation FAQ ## Document Saving 1. [What image and document formats can I save my documents as?](/_articles/faq/image-document-formats-save.md) -2. [What type of HTTP servers do your support? Do you support other server types?](/_articles/faq/http-servers-support.md) +2. [What type of HTTP servers do you support? Do you support other server types?](/_articles/faq/http-servers-support.md) 3. [How can I enable HTTPS support?](/_articles/faq/enable-https-support.md) 4. [How can I get the smallest size of documents in PDF, TIFF or JPEG format?](/_articles/faq/smallest-size-documents.md) -5. [How can I send additional form fields with images to my server or database?](/_articles/faq/additional-form-fields.md) -6. [How can I automatically trigger actions when images arrive on my server side?](/_articles/faq/trigger-actions-server-side.md) -7. [Can I upload documents to a different website domain?](/_articles/faq/upload-documents-to-different-domain.md) -8. [How can I get a response string from my HTTP Server if the upload succeeds or fails?](/_articles/faq/response-string-from-server-on-upload.md) -9. [Can I upload documents via a background service outside the web browser?](/_articles/faq/upload-using-background-service.md) -10. [Can I insert newly scanned pages to an existing document?](/_articles/faq/insert-new-pages-to-existing-document.md) -11. [How can I upload a JSON file to my server?](/_articles/faq/upload-json-files-to-server.md) -12. [How can I save selected images instead of all images to my server or database?](/_articles/faq/save-selected-images-to-server.md) -13. [How to use a blank page as a separator?](/_articles/faq/use-blank-page-as-a-separator.md) -14. [How to upload multiple files at a time?](/_articles/faq/upload-multiple-files-at-a-time.md) -15. [How to deploy your own upload server with ASP.NET?](/_articles/faq/deploy-your-own-upload-server-with-asp.net.md) -16. [How to deploy your own upload server with JSP?](/_articles/faq/deploy-your-own-upload-server-with-jsp.md) -17. [How to deploy your own upload server with Node.js?](/_articles/faq/deploy-your-own-upload-server-with-node.js.md) -18. [How to deploy your own upload server with PHP?](/_articles/faq/deploy-your-own-upload-server-with-php.md) +5. [How can I automatically trigger actions when images arrive on my server side?](/_articles/faq/trigger-actions-server-side.md) +6. [Can I upload documents to a different website domain?](/_articles/faq/upload-documents-to-different-domain.md) +7. [How can I get a response string from my HTTP Server if the upload succeeds or fails?](/_articles/faq/response-string-from-server-on-upload.md) +8. [Can I upload documents via a background service outside the web browser?](/_articles/faq/upload-using-background-service.md) +9. [Can I insert newly scanned pages to an existing document?](/_articles/faq/insert-new-pages-to-existing-document.md) +10. [How can I upload a JSON file to my server?](/_articles/faq/upload-json-files-to-server.md) +11. [How can I save selected images instead of all images to my server or database?](/_articles/faq/save-selected-images-to-server.md) +12. [How to use a blank page as a separator?](/_articles/faq/use-blank-page-as-a-separator.md) +13. [How to upload multiple files at a time?](/_articles/faq/upload-multiple-files-at-a-time.md) +14. [How to deploy your own upload server with ASP.NET?](/_articles/faq/deploy-your-own-upload-server-with-asp.net.md) +15. [How to deploy your own upload server with JSP?](/_articles/faq/deploy-your-own-upload-server-with-jsp.md) +16. [How to deploy your own upload server with Node.js?](/_articles/faq/deploy-your-own-upload-server-with-node.js.md) +17. [How to deploy your own upload server with PHP?](/_articles/faq/deploy-your-own-upload-server-with-php.md) ## Security @@ -210,8 +208,7 @@ description: Dynamic Web TWAIN SDK Documentation FAQ 32. [Why am I unable to load the TIFF file into Dynamic Web TWAIN?](/_articles/faq/unable-to-load-4-bit-tiff.md) 33. [Error message - CORS Errors caused by local network access permissions when using Chromium 142 and later](/_articles/faq/chromium-142-local-network-access-issue.md) 34. [Error message - File is Damaged and Can’t Be Opened in macOS](/_articles/faq/file-damaged-on-macos.md) -35. [Safari 26.2 Regression Causing Dynamic Web TWAIN v19.3 Auto-Reconnect Failure on macOS](/_articles/faq/safari-26-2-regression.md) -36. [File Dialog Closes Immediately on Linux](/_articles/faq/file-dialog-on-linux.md) +35. [File Dialog Closes Immediately on Linux](/_articles/faq/file-dialog-on-linux.md) ## Licensing and Purchase diff --git a/_articles/faq/list-supported-resolution-DPI.md b/_articles/faq/list-supported-resolution-DPI.md index 504329c5..1bfbd2fe 100644 --- a/_articles/faq/list-supported-resolution-DPI.md +++ b/_articles/faq/list-supported-resolution-DPI.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Capture/ Image Source, supported resolution, DPI breadcrumbText: How can I get a list of supported resolution/DPI values from the document scanner? description: How can I get a list of supported resolution/DPI values from the document scanner? date: 2021-12-08 03:01:32 +0000 -last_modified: 2025-02-26 14:48:28 +0000 +last_modified: 2026-07-29 08:01:45 +0000 --- # Capture/Image Source @@ -45,7 +45,7 @@ DWTObject.getCapabilities( for (var i = 0; i < result.length; i++) { if (result[i].capability.value === Dynamsoft.DWT.EnumDWT_Cap.ICAP_XRESOLUTION) { if (result[i].conType.label === 'TWON_ENUMERATION') { // If the capability's Value Type is Enumeration - dpi = result[i].values; + dpi = result[i].enums; console.log(dpi); // The list of supported resolution. } else if (result[i].conType.label === 'TWON_RANGE') { // If the capability's Value Type is Range max = result[i].maxValue; diff --git a/_articles/faq/load-pdf-files.md b/_articles/faq/load-pdf-files.md index 7eb41b00..eafc19ba 100644 --- a/_articles/faq/load-pdf-files.md +++ b/_articles/faq/load-pdf-files.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Addon, load pdf/a breadcrumbText: How can I load PDF/A files into the Dynamic Web TWAIN SDK? description: How can I load PDF/A files into the Dynamic Web TWAIN SDK? date: 2021-12-01 01:09:41 +0000 -last_modified: 2025-12-11 14:20:54 +0000 +last_modified: 2026-07-30 08:59:23 +0000 --- # Addon @@ -53,4 +53,3 @@ Rasterization may occur when using any of these APIs (including drag-and-drop): - [ `HTTPDownload()` ](/_articles/info/api/WebTwain_IO.md#httpdownload) - [ `HTTPDownloadEx()` ](/_articles/info/api/WebTwain_IO.md#httpdownloadex) - [ `HTTPDownloadThroughPost()` ](/_articles/info/api/WebTwain_IO.md#httpdownloadthroughpost) -- [ `HTTPDownloadDirectly()` ](/_articles/info/api/WebTwain_IO.md#httpdownloaddirectly) diff --git a/_articles/faq/print-images-from-viewer.md b/_articles/faq/print-images-from-viewer.md index bf87f514..4bfe5ae1 100644 --- a/_articles/faq/print-images-from-viewer.md +++ b/_articles/faq/print-images-from-viewer.md @@ -7,12 +7,11 @@ keywords: Dynamic Web TWAIN, Image Viewer, print breadcrumbText: Can I print images from the viewer? description: Can I print images from the viewer? date: 2021-12-09 11:34:50 +0000 -last_modified: 2022-06-10 04:40:03 +0000 +last_modified: 2026-07-29 08:01:45 +0000 --- # Image Viewer ## Can I print images from the viewer? -Yes, you can print the images from the viewer by exporting all image data in the buffer to a new browser window and use the browser's default feature to print images. This can be achieved by using the [Print](/_articles/info/api/WebTwain_IO.md#print){:target="_blank"} API. -Note: The Print API prints all the images on the viewer, you can use [PrintEx](/_articles/info/api/WebTwain_IO.md#printex){:target="_blank"} to print only selected images. +Yes. Use the [PrintEx](/_articles/info/api/WebTwain_IO.md#printex){:target="_blank"} API and pass the indices of the images you want to print (for example, call `SelectAllImages()` and pass `SelectedImagesIndices` to print all images). diff --git a/_articles/faq/protect-sensitive-information.md b/_articles/faq/protect-sensitive-information.md index 602b2ba8..e755c673 100644 --- a/_articles/faq/protect-sensitive-information.md +++ b/_articles/faq/protect-sensitive-information.md @@ -7,13 +7,13 @@ keywords: Dynamic Web TWAIN, Image Viewer, object defined breadcrumbText: Can I protect sensitive information of an image from being seen? description: Can I protect sensitive information of an image from being seen? date: 2021-12-09 11:34:50 +0000 -last_modified: 2025-02-07 17:17:34 +0000 +last_modified: 2026-07-29 08:01:45 +0000 --- # Image Viewer ## Can I protect sensitive information of an image from being seen? -If you need to modify an image by concealing certain areas permanently, you can use the [erase()](/_articles/info/api/WebTwain_Edit.md#erase){:target="_blank"} method. This method is particularly useful when the requirement involves replacing a rectangular region within the image with a solid white block. +If you need to modify an image by concealing certain areas permanently, you can use the [Erase()](/_articles/info/api/WebTwain_Edit.md#erase){:target="_blank"} method. This method is particularly useful when the requirement involves replacing a rectangular region within the image with a solid white block. On the other hand, if you prefer a customizable and removable layer to temporarily conceal particular content, our newly developed Annotation feature is just what you need. For comprehensive details about this feature, please click on the following link: How can I add annotations to an image and then save/upload it? \ No newline at end of file diff --git a/_articles/faq/remove-blank-page-automatically.md b/_articles/faq/remove-blank-page-automatically.md index 9574ba46..899c75e2 100644 --- a/_articles/faq/remove-blank-page-automatically.md +++ b/_articles/faq/remove-blank-page-automatically.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Capture/ Image Source, detect, discard blank pages breadcrumbText: Can the Dynamic Web TWAIN SDK automatically remove blank pages during the document scanning process? description: Can the Dynamic Web TWAIN SDK automatically remove blank pages during the document scanning process? date: 2021-07-14 18:58:25 +0000 -last_modified: 2024-09-19 08:47:35 +0000 +last_modified: 2026-07-29 08:01:45 +0000 --- # Capture/Image Source @@ -19,21 +19,31 @@ last_modified: 2024-09-19 08:47:35 +0000 If the TWAIN driver of your device supports discarding blank pages, you can use the driver's built-in feature. 1. You can set the [ `IfShowUI` ](/_articles/info/api/WebTwain_Acquire.md#ifshowui) property to true to display the User Interface (UI) of the source and you can check the option there (It normally reads 'discard blank'.). -2. If you don't want to show the user interface of the source, you can set [ `IfAutoDiscardBlankpages` ](/_articles/info/api/WebTwain_Acquire.md#ifautodiscardblankpages) to true or negotiate the ICAP_AUTODISCARDBLANKPAGES capability to discard blank pages automatically. Please NOTE that this property or capability only works if the scanner itself supports the feature (on the hardware level). +2. If you don't want to show the user interface of the source, you can set [ `IfAutoDiscardBlankpages` ](/_articles/info/api/WebTwain_Acquire.md#ifautodiscardblankpages) to true or negotiate the ICAP_AUTODISCARDBLANKPAGES capability using [ `setCapabilities()` ](/_articles/info/api/WebTwain_Acquire.md#setcapabilities) to discard blank pages automatically. Please NOTE that this property or capability only works if the scanner itself supports the feature (on the hardware level). ```javascript DWTObject.SelectSource(); -DWTObject.OpenSource; +DWTObject.OpenSource(); DWTObject.IfShowUI = false; //*Use the property DWTObject.IfAutoDiscardBlankpages = true; //*Use capability negotiation -DWTObject.Capability = Dynamsoft.DWT.EnumDWT_Cap.ICAP_AUTODISCARDBLANKPAGES; -DWTObject.CapType = Dynamsoft.DWT.EnumDWT_CapType.TWON_ONEVALUE; -DWTObject.CapValue = -1; //Auto -if (DWTObject.CapSet) { - alert("Successful!"); -} +DWTObject.setCapabilities( + { + capabilities: [ + { + capability: Dynamsoft.DWT.EnumDWT_Cap.ICAP_AUTODISCARDBLANKPAGES, + curValue: -1, //Auto + }, + ], + }, + function (successData) { + console.log("Capability was successfully applied."); + }, + function (errorData) { + console.error(errorData); + } +); DWTObject.AcquireImage(); ``` diff --git a/_articles/faq/resources-to-be-included-in-SDK.md b/_articles/faq/resources-to-be-included-in-SDK.md index fb3a59b8..0191ad9a 100644 --- a/_articles/faq/resources-to-be-included-in-SDK.md +++ b/_articles/faq/resources-to-be-included-in-SDK.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Project Deployment and End-user Installation, resou breadcrumbText: What resources of the SDK should be included in my web application? description: What resources of the SDK should be included in my web application? date: 2021-12-11 06:47:21 +0000 -last_modified: 2022-10-14 14:05:08 +0000 +last_modified: 2026-07-29 08:01:45 +0000 --- View all FAQs about [Project Deployment and End-user Installation]( @@ -23,4 +23,4 @@ Under the `\dist` folder, you can include the installers required per your OS re Under the `\src` folder, you do not need the wasm files if you are not using camera functionalities. -For more information, please check [Loading the Resource Files](/_articles/general-usage/initialization.md#loading-the-core-js-files){:target="_blank"}. +For more information, please check [Loading Library Resources](/_articles/general-usage/resource-loading.md#loading-from-official-sdk-package){:target="_blank"}. diff --git a/_articles/faq/safari-26-2-regression.md b/_articles/faq/safari-26-2-regression.md deleted file mode 100644 index efe5a107..00000000 --- a/_articles/faq/safari-26-2-regression.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -layout: default-layout -noTitleIndex: true -needAutoGenerateSidebar: true -title: Safari 26.2 Regression Causing Dynamic Web TWAIN v19.3 Auto-Reconnect Failure on macOS -keywords: Dynamic Web TWAIN, macos, Auto-Reconnect, 19.3, Safari -breadcrumbText: Safari 26.2 Regression Causing Dynamic Web TWAIN v19.3 Auto-Reconnect Failure on macOS -description: Safari 26.2 Regression Causing Dynamic Web TWAIN v19.3 Auto-Reconnect Failure on macOS -date: 2025-12-31 13:18:47 +0000 -last_modified: 2025-12-31 13:18:47 +0000 ---- - -# Safari 26.2 Regression Causing Dynamic Web TWAIN v19.3 Auto-Reconnect Failure on macOS - -### Symptom - -After upgrading to Safari 26.2 on macOS, a compatibility issue was observed with Dynamic Web TWAIN v19.3. - -When a site installs or updates the Dynamic Web TWAIN v19.3 Service for the first time, the automatic connection and reconnect mechanism fails. A browser refresh is required to restore normal behavior. - -### Issue characteristics - -- Only occurs in Safari 26.2 -- Does not occur in Safari 26.1 or earlier versions -- Does not occur in Dynamic Web TWAIN versions prior to 19.3 - -### Reason - -Dynamic Web TWAIN 19.3 introduced a new configuration in reconnect requests: `targetAddressSpace: "loopback"`, following the Chrome Local Network Access documentation to explicitly indicate that the request targets the loopback address (127.0.0.1). - -In Safari 26.1 and earlier, this configuration is ignored and requests are sent normally. - -In Safari 26.2, `fetch` throws a `TypeError` when this configuration is present, causing the request to fail before being sent. As a result, `reconnect` cannot be implemented even though the Dynamsoft Service is installed and running. - -### Update - -The WebKit team has identified this issue as a regression in Safari 26.2 and has already fixed it. The fix will be included in an upcoming Safari release. \ No newline at end of file diff --git a/_articles/faq/scanner-not-shown-or-not-responding-in-the-browser.md b/_articles/faq/scanner-not-shown-or-not-responding-in-the-browser.md deleted file mode 100644 index 5247f674..00000000 --- a/_articles/faq/scanner-not-shown-or-not-responding-in-the-browser.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -layout: default-layout -noTitleIndex: true -needAutoGenerateSidebar: true -title: Why is my scanner not shown or not responding in the browser? -keywords: Dynamic Web TWAIN, Capture/ Image Source, scanner not shown, scanner not responding -breadcrumbText: Why is my scanner not shown or not responding in the browser? -description: Why is my scanner not shown or not responding in the browser? -date: 2022-01-05 15:14:32 +0000 -last_modified: 2022-10-21 14:05:54 +0000 ---- - -# Capture/Image Source - -## Why is my scanner not shown or not responding in the browser? - -### Symptom - -Sometimes when you are using a scanning page built with Dynamic Web TWAIN, you will encounter an issue where your scanner is not shown, not responding or shown as busy in the browser. - -### Causes - -1. The scanner is not connected to the machine or the scanner driver is not installed. - Especially when you are using **64-bit Internet Explorer** but you don't have the 64-bit scanner (TWAIN) driver installed on the machine. - -2. The Browser doesn't have enough permission to access the scanner driver. - This mostly happens on **Windows 7/Vista/2008 OS** where high security level is applied to **Internet Explorer**. It would also happen in Firefox 4+ and Safari. - -### Solution - -1. Make sure the driver of the scanner is installed and the scanner is running and properly connected to the machine. You should be able to see the scanner in the Windows' Scanners and Cameras Wizard. And you can use Twacker to check if the driver is TWAIN compatible. - - In addition, if you are using 64-bit Internet Explorer, please make sure you have a 64-bit TWAIN driver of the scanner installed. - -2. **For Firefox, Safari, etc.**, please go to C:\Windows\twain_32 and you should be able to find that your scanner driver has a sub-folder there. In order to show the scanner as an available source, you need to copy the dlls in the sub-folder and paste them to the folder C:\Windows\System32 (or C:\Windows\SysWOW64 on a 64-bit OS). - - For Internet Explorer, you can try one of the following tricks: - 1. Add the website to the zone of trusted sites. - IE | Tools | Internet Options | Security | Trusted Sites. - - 2. Turn Protected Mode off. - To turn off the protected mode of IE, you can go to Tools | Internet Options | Security and uncheck "Enable Protected Mode (requires restarting Internet Explorer)" option. - - FYI, Protected Mode helps protect users from attack by running an IE process with greatly restricted privileges. It uses the Windows Vista integrity mechanism to run the Internet Explorer process at low integrity. - - But with Protected Mode turned on, you may encounter problems when running Dynamic Web TWAIN applications. - - 3. To temporarily elevate permissions of IE. - Click Start, point to All Programs, right-click IE, and then select Run as Administrator (with Administrator permissions). - diff --git a/_articles/faq/securely-transfer-to-server.md b/_articles/faq/securely-transfer-to-server.md index 67a0de29..0ecf02c1 100644 --- a/_articles/faq/securely-transfer-to-server.md +++ b/_articles/faq/securely-transfer-to-server.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Security, securely transfer, server breadcrumbText: How can I securely transfer scanned documents to my server? description: How can I securely transfer scanned documents to my server? date: 2021-11-29 18:33:59 +0000 -last_modified: 2022-06-10 04:40:03 +0000 +last_modified: 2026-07-29 08:01:45 +0000 --- # Security @@ -22,8 +22,8 @@ To enable HTTPS, - Set the SSL port with the API [HTTPPort](/_articles/info/api/WebTwain_IO.md#httpport){:target="_blank"} -- Call the API HTTPUpload to upload the documents +- Call the API [HTTPUpload](/_articles/info/api/WebTwain_IO.md#httpupload){:target="_blank"} to upload the documents -To upload documents via HTTP/HTTPS, we recommend the API [here](/_articles/general-usage/image-export/index.md#upload){:target="_blank"}. +To upload documents via HTTP/HTTPS, we recommend following [Uploading over HTTP](/_articles/general-usage/image-export/server-upload.md#uploading-over-http){:target="_blank"}. > Note - that 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. diff --git a/_articles/faq/service-is-blocked.md b/_articles/faq/service-is-blocked.md index 8220bab0..fab600be 100644 --- a/_articles/faq/service-is-blocked.md +++ b/_articles/faq/service-is-blocked.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Dynamic Web TWAIN Service, scanner UI, file dialog breadcrumbText: The scanner's UI or the system's file dialog does not open when scanning description: The scanner's UI or the system's file dialog does not open when scanning date: 2022-06-15 06:06:49 +0000 -last_modified: 2023-11-28 15:42:10 +0000 +last_modified: 2026-07-29 08:01:45 +0000 --- View all FAQs about [Project Deployment and End-user Installation]( @@ -41,7 +41,7 @@ The issue occurs when the allocated memory address exceeds the 32-bit limit. In To determine which process is blocking Dynamic Web TWAIN Service, please follow the steps below. -1. Collect [verbose log](/_articles/faq/general-troubleshooting-steps.md#how-to-enable-and-collect-verbose-log){:target="_blank"} +1. Collect [verbose log](/_articles/faq/general-troubleshooting-steps.md#enable-and-collect-verbose-logs){:target="_blank"} 2. Open the file wts.log and search for the string "GetConnectionProcessID" to locate the line: *GetConnectionProcessID:: connection client 1960 process is xxxxx.* diff --git a/_articles/faq/service-prompting-to-install-repeatedly.md b/_articles/faq/service-prompting-to-install-repeatedly.md index a45d116f..efb6bedb 100644 --- a/_articles/faq/service-prompting-to-install-repeatedly.md +++ b/_articles/faq/service-prompting-to-install-repeatedly.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Project Deployment and End-user Installation, insta breadcrumbText: I have installed the Dynamic Web TWAIN Service on an end-user machine but still got asked to install it repeatedly. Why? description: I have installed the Dynamic Web TWAIN Service on an end-user machine but still got asked to install it repeatedly. Why? date: 2021-12-11 06:47:21 +0000 -last_modified: 2025-11-04 13:39:41 +0000 +last_modified: 2026-07-29 08:01:45 +0000 --- View all FAQs about [Project Deployment and End-user Installation]( @@ -42,7 +42,7 @@ https://www.dynamsoft.com/web-twain/docs/faq/#project-deployment-and-end-user-in 1. See [Chromium local network access issue](/_articles/faq/chromium-142-local-network-access-issue.md) for details and corrective actions. -2. Check the service's [installation folder](/_articles/extended-usage/dynamsoft-service-configuration.md#installation-folder) and make sure you have [the correct files](/_articles/extended-usage/dynamsoft-service-configuration.md#related-files-and-folders){:target="_blank"}. +2. Check the service's [installation folder](/_articles/extended-usage/dynamsoft-service-configuration.md#installation-folder) and make sure you have [the correct files](/_articles/extended-usage/dynamsoft-service-configuration.md#installation-folder){:target="_blank"}. 3. Check `Local Services` and make sure the Dynamic Web TWAIN Service is listed and Running. diff --git a/_articles/faq/show-page-number.md b/_articles/faq/show-page-number.md index e14cb791..e002fd8e 100644 --- a/_articles/faq/show-page-number.md +++ b/_articles/faq/show-page-number.md @@ -7,16 +7,17 @@ keywords: Dynamic Web TWAIN, Image Viewer, show , page number breadcrumbText: How can I show page number on each image? description: How can I show page number on each image? date: 2025-04-17 17:43:22 +0000 +last_modified: 2026-07-29 08:01:45 +0000 --- # Image Viewer ## How can I show page number on each image? -You can set the [showPageNumber](/_articles/info/api/WebTwain_Viewer.md#showpagenumber){:target="_blank"} API to true to show the page number. +You could configure the `visibility` property to `true` with the [updatePageNumberStyle](/_articles/info/api/WebTwain_Viewer.md#updatepagenumberstyle){:target="_blank"} API to show the page number. ```javascript -DWTObject.Viewer.showPageNumber = true; +DWTObject.Viewer.updatePageNumberStyle({ visibility: "visible" }); ``` **Note**: When [setViewMode](/_articles/info/api/WebTwain_Viewer.md#setviewmode){:target="_blank"} is set to -1 by -1 or [singlePageMode](/_articles/info/api/WebTwain_Viewer.md#singlepagemode){:target="_blank"} is true then this api will not work. diff --git a/_articles/faq/source-connected-to-maximum.md b/_articles/faq/source-connected-to-maximum.md index b1dd45b1..34f30736 100644 --- a/_articles/faq/source-connected-to-maximum.md +++ b/_articles/faq/source-connected-to-maximum.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Error Troubleshooting breadcrumbText: Source is connected to the maximum supported number of applications description: Source is connected to the maximum supported number of applications date: 2021-12-03 23:26:46 +0000 -last_modified: 2024-09-19 08:47:35 +0000 +last_modified: 2026-07-29 08:01:45 +0000 --- # Error Troubleshooting @@ -32,11 +32,17 @@ function btnScan_onclick() { DWTObject.RegisterEvent("OnPostAllTransfers", function () { DWTObject.CloseSource(); }); - DWTObject.SelectSource(); - DWTObject.CloseSource(); //close source before open - DWTObject.OpenSource(); - DWTObject.IfDisableSourceAfterAcquire = true; //close the scanner UI after acquiring - DWTObject.AcquireImage(); + DWTObject.SelectSource( + function () { + DWTObject.CloseSource(); //close source before open + DWTObject.OpenSource(); + DWTObject.IfDisableSourceAfterAcquire = true; //close the scanner UI after acquiring + DWTObject.AcquireImage(); + }, + function (errorCode, errorString) { + console.log(errorString); + } + ); } ``` diff --git a/_articles/faq/support-wia-scanner-drivers.md b/_articles/faq/support-wia-scanner-drivers.md index fad53515..bbde2da8 100644 --- a/_articles/faq/support-wia-scanner-drivers.md +++ b/_articles/faq/support-wia-scanner-drivers.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Capture/ Image Source, WIA breadcrumbText: How can I support WIA scanner drivers in my application? description: How can I support WIA scanner drivers in my application? date: 2023-05-25 04:19:02 +0000 -last_modified: 2024-09-19 08:47:35 +0000 +last_modified: 2026-07-29 08:01:45 +0000 --- # Capture/Image Source @@ -25,7 +25,7 @@ To compatible with both TWAIN and WIA 2.0, | New APIs (supports WIA) | Old APIs | |:-|:-| -| [GetDeviceAsync()](https://www.dynamsoft.com/web-twain/docs/info/api/WebTwain_Acquire.html#getdevicesasync) | [GetSourceNames()](https://www.dynamsoft.com/web-twain/docs/info/api/WebTwain_Acquire.html#getsourcenames), [GetSourceNamesAsync()](https://www.dynamsoft.com/web-twain/docs/info/api/WebTwain_Acquire.html#getsourcenamesasync)| +| [GetDevicesAsync()](https://www.dynamsoft.com/web-twain/docs/info/api/WebTwain_Acquire.html#getdevicesasync) | [GetSourceNames()](https://www.dynamsoft.com/web-twain/docs/info/api/WebTwain_Acquire.html#getsourcenames), [GetSourceNamesAsync()](https://www.dynamsoft.com/web-twain/docs/info/api/WebTwain_Acquire.html#getsourcenamesasync)| | [SelectDeviceAsync()](https://www.dynamsoft.com/web-twain/docs/info/api/WebTwain_Acquire.html#selectdeviceasync) | [SelectSourceByIndex()](https://www.dynamsoft.com/web-twain/docs/info/api/WebTwain_Acquire.html#selectsourcebyindex), [SelectSourceByIndexAsync()](https://www.dynamsoft.com/web-twain/docs/info/api/WebTwain_Acquire.html#selectsourcebyindexasync) | | [SelectSourceAsync()](https://www.dynamsoft.com/web-twain/docs/info/api/WebTwain_Acquire.html#selectsourceasync) | [SelectSource()](https://www.dynamsoft.com/web-twain/docs/info/api/WebTwain_Acquire.html#selectsource) | | [AcquireImageAsync()](https://www.dynamsoft.com/web-twain/docs/info/api/WebTwain_Acquire.html#acquireimageasync) | [AcquireImage()](https://www.dynamsoft.com/web-twain/docs/info/api/WebTwain_Acquire.html#acquireimage) | @@ -43,4 +43,4 @@ DWTObject.GetDevicesAsync(Dynamsoft.DWT.EnumDWT_DeviceType.TWAINSCANNER|Dynamsof ``` ### Difference between the WIASCANNER and WIATWAINSCANNER DeviceType -To support the WIA protocol in v18.2+, we added a new Enumeration `WIASCANNER` to [Dynamsoft.DWT.EnumDWT_DeviceType](https://www.dynamsoft.com/web-twain/docs/info/api/Dynamsoft_Enum.html?ver=latest&&cVer=true#dynamsoftdwtenumdwt_devicetype) . The enumeration named `WIATWAINSCANNER` represents WIA sources mapped through the TWAIN protocol after packaging by Microsoft. It was used in previous versions of Dynamic Web TWAIN and it will continue to be supported. +To support the WIA protocol in v18.2+, we added a new enumeration `WIASCANNER` to [Dynamsoft.DWT.EnumDWT_DeviceType](https://www.dynamsoft.com/web-twain/docs/info/api/Dynamsoft_Enum.html?ver=latest&&cVer=true#dynamsoftdwtenumdwt_devicetype). The enumeration named `WIATWAINSCANNER` represents WIA sources mapped through the TWAIN protocol after packaging by Microsoft. It was used in previous versions of Dynamic Web TWAIN but has been deprecated since v18.2 and will be removed in a future version; please use `WIASCANNER` instead for new development. diff --git a/_articles/faq/the-connection-with-the-server-was-terminated-abnormally.md b/_articles/faq/the-connection-with-the-server-was-terminated-abnormally.md index 5b8c1353..e5f718f2 100644 --- a/_articles/faq/the-connection-with-the-server-was-terminated-abnormally.md +++ b/_articles/faq/the-connection-with-the-server-was-terminated-abnormally.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Error Troubleshooting breadcrumbText: The connection with the server was terminated abnormally description: The connection with the server was terminated abnormally date: 2021-07-14 18:55:57 +0000 -last_modified: 2022-06-02 15:30:49 +0000 +last_modified: 2026-07-30 09:02:54 +0000 --- # Error Troubleshooting @@ -35,7 +35,7 @@ When you upload images from Dynamic Web TWAIN's buffer, you may receive the foll ```javascript strHTTPServer = location.hostname; - WebTWAIN.HTTPPort = location.port == "" ? 80 : location.port; + DWTObject.HTTPPort = location.port == "" ? 80 : location.port; ``` 3. Please reset the maximum transferable data size: diff --git a/_articles/faq/type-error-appendchild.md b/_articles/faq/type-error-appendchild.md index 1b0562bf..cde2c01e 100644 --- a/_articles/faq/type-error-appendchild.md +++ b/_articles/faq/type-error-appendchild.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Error message breadcrumbText: Error Message - Uncaught TypeError - Cannot read properties of null (reading 'appendChild') or Failed to execute 'appendChild' on 'Node'- parameter 1 is not of type 'Node'. description: Error Message - Uncaught TypeError - Cannot read properties of null (reading 'appendChild') or Failed to execute 'appendChild' on 'Node'- parameter 1 is not of type 'Node'. date: 2022-12-27 15:57:25 +0000 -last_modified: 2024-09-19 08:47:35 +0000 +last_modified: 2026-07-29 08:01:45 +0000 --- # Error Troubleshooting @@ -27,7 +27,7 @@ Typically, an application uses `DWTObject = Dynamsoft.DWT.GetWebTwain('dwtcontro ### Workaround: Please check if your container is created dynamically (especially if you are using dynamic frameworks). There are two ways to address the issue. -(1) If you want to use dynamic initialization method, here is sample code to create the object dynamically: +(1) If you want to use the dynamic initialization method, first disable auto-loading in `dynamsoft.webtwain.config.js` by setting both `Dynamsoft.DWT.AutoLoad = false` and `Dynamsoft.DWT.Containers = []`. Otherwise, the auto-loading process can race with your own `CreateDWTObjectEx()` call and create the exact container-not-ready condition described above. Once auto-loading is disabled, here is sample code to create the object dynamically once your container is confirmed to exist: ```javascript Dynamsoft.DWT.CreateDWTObjectEx( @@ -47,4 +47,4 @@ Dynamsoft.DWT.CreateDWTObjectEx( ); ``` -(2) If you want to use default initialization method, please set `Dynamsoft.DWT.AutoLoad` to `false` and manually implement `Dynamsoft.DWT.Load()` after you confirm the container has been created. +(2) If you want to use the default initialization method instead, set `Dynamsoft.DWT.AutoLoad` to `false` and manually call `Dynamsoft.DWT.Load()` once you've confirmed the container has been created. diff --git a/_articles/faq/unable-to-load-4-bit-tiff.md b/_articles/faq/unable-to-load-4-bit-tiff.md index abc2bcec..727178c6 100644 --- a/_articles/faq/unable-to-load-4-bit-tiff.md +++ b/_articles/faq/unable-to-load-4-bit-tiff.md @@ -7,6 +7,7 @@ keywords: Dynamic Web TWAIN, Error Troubleshooting, tiff breadcrumbText: Why am I unable to load the TIFF file into Dynamic Web TWAIN? description: Why am I unable to load the TIFF file into Dynamic Web TWAIN? date: 2025-04-23 16:09:35 +0000 +last_modified: 2026-07-29 08:01:45 +0000 --- # Error Troubleshooting @@ -19,7 +20,7 @@ When you attempt to import a TIFF file using Dynamic Web TWAIN, it will indicate ### Cause -All versions prior to version 19.0 do not support importing 4-bit color images. If you encounter the issue mentioned above, your file may be using the deprecated JPEG compression standard. +All versions prior to version 19.1 do not support importing 4-bit color images. If you encounter the issue mentioned above, your file may be using the deprecated JPEG compression standard. ### Resolution diff --git a/_articles/faq/upload-multiple-files-at-a-time.md b/_articles/faq/upload-multiple-files-at-a-time.md index cc6b4552..9381f813 100644 --- a/_articles/faq/upload-multiple-files-at-a-time.md +++ b/_articles/faq/upload-multiple-files-at-a-time.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, Document Saving, upload files breadcrumbText: How to upload multiple files at a time? description: How to upload multiple files at a time? date: 2022-08-29 18:03:43 +0000 -last_modified: 2024-09-19 08:47:35 +0000 +last_modified: 2026-07-30 10:12:07 +0000 --- # Document Saving @@ -15,10 +15,13 @@ last_modified: 2024-09-19 08:47:35 +0000 ## How to upload multiple files at a time? ### Scenario: -After scanning multiple files, you might want to upload them one by one as individual images. Before version 13.1, you have to call the upload method(s) multiple times. From version 13.1+, you can do this in one go. +After scanning multiple documents, you may want to send each one to your server as its own separate file in a single HTTP request, rather than calling an upload method separately for each image. Before version 13.1, this required multiple calls to the upload method(s). From version 13.1 onward, you can send them all in one request instead, as shown below. ### Solution: -You can use the methods [ConvertToBlob](/_articles/info/api/WebTwain_IO.md#converttoblob) and [HTTPUpload](/_articles/info/api/WebTwain_IO.md#httpupload) to achieve this. +Convert each image to a JPG file (as a Blob) using [ConvertToBlob](/_articles/info/api/WebTwain_IO.md#converttoblob), attach each one as its own form field using [SetHTTPFormField](/_articles/info/api/WebTwain_IO.md#sethttpformfield), then call [HTTPUpload](/_articles/info/api/WebTwain_IO.md#httpupload) once at the end to submit everything together. + +> [!NOTE] +> Because each image is already attached individually as its own form field, the final `HTTPUpload()` call below doesn't need to specify which images to send — it simply submits the form. This is different from passing image indices directly to `HTTPUpload()`, which only combines multiple images into a single file for multi-page formats like PDF or TIFF. ### Steps: @@ -27,7 +30,7 @@ You can use the methods [ConvertToBlob](/_articles/info/api/WebTwain_IO.md#conve function UploadAsJPG() { var count = 0; DWTObject.ClearAllHTTPFormField(); - DWTObject.SetHTTPFormField("UploadedImagesCount",DWTObject.HowManyImagesInBuffer); + DWTObject.SetHTTPFormField("UploadedImagesCount", DWTObject.HowManyImagesInBuffer.toString()); function asyncFailureFunc(errorCode, errorString) { alert("ErrorCode: " + errorCode + "\r" + "ErrorString:" + errorString); diff --git a/_articles/faq/use-blank-page-as-a-separator.md b/_articles/faq/use-blank-page-as-a-separator.md index 0a6d619b..984e8a83 100644 --- a/_articles/faq/use-blank-page-as-a-separator.md +++ b/_articles/faq/use-blank-page-as-a-separator.md @@ -7,7 +7,7 @@ keywords: Dynamic Web TWAIN, document classification, separator breadcrumbText: How to use a blank page as a separator? description: How to use a blank page as a separator? date: 2022-01-26 13:39:43 +0000 -last_modified: 2024-09-19 08:47:35 +0000 +last_modified: 2026-07-30 08:44:14 +0000 --- # Document Saving @@ -20,7 +20,7 @@ You are scanning in multiple documents with a blank page separating them and wou ### Solution -In order to do this we will scan in all the sheets, then use [IsBlankImageExpress](/_articles/info/api/WebTwain_Buffer.md#isblankimageexpress){:target="_blank"} to detect whether or not it is blank. If the sheet is blank we will then remove it from the buffer and save the previous set of sheets. In order to accomplish this task we are going to use the event OnPostAllTransfers, which fires after all scans are complete in order to check whether or not any pages are blank. +In order to do this we will scan in all the sheets, then use [IsBlankImageAsync](/_articles/info/api/WebTwain_Buffer.md#isblankimageasync){:target="_blank"} (available since v18.4 on Windows, v19.2 on macOS/Linux) to detect whether or not it is blank. If the sheet is blank we will then remove it from the buffer and save the previous set of sheets. In order to accomplish this task we are going to use the event OnPostAllTransfers, which fires after all scans are complete in order to check whether or not any pages are blank. ```javascript function Dynamsoft_OnReady() { @@ -61,11 +61,11 @@ function OnFailure(errorCode, errorString) { alert(errorString); } -function CheckBlankPage() { //Function for checking a blank page, called when OnPostAllTransfers is triggered +async function CheckBlankPage() { //Function for checking a blank page, called when OnPostAllTransfers is triggered if (DWTObject) { //Ensure there is a DWTObject var startindex = 0; // Assume it starts from the first page in the buffer. for (var i = 0; i < DWTObject.HowManyImagesInBuffer; i++) { //Go through each image in the buffer. - if (DWTObject.IsBlankImageExpress(i)) { + if (await DWTObject.IsBlankImageAsync(i)) { DWTObject.RemoveImage(i); // remove the blank page from the buffer. if (i != 0) { var imageRecord = []; @@ -103,19 +103,8 @@ function CheckBlankPage() { //Function for checking a blank page, called when On } ``` -If your application is having a hard time detecting blank pages(there is some areas around the edge of the blank page with non-blank spots) or you are using coloured pages you may want to use the pages standard deviation instead. You may use the following Snippet instead. - -**Using Page Standard Deviation:** +If your application is having a hard time detecting blank pages accurately (e.g. non-blank spots around the edges, or coloured pages), you can tune `IsBlankImageAsync()`'s sensitivity via its `minBlockHeight`/`maxBlockHeight` options (the expected pixel height of a block of text/content — default 20/30): ```javascript -function CheckBlankPage(){ //Function for checking a blank page, called when OnPostAllTransfers is triggered - if(DWTObject){//Ensure there is a DWTObject - for(var i = 0; i < DWTObject.HowManyImagesInBuffer;i++){//Go through each image in the buffer. - if(DWTObject.IsBlankImageExpress(i)){}//Make Blank Image run, but do not use the result - if(DWTObject.BlankImageCurrentStdDev < 15.0){//set a standard deviation for the program to use - //...... - } - } - } -} +var isBlank = await DWTObject.IsBlankImageAsync(i, { minBlockHeight: 10, maxBlockHeight: 40 }); ``` diff --git a/_articles/faq/viewer-size-auto-resize.md b/_articles/faq/viewer-size-auto-resize.md index 7dba1cad..3017faa0 100644 --- a/_articles/faq/viewer-size-auto-resize.md +++ b/_articles/faq/viewer-size-auto-resize.md @@ -7,24 +7,27 @@ keywords: Dynamic Web TWAIN, Image Viewer, auto resize breadcrumbText: Can the size of the image viewer auto resize when the browser window size changes? description: Can the size of the image viewer auto resize when the browser window size changes? date: 2021-12-09 11:34:50 +0000 -last_modified: 2022-06-10 04:40:03 +0000 +last_modified: 2026-07-30 09:17:32 +0000 --- # Image Viewer ## Can the size of the image viewer auto resize when the browser window size changes? -Scenario +### Scenario + When using Dynamic Web TWAIN in different environments, it may be necessary to change the size of the viewer within the window automatically. -Steps -This can be done in two different ways +### Solution + +There are two parts to this: + +1. Set the viewer's initial size based on the window size when the page loads. +2. Keep the viewer's size in sync as the window is resized afterward. -1. Set the viewer size when the page is opened based upon the size of the window -2. Change the viewer size when the window size is adjusted based on the new size of the window +**1. Setting the initial size** -For option 1: -You may change the container size based on the window size by setting the following in your javascript file (before any other Dynamsoft-related operations): +You can size the container based on the window size by setting the following in your JavaScript file (before any other Dynamsoft-related operations): ```javascript Dynamsoft.DWT.Containers = [ @@ -36,14 +39,29 @@ Dynamsoft.DWT.Containers = [ ]; ``` -and in dynamsoft.webtwain.config.js file set: +and in `dynamsoft.webtwain.config.js`, set: ```javascript Dynamsoft.DWT.Containers = []; ``` -Note: window.innerWidth and window.innerHeight do not work in IE. You can replace it with document.documentElement.clientWidth and document.documentElement.clientHeight. +**2. Keeping the size in sync on resize** + +There are two common approaches: + +- Set the viewer's `width`/`height` to a percentage value so it fills its container proportionally, and let your container's own layout/CSS handle resizing: + + ```javascript + DWTObject.Viewer.width = "100%"; + DWTObject.Viewer.height = "100%"; + ``` -For option 2: +- If you need to calculate an absolute pixel size based on the browser window, listen for the browser's native `resize` event and update the viewer's `width`/`height` accordingly: -Write your own function to calculate the Container's width and height according to the browser's size. Then, assign the values to our API's Height & Width. Finally, use the event [resize](/_articles/info/api/WebTwain_Viewer.md#resize){:target="_blank"} to trigger the function. + ```javascript + function updateSize() { + DWTObject.Viewer.width = window.innerWidth * 0.5; + DWTObject.Viewer.height = window.innerHeight * 0.8; + } + window.addEventListener('resize', updateSize); + ``` diff --git a/_articles/faq/what-image-editing-operation-supported.md b/_articles/faq/what-image-editing-operation-supported.md index 08d5adac..f5283b41 100644 --- a/_articles/faq/what-image-editing-operation-supported.md +++ b/_articles/faq/what-image-editing-operation-supported.md @@ -7,11 +7,11 @@ keywords: Dynamic Web TWAIN, Image Editing, image, image editing, breadcrumbText: What image editing operations does the Dynamic Web TWAIN SDK support? description: What image editing operations does the Dynamic Web TWAIN SDK support? date: 2021-12-09 09:25:33 +0000 -last_modified: 2022-06-10 04:40:03 +0000 +last_modified: 2026-07-29 08:01:45 +0000 --- # Image Editing ## What image editing operations does the Dynamic Web TWAIN SDK support? -Dynamic Web TWAIN offers many image editing features to help give you the result you are looking for. All the image editing operations are explained in details [here](/_articles/general-usage/image-processing/index.md#edit-options){:target="_blank"}. +Dynamic Web TWAIN offers many image editing features to help give you the result you are looking for. All the image editing operations are explained in detail [here](/_articles/general-usage/image-processing/image-editing.md#common-editing-apis){:target="_blank"}. diff --git a/_articles/info/api/interfaces.md b/_articles/info/api/interfaces.md index fb0ca80a..d14c3e0e 100644 --- a/_articles/info/api/interfaces.md +++ b/_articles/info/api/interfaces.md @@ -1866,7 +1866,7 @@ interface PDFWSettings { /** * From version 19.3 * Specify PDF/A version to save as PDF/A. - * Supported values: "pdf/a-1b", "pdf/a-2b", "pdf/a-3b" + * Supported values: "pdf/a-1b", "pdf/a-2b", "pdf/a-3b" (pdf/a-3b is supported from version 19.4) */ pdfaVersion?: string; }